ctrl+shift+p filters: :st2 :st3 :win :osx :linux
浏览

智能路径复制

santi-h 所有

Sublime Text包,根据文件发送命令到剪贴板的构建工具。

详细信息

安装

  • 总计 1K
  • Win 655
  • Mac 319
  • Linux 201
8月6日 8月5日 8月4日 8月3日 8月2日 8月1日 7月31日 7月30日 7月29日 7月28日 7月27日 7月26日 7月25日 7月24日 7月23日 7月22日 7月21日 7月20日 7月19日 7月18日 7月17日 7月16日 7月15日 7月14日 7月13日 7月12日 7月11日 7月10日 7月9日 7月8日 7月7日 7月6日 7月5日 7月4日 7月3日 7月2日 7月1日 6月30日 6月29日 6月28日 6月27日 6月26日 6月25日 6月24日 6月23日
Windows 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0
Mac 1 1 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Linux 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0

README

源代码
raw.githubusercontent.com

SmartPathCopy (Sublime Text 2/3插件)

当你对一个文件进行了一些修改后,直接去控制台运行命令时,很可能是与刚刚查看的文件相关的命令,并且命令的类型将取决于文件的类型。

例如,如果你正在修改 path/to/test.rb,那么你很可能要运行一个用于运行 path/to/test.rb 中测试的命令。

类似地,如果你正在写像 db/migrate/20150406132142_add_authentication_token_to_users.rb 这样的rails迁移,当你去控制台时,你很可能只想运行 rake db:migraterake db:migrate:up VERSION=20170213214913

情景案例

你正在全神贯注地进行开发和测试。你觉得测试已经准备好了,想快速运行它,但没有设置TDD机制或者还没有开始。你转到控制台去运行测试。你开始输入 rspec,突然意识到你忘记了spec文件的路径,于是你回到Sublime中以复制路径。在这个过程中,你还注意到你想要运行的测试所在的行号,这样你就可以将其作为 rspec 命令的一部分。你回到控制台,最终准备好运行 rspec path/to/file:line_number

这个过程会让你脱离舒适区。目前它看起来像是从你现在所在的位置到舒适区的一个小点。

使用 SmartPathCopy,你只需按下 super+shift+c,然后 rspec path/to/file:line_number 就会被复制到剪贴板,可以直接在控制台运行。

你可以使用 RSpec sublime 插件,直到你随意放置了 binding.pry(你确实会这么做)。所以现在你不得不回到控制台,然后从那里运行它。如果你忘记在控制台中 continue 或终止 spec,你将在 sublime 中使用 RSpec 运行的每个测试都会挂起。希望有一天 RSpec 将支持 pry,在此之前,我会继续使用控制台。

安装

推荐的方式是使用 PackageControl 插件。

使用方法

按下 super+shift+c 以将相关命令发送到剪贴板。默认情况下,它将构建以下命令:- 对于以 _spec.rb 结尾的文件: rspec <file>:<line_number> - 对于位于 db/migrate 的文件: rake db:migrate:up VERSION=<migration_version> - 对于位于 lib/tasks 的文件: rake <task_name>

配置

默认配置是

{
  "smart_path_copy_default_rules": [
    ["_spec\\.rb$",                     "rspec $filepath:$line_number"  ],
    ["db/migrate/(\\d+)[^\\/]+\\.rb$",  "rake db:migrate:up VERSION=$1" ],
    ["lib/tasks/([^\\/]+)\\.rake$",     "rake $1"                       ]
  ]
}

“smart_path_copy_default_rules” 列表中的每个元素都包含一个正则表达式和一个命令。正则表达式用作条件:如果你正在处理的文件满足该条件(正则表达式),则当你按下 super+shift+c 时,将复制其旁边的命令到剪贴板。

如果没有条件满足,则将当前文件的完整路径复制到剪贴板。

默认配置对于在 rails 中开发很有用,但你也可以在 Sublime Text > 首选参数 > 设置 中添加自己的配置。如果你想覆盖默认配置,只需添加自己的 "smart_path_copy_default_rules"。如果你想保持默认配置并在此之上添加规则,请使用 "smart_path_copy_user_rules"

注意,你可以在正则表达式中添加组并使用它们(作为 $<group_number>)在命令中。

你还可以在命令部分使用:- $filepath:当前文件的绝对路径。- $line_number:光标所在的行号。

默认快捷键是 super+shift+c,但你可以在 Sublime Text > 首选参数 > 键绑定 中对其进行修改。例如,如果你想使用快捷键 super+shift+h,你将添加

[
  # ...
  { "keys": ["super+shift+h"], "command": "smart_path_copy"},
  # ...
]