Sublime Text:将多个选择转义到最后一个选择区域而不是第一个选择区域

Sublime Text:将多个选择转义到最后一个选择区域而不是第一个选择区域

在 Sublime Text(使用 Sublime Text 3)中,您可以按 Esc 键退出多选/多插入符号模式。执行此操作后,将仅保留第一个选择/插入符号。

有没有办法让最后的选择/插入符号是否会保留?

我经常发现自己按下退出键然后需要将光标移动到最后的选择处。

用例:

我使用多项选择输入此内容:

int foo(
  int x,
  int x,
  int x,
  int x,
)

我想删除最后一个逗号以获得​​:

int foo(
  int x,
  int x,
  int x,
  int x
)

我想按下 Esc 键并让插入符号位于最后一个之后int x,

答案1

我认为这不是 Sublime Text 中的默认命令。但是,您可以轻松地自行创建此行为。只需按下Tools >> New Plugin...并粘贴以下内容:

import sublime_plugin


class SingleLastSelectionCommand(sublime_plugin.TextCommand):
    def run(self, edit):
        view = self.view
        if len(view.sel()):
            last = view.sel()[-1]
            view.sel().clear()
            view.sel().add(last)

然后创建一个键绑定:

{ "keys": ["escape"], "command": "single_last_selection", "context":
    [
        { "key": "num_selections", "operator": "not_equal", "operand": 1 }
    ]
},

可能需要从默认键映射中复制所有退出键绑定以保持操作优先级(在删除多个光标之前隐藏自动完成功能等等)。

相关内容