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

时间:2013-05-21 16:47:20

标签: sublimetext2 hotkeys sublimetext

我正试图找出工作中的热键。我刚刚得到这份工作,而且在我生命中第一次使用Mac时或多或少。

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

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

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

6 个答案:

答案 0 :(得分:70)

最佳解决方案是在Sublime Text上录制宏,然后将其指定给键盘快捷键。请按照以下步骤操作:

  1. 创建一个诸如alert('hello')之类的行并将光标向右移动 在字母“o”之后。
  2. 然后转到工具>录制宏以开始录制。
  3. 命令 + 转到行尾。
  4. ; 然后按 Enter
  5. 转到工具>停止录制宏。停止录制宏
  6. 您现在可以通过工具>测试您的宏播放宏(可选)
  7. 转到工具>保存您的宏保存宏(例如:EndOfLine.sublime-macro)
  8. 通过在您的方括号中添加此快捷方式来创建快捷方式 在您的偏好设置>密钥绑定 - 用户文件:

    {
    "keys": ["super+;"], "command": "run_macro_file", "args": {"file": "Packages/User/EndOfLine.sublime-macro"}
    }
    
  9. 现在,每次点击 Command + ; ,它都会 神奇地将分号放在当前行的末尾,并将光标移动到下一行。
  10. 快乐的编码!

答案 1 :(得分:18)

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

您的请求听起来像{kbd> Ctrl + Shift + ; Smart Semicolon Eclipse插件的热键。虽然添加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]宏”。按结束(如果您没有结束键,请跳至下方),然后; ,然后输入。最后,再次按 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看起来有更多关于使插入更具可扩展性的信息。

答案 2 :(得分:10)

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

您可以使用package control进行安装,只需搜索“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

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

我一直在使用这个软件包一段时间了,效果很好。

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

[
  { "keys": ["ctrl+;"], "command": "append_semi_colon" }, 
  { "keys": ["ctrl+shift+;"], "command": "append_semi_colon", "args": {"enter_new_line": "true"} }
]
在你的sublime-keymap中

使用你想要的任何键。

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

答案 3 :(得分:1)

Ctrl + Enter 将创建一个具有相同缩进级别的新行。

我找不到你提到的 Ctrl + A

答案 4 :(得分:1)

我正在使用Sublime Text 3 ...受到帖子的启发,我已将以下内容添加到我的.sublime-keymap中:

{ "keys": ["ctrl+enter"], "command": "run_macro_file", "args": {"file": "Packages/User/endOfLine.sublime-macro"} },

我很惊讶这节省了多少时间。

答案 5 :(得分:0)

@Felipe涵盖了第二点。您可以使用简单的宏或插件模仿第一个行为。我说或者因为你在按下组合键后没有描述光标位置。它是否将光标移动到下一行?它是否插入新行?我想你应该已经明白了。

我非常确定eclipse适用于OS X以及windows,所以如果你对此更加满意,为什么不使用它(除非你的工作需要ST当然)?大多数键绑定可能是相同/相似的(它可能是命令而不是快捷键控制)。

http://www.eclipse.org/downloads/?osType=macosx

如果继续使用ST,那么学习插件的基础知识可能是值得的。可以构建很多,所以你有与其他编辑器相同的行为,它只需要一些额外的努力(通过创建插件或找到一个插件来完成它)。