我想重新映射
<C-S-m>
以在光标处插入 |>
:
vim.api.nvim_buf_set_keymap(0, "i", "<C-S-m>", " |>", {})
这可以在使用 iterm2 的 macOS 上运行,但在 Windows 11 上使用 Windows 终端时,我得到了这个我以前从未见过的奇怪的东西:
其他不使用 ctrl + shift 的组合键,例如
<C-m>
,工作正常。 <C-M>
似乎等同于 <C-m>
,但不等同于 <C-S-m>
。
对于 Nvim 在 windows 终端中映射
<C-S-m>
的问题,需要在 Windows 终端的 <C-S-m>
中使用 sendInput
命令绑定 settings.json
。当按下 <C-S-m>
时,它将发送特定的转义序列。我希望你能看到这个 github issue。
您可以在 Windows 终端的 settings.json
中添加这些行
{
"command": {
"action": "sendInput",
"input": "\u001b[EscapeSequence]"
},
"keys": "ctrl+shift+m"
}
您需要将
"\u001b[EscapeSequence]"
替换为 Nvim 期望插入 |>
的实际转义序列。您可能需要尝试不同的顺序。我无法检查,因为我没有使用 windows