提问者:小点点

VS代码VIM扩展复制和粘贴


使用vim扩展复制粘贴vs代码有正常的方法吗?

我试过将VIM寄存器命令映射到我习惯的快捷命令(ctrl c用于复制,ctrl v用于粘贴),但结果非常奇怪,我不知道如何正确执行此操作。

使用vim时,键绑定非常简单,vimrc文件:

map <C-c> "+y
map <C-v> "+p

现在我尝试通过编辑文件将这些迁移到vs-codejson.settings:

{
    "vim.visualModeKeyBindings": [
        {
            "before": ["<C-c>"],
            "after": ["\"", "+", "y"]
        },
        {
            "before": ["<C-v>"], 
            "after":  ["\"", "+", "p"]
        },
    ], }

我希望这个操作在视觉模式和正常模式(粘贴),并能够使用这些快捷方式从剪贴板复制和粘贴。

如何正确执行此操作?有没有其他方法可以做到这一点?


共3个答案

匿名用户

通过搜索“vim-clip”勾选设置中的复选框。

或者

将以下内容粘贴到 VS Code 的 settings.json 文件中:

"vim.useSystemClipboard": true

访问 VSCode settings.json 文件:

  1. Ctrl(或转到

    VSCodeVim/Vim存储库快速示例中的设置

匿名用户

您可以简单地停止vscodevim扩展来完全处理Ctrl-CCtrl-V,而不是重新绑定,这样VSCode就可以本机处理它们。这可以通过将以下代码放在扩展名的settings.json文件中来完成:

"vim.handleKeys": {
    "<C-c>": false,
    "<C-v>": false
}

无论您处于哪种模式,这都能正常工作,并能完美容纳系统剪贴板。我不确定

顺便说一句,你的rebind方法是完全有效的;它只需要更多的代码:

// For visual mode
"vim.visualModeKeyBindings": [
  {
    "before": ["<C-c>"],
    "after": ["\"", "+", "y"]
  },
  {
    "before": ["<C-v>"], 
    "after":  ["\"", "+", "p"]
  }
],
// For normal mode
"vim.normalModeKeyBindings": [
  {
    "before": ["<C-c>"],
    "after": ["\"", "+", "y"]
  },
  {
    "before": ["<C-v>"], 
    "after":  ["\"", "+", "p"]
  }
]

匿名用户

我发现可以使用CTRL INSERT/SHIFT INSERT成功地与VS Code VIM一起复制到/从系统剪贴板复制,而不会绊倒VIM缓冲区。

对于上下文,我在Windows上的WSL2上运行VS Code。