使用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"]
},
], }
我希望这个操作在视觉模式和正常模式(粘贴),并能够使用这些快捷方式从剪贴板复制和粘贴。
如何正确执行此操作?有没有其他方法可以做到这一点?
通过搜索“vim-clip”勾选设置中的复选框。
或者
将以下内容粘贴到 VS Code 的 settings.json
文件中:
"vim.useSystemClipboard": true
访问 VSCode settings.json
文件:
VSCodeVim/Vim存储库快速示例中的设置
您可以简单地停止vscodevim
扩展来完全处理Ctrl-C和Ctrl-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。