如何在移位中绑定(结束,输入)进入崇高文本?

我非常喜欢在PyCharm中实现Shift Enter的方式:

在当前压痕之后开始一个新线,根据当前压痕水平定位插入符(等于顺序按End,Enter) .

我想在Sublime Text 3中以相同的方式使用Shift Enter工作 .

我发现有一个

{“keys”:[“end”],“command”:“move_to”,“args”:{“to”:“eol”,“extend”:false}}

对于“结束”和

{“keys”:[“shift enter”],“command”:“insert”,“args”:{“characters”:“\ n”}},

对于“Shift enter” . 但我不知道如何将它们结合起来 .

回答(1)

2 years ago

有几种方法可以使多个命令按顺序执行,以响应键绑定,菜单项选择,命令调色板输入等 .

如果您有兴趣运行的命令都是 TextCommand 类型(这基本上意味着它们移动光标,更改选择或以某种方式编辑缓冲区),那么最简单的方法就是创建一个宏,然后将其绑定到一个键 .

例如:

  • 选择 Tools > Record Macro

  • 执行要记录的操作

  • 选择 Tools > Stop Recording MacroTools > Save Macro

每个宏命令都有一个您可以使用的关联键绑定 .

完成后,您将在 User 包中保存 sublime-macro 文件 .

然后,您可以使用 run_macro_file 命令将其绑定到密钥 . 例如:

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

如上所述,这仅适用于 TextCommand 命令;以某种方式直接修改缓冲区的命令,包括选择和光标位置 . 这意味着您无法在宏中记录查找/替换命令;此类命令不会记录在生成的宏文件中 .

执行相同操作的另一种方法是使用扩展包,例如Chain of Command . 这打破了上述限制,因为它允许您指定所需的任何命令,只要有一个命令可用 . 但是,此方法需要知道要执行的命令 .

在您的示例的特定情况下,Ctrl Enter键已经通过宏方法执行您想要的操作 . 如果您愿意,可以使用以下键绑定使其适用于您想要的键:

{ 
  "keys": ["shift+enter"], 
  "command": "run_macro_file", 
  "args": {
      "file": "res://Packages/Default/Add Line.sublime-macro"
  } 
},