在阅读了您的问题三遍之后,我终于意识到您正在寻找 one 热键来执行这两个操作。哎呀。
您的请求听起来像 Smart Semicolon Eclipse 插件的 Ctrl+Shift+; 热键。虽然添加 semicolons of a genius-level IQ 可能需要一个全新的 Sublime Text 2 插件,但您可以使用 Sublime Text 的 Macros 轻松创建智能分号式键绑定。其实直到现在我才知道他们!
在这种情况下,自己录制宏实际上是创建宏的最快方法,而不是复制和粘贴新文件(现在您将拥有制作更多文件的经验)。首先,打开一个新文件并输入你最喜欢的垃圾行:
Lord Vetinari's cat|
然后将插入符号移动到行内的任意位置:
Lord Veti|nari's cat
现在,按 Ctrl+Q,这是Tools -> Record Macro 的热键。如果启用状态栏,它将通知您它正在“开始录制 [a] 宏”。按 End(如果您没有 End 键,请跳到下面),然后按 ;,然后按 Enter。最后,再次按 Ctrl+Q 停止录制。当你这样做时,状态栏将显示“停止录制宏”。在您选择的代码段上按 Ctrl+Shift+Q 检查您的宏是否正常工作。
只要将"auto_indent" 设置为true,只需按Enter 就会相应地调整下一行的缩进。请参阅Preferences -> Settings – Default,第 59 行。
如果您满意,请使用Tools -> Save Macro... 保存您的新宏。我将我的保存为Packages/User/smart-semicolon.sublime-macro。我的文件看起来像这样;如果您不能或不会手动制作宏,请随意复制它:
[
{
"args":
{
"extend": false,
"to": "eol"
},
"command": "move_to"
},
{
"args":
{
"characters": ";"
},
"command": "insert"
},
{
"args":
{
"characters": "\n"
},
"command": "insert"
}
]
"extend": false, 只是意味着宏不会将任何文本添加到工作选择中。在Unofficial Docs Commands Page 上阅读有关命令选项的更多信息。
现在您有了宏,我们可以给它一个自定义键绑定。将以下行添加到您的 Preferences -> Key Bindings – User 文件中:
{ "keys": ["ctrl+shift+;"], "command": "run_macro_file", "args": {"file": "Packages/User/smart-semicolon.sublime-macro"}, "context":
[
{ "key": "selector", "operator": "equal", "operand": "source.java" }
]
},
用您喜欢的任何键绑定替换 Ctrl+Shift+;,保存文件,然后试一试。 "context" 数组将键绑定限制为 Java 文件(有关上下文的更多信息,请参见 the Unofficial Docs Key Bindings 页面);如果您希望键绑定在任何地方都处于活动状态,请改用此行:
{ "keys": ["ctrl+shift+;"], "command": "run_macro_file", "args": {"file": "Packages/User/smart-semicolon.sublime-macro"} },
这个NetTuts+ article 有很多更多关于宏和将它们绑定到键的信息;我经常引用它。这个UserEcho post 看起来有更多关于使插入更可扩展的信息。