Sublime Text:从多个选项中按Esc - 将光标置于最后选择位置?

时间:2016-06-19 06:18:08

标签: sublimetext2 sublimetext3 sublimetext

使用Sublime Text,在使用CMD + D进行多项选择后,我通常会更改文本,然后想要转义选择并将光标放在最后一个选择的位置。

某些功能非常接近:

  • CMD+U将重新选择
  • CMD+G将跳到下一次出现
  • CMD+Shift+G将向后跳至上一次出现

是否有任何键盘快捷键能够达到我想要的效果,类似于Esc但是向前而不是向后?

1 个答案:

答案 0 :(得分:3)

您可以创建一个非常简单的插件来执行此操作,然后将一个键绑定到它:

  1. Tools菜单中选择Developer - > New Plugin...
  2. 粘贴以下内容:

    import sublime, sublime_plugin
    
    class SingleSelectionLastCommand(sublime_plugin.TextCommand):
        def run(self, edit):
            last = self.view.sel()[-1]
            self.view.sel().clear()
            self.view.sel().add(last)
            self.view.show(last)
    
  3. 将其保存在推荐的文件夹中,将文件命名为single_selection_keep_last_cursor.py

  4. 打开Preferences - > Key Bindings - User
  5. 键入/粘贴类似于以下内容:

    { "keys": ["escape"], "command": "single_selection_last", "context":
        [
            { "key": "num_selections", "operator": "not_equal", "operand": 1 }
        ]
    }
    
  6. 保存

  7. 此示例使用名为single_selection_last的命令创建一个新插件,然后在有多个选择时将 Esc 键绑定到该插件。因此,这会覆盖保留第一个选择的默认 Esc 行为。

    keybindings文件需要是一个有效的JSON数组,所以如果它是空的,你需要将上面的例子包装在方括号[...]中以使其工作。

    如果您想使用其他密钥,只需将escape替换为您想要的密钥组合即可。见Preferences - > Key Bindings - Default例如。