Visual-Block 模式无法在 WSL@Windows 10 上使用 C-v 的 Vim 中工作

问题描述 投票:0回答:5

我在新的 Windows 终端中使用 WSL Ubuntu 和 Vim,但如果我必须使用 C-v 进入视觉块模式,我就不能,因为它充当粘贴。

我可以将其重新绑定到其他东西,但我碰巧没有找到我必须添加到

.vimrc
的命令,我认为它与inoremap有关。

有什么建议吗?

vim copy-paste windows-subsystem-for-linux windows-terminal
5个回答
59
投票
默认情况下,

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 文件中的操作。


12
投票

在 VISUAL BLOCK 模式下尝试

Ctrl-q


6
投票

您只需更改默认值“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"
},

2
投票

ctrl+v 对于“:g/pattern/norm”也很重要。 您不需要更改 settings.json 来删除“ctrl+v”绑定,现在您还可以单击“操作”,滚动到“粘贴”绑定并将其删除(shift+insert 仍然可用)


0
投票

ctrl-v 可能会被 Windows Terminal 绑定为“粘贴”,如果不想更改配置,可以通过 vim 命令模拟按键,如下:

:execute "normal \<c-v>"

请注意,

\<c-v>
的意思是
Ctrl-V

© www.soinside.com 2019 - 2024. All rights reserved.