Visual Studio 代码 - "Add Selection to find next match" 在启用 vim 键盘映射时失去选择

Visual Studio Code - "Add Selection to find next match" losing selection when vim keymap enabled

我新安装了 Visual Studio 代码(默认配置,带有 vim 键盘映射)。我想使用命令 "add selection to find next match"。我认为这等同于多光标在 sublime text 和 vim (with an extension) 或 Atom 中的工作方式(查找并替换:select next)。

当我尝试使用 Ctrl D 直接 运行 命令时,它不起作用,将我带到文件的最后一行。这可能是某种很容易解决的冲突。

更有趣的是,当我 运行 命令面板中的命令时 Ctrl Shift P

  1. 第一次select我说的是(干得好!)
  2. 第二次 select 是该词的下一次出现,但失​​去了 select 离子,将两个光标移动到该词第一次出现的两次之后。
  3. 第三次和下一次没有任何反应,select离子在上一次丢失了。

如何获得其他编辑器拥有的令人敬畏的正常行为?

PD:我现在已经确认,如果没有 vim 键映射,则不会出现此行为,它们是否可以某种方式兼容?

Ctl + D是一个default Vim keybind that scrolls the window down in the buffer。这是 Vim 扩展的预期行为,如果您希望将其用于 运行 VSCode 命令 "Add Selection To Find Next Match".

,则应禁用映射

为此,请单击 文件 > 首选项 > 扩展程序 打开扩展程序的设置。从那里,选择 Vim 扩展和 select 配置扩展设置 的选项。将有一个名为 Handle Keys 的选项,您可以在其中输入 JSON 数据以将某些组合键发送回 VSCode(还有另一个选项可以关闭所有Ctl + Letter组合,称为使用Ctrl键)。您可以在 extension's Marketplace page 上找到此类数据的一些示例。下面是我添加到我的 settings.json 文件中以获取 Ctl + D 的代码片段。

"vim.handleKeys": {
    "<C-d>": false
}

根据我的测试,更改此设置似乎也修复了使用命令面板时的行为。这可能是一个错误,但谁在乎什么时候你最有可能只是使用 Ctl + D 呢。 :)