Sublime Text:从多个选择中按 Esc -- 将光标放在最后一个选择上?

问题描述 投票:0回答:2

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

一些接近的功能:

  • CMD+U
    将重新选择选择
  • CMD+G
    将跳至下一个事件
  • CMD+Shift+G
    将向后跳至上一个事件

是否有任何键盘快捷键可以执行我想要的操作,类似于 Esc 但向前,而不是向后?

sublimetext2 sublimetext3 sublimetext
2个回答
5
投票

您可以创建一个非常简单的插件来执行此操作,然后为其绑定一个密钥:

  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. 保存

此示例使用名为

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

按键绑定文件需要是一个有效的 JSON 数组,因此如果它为空,您需要将上面的示例括在方括号中

[...]
才能正常工作。

如果您想使用不同的按键,只需将

escape
替换为您想要的按键组合即可。有关示例,请参阅
Preferences
->
Key Bindings - Default


0
投票

一直在寻找这个很长一段时间,终于想到了一种替代方法,不需要任何额外的东西,但需要一些习惯。

“Goto -> Jump Back”菜单项具有命令“jump_back”的默认键绑定,非常方便。接下来需要执行“查找 -> 查找上一个”,它具有您已经提到的命令“find_prev”的默认键绑定。

所以在 macOS 上,它会是

ctrl + minus
,然后是
super + shift + g
,我们可以为此开发肌肉记忆。

© www.soinside.com 2019 - 2024. All rights reserved.