我在新的 Windows 终端中使用 WSL Ubuntu 和 Vim,但如果我必须使用 C-v 进入视觉块模式,我就不能,因为它充当粘贴。
我可以将其重新绑定到其他东西,但我碰巧没有找到我必须添加到
.vimrc
的命令,我认为它与inoremap有关。
有什么建议吗?
CTRL+v
绑定在 Windows 终端中粘贴。截至目前,唯一有效的方法是在 settings.json
中禁用该行为。您可以通过按 CTRL+SHIFT+,
来完成此操作。
从1.4版本开始
"actions": [
...
// { "command": {"action": "paste", ...}, "keys": "ctrl+v" }, <------ THIS LINE
1.4 之前版本
"keybindings": [
...
// { "command": "paste", "keys": "ctrl+v" }, <------ THIS LINE
完成此操作后,您可以照常切换到视觉块模式并使用
CTRL+SHIFT+v
进行粘贴。
我在项目的 GitHub 上找到了关于这个问题的这些问题:
https://github.com/microsoft/terminal/issues/5790
https://github.com/microsoft/terminal/issues/5641
有关按键绑定/操作更改的信息:https://learn.microsoft.com/en-us/windows/terminal/customize-settings/actions
从 Windows Terminal 版本 1.4 开始,键绑定数组已重命名为 settings.json 文件内的操作。为了向后兼容,对键绑定数组的支持仍然存在,但是终端不会自动将键绑定重命名为 settings.json 文件中的操作。
在 VISUAL BLOCK 模式下尝试
Ctrl-q
。
您只需更改默认值“settings.json”
原版:
{
"command":
{
"action": "copy",
"singleLine": false
},
"keys": "ctrl+c"
},
{
"command": "paste",
"keys": "ctrl+v"
},
修改:
{
"command":
{
"action": "copy",
"singleLine": false
},
"keys": "ctrl+shift+c"
},
{
"command": "paste",
"keys": "ctrl+shift+v"
},
ctrl+v 对于“:g/pattern/norm”也很重要。 您不需要更改 settings.json 来删除“ctrl+v”绑定,现在您还可以单击“操作”,滚动到“粘贴”绑定并将其删除(shift+insert 仍然可用)
ctrl-v 可能会被 Windows Terminal 绑定为“粘贴”,如果不想更改配置,可以通过 vim 命令模拟按键,如下:
:execute "normal \<c-v>"
请注意,
\<c-v>
的意思是Ctrl-V