热键以分号结束行并跳转到Sublime Text 2中的新行

Sam*_*les 32 hotkeys sublimetext sublimetext2

我正在努力找出工作中的热键.我刚刚得到这份工作,我在生命中第一次使用Mac或多或少.

回到我的笔记本电脑上,当使用Eclipse时,我似乎记得有一个热键,它们都是:

  • 添加;到我当前行的末尾(无论插入符号位于所述行内)
  • 将光标放在新行的开头,与我刚刚添加分号的行相同的缩进级别

有人知道这是一个特定于Eclipse的热键,还是知道在Sublime Text 2中复制所述热键的方法?

drd*_*div 71

最佳解决方案是在Sublime Text上录制宏,然后将其指定给键盘快捷键.跟着这些步骤:

  1. 创建一个诸如alert('hello')之类的行,并将光标留在字母'o'之后.
  2. 然后转到工具>录制宏以开始录制.
  3. Command+ 键转到行尾.
  4. 按下;并按下Enter
  5. 通过转到工具>停止录制宏停止录制宏
  6. 您现在可以通过工具>播放宏(可选)测试您的宏
  7. 转到工具>保存宏保存宏(例如:EndOfLine.sublime-macro)
  8. 通过在Preferences> Key Bindings - User file中的方括号之间添加快捷方式来创建快捷方式:

    {
    "keys": ["super+;"], "command": "run_macro_file", "args": {"file": "Packages/User/EndOfLine.sublime-macro"}
    }
    
    Run Code Online (Sandbox Code Playgroud)
  9. 现在,每次你点击Command+ ;,它会神奇地将分号放在当前行的末尾,并将光标移动到下一行.

快乐的编码!

  • @Vincent而不是Command + RightArrow,您可以使用End键 (6认同)
  • 对于Windows用户.将宏绑定到"ctrl +;" 使用以下代码:`{"keys":["ctrl +;"],"command":"run_macro_file","args":{"file":"Packages/User/EndOfLine.sublime-macro"}}` (3认同)

ang*_*son 18

在阅读了大约三次的问题之后,我终于意识到你正在寻找一个热键来执行这两个操作.哎呦.

您的请求听起来像Smart Semicolon Eclipse插件的Ctrl+ Shift+ ;热键.虽然添加天才级IQ的分号可能需要一个全新的Sublime Text 2插件,但您可以轻松地创建与Sublime Text的的智能分号式键绑定.直到现在我才真正了解它们!

在这种情况下,自己录制宏实际上是创建它的最快方法,而不是复制和粘贴新文件(现在你将拥有制作更多文件的经验).首先,打开一个新文件并输入您最喜欢的垃圾线:

Lord Vetinari's cat|
Run Code Online (Sandbox Code Playgroud)

然后将插入符号移动到行内的任何位置:

Lord Veti|nari's cat
Run Code Online (Sandbox Code Playgroud)

现在,按Ctrl+ Q,热键Tools -> Record Macro.如果状态栏已启用,它将通知您它是"开始记录[a]宏".按End(如果您没有End钥匙,请跳至下方);,然后按Enter.最后,再次按Ctrl+ Q停止录制.执行此操作时,状态栏将显示"已停止录制宏".通过在您选择的代码段上点击Ctrl+ Shift+ Q来检查您的宏是否正常工作.

只要设置设置为,只需按下即可相应地Enter调整下一行的缩进.见第59行."auto_indent"truePreferences -> Settings – Default

当您满意时,请保存您的新宏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"
    }
]
Run Code Online (Sandbox Code Playgroud)

"extend": false,只是意味着宏不会向工作选择添加任何文本.在Unofficial Docs Commands页面上阅读有关命令选项的更多信息.

现在您已经拥有了宏,我们可以为它提供自定义键绑定.将以下行添加到您的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" }
      ]
 },
Run Code Online (Sandbox Code Playgroud)

Ctrl+ Shift+ 替换为;您喜欢的任何键绑定,保存文件,并给它一个镜头.该"context"数组限制了对Java文件的键绑定(有关上下文的更多信息,请参阅非官方文档键绑定页面); 如果您希望键绑定在任何地方都处于活动状态,请改用此行:

 { "keys": ["ctrl+shift+;"], "command": "run_macro_file", "args": {"file": "Packages/User/smart-semicolon.sublime-macro"} },
Run Code Online (Sandbox Code Playgroud)

这篇NetTuts +文章提供更多有关宏的信息,并将它们绑定到键上; 我经常引用它.这篇UserEcho文章看起来有更多关于使插入更具可扩展性的信息.


non*_*ing 11

您还可以使用为此目的构建的现成的sublime包:AppendSemiColon

您可以使用包控件来安装它,只需搜索"AppendSemiColon".

Place a semicolon at the end of the cursor's current line(s) by pressing:
Command+; on OS X
Ctrl+; on Windows and Linux
Run Code Online (Sandbox Code Playgroud)

You can also automatically go to the next line at the same time like this:
Command+Shift+; on OS X
Ctrl+Shift+; on Windows and Linux
Run Code Online (Sandbox Code Playgroud)

我一直在使用这个软件包一段时间了,它运行得很好.

更新:正如作者在评论中提到的,如果你愿意,你现在也可以更改默认热键(个人而言,我喜欢默认值).举个例子,只需改变:

[
  { "keys": ["ctrl+;"], "command": "append_semi_colon" }, 
  { "keys": ["ctrl+shift+;"], "command": "append_semi_colon", "args": {"enter_new_line": "true"} }
]
Run Code Online (Sandbox Code Playgroud)

在你的sublime-keymap中使用你想要的任何键.

我测试了最新版本,这个功能也很好用.有一个错误,额外的分号在额外的热键按下时被错误地附加 - 这个小麻烦也已经修复了.谢谢,MauriceZ/mzee99!