vscode:从多个光标cmd-d转义时,将光标保持在 *last* 实例上

问题描述

我在 VSCode (cmd-d/ctrl-d) 中经常使用多个游标。

退出多光标模式并进入正常的单光标模式,可以使用esc

但是,这会将光标移回一个选定的单词。 我希望光标停留在最后选定的单词上。

是否有快捷方式/设置可以做到这一点?

示例:

L01   foobar = 42
...
L99   foobar = 99

当我从 L01 开始时,foobar 上的 ctrl-d,再次 ctrl-d 我在 L01 和 L99 上有多个光标。在 esc 之后,我将在 L01 上有单个光标。我想在 L99 上有单光标。

注意:How to navigate back to the last cursor position in Visual Studio Code? 对我没有帮助(它不适用于多个游标)

解决方法

使用扩展 Traversable v1.3.1 和命令 moveby.calculation,您可以计算光标的新位置。通过使用 VSC 的折叠功能,您只剩下 1 个光标。

定义这个键绑定

  {
    "key": "ctrl+i escape","when": "editorTextFocus","command": "moveby.calculation","args": {
      "lineNrEx": "selections[selections.length-1].start.line","charNrEx": "selections[selections.length-1].start.character"
    }
  }