VS code VIM 扩展复制粘贴
VS code VIM extension copy and paste
是否有使用 vim 扩展名在 vs code 中复制和粘贴的正常方法?
我已经尝试将 VIM 注册命令映射到我习惯的快捷命令(ctrl + c 用于复制,ctrl + v 用于粘贴),但结果很奇怪,我不确定如何正确执行此操作。
虽然使用 vim 键绑定非常简单,
vimrc 文件:
map <C-c> "+y
map <C-v> "+p
现在我尝试通过编辑 json.settings 文件将它们迁移到 vs-code:
{
"vim.visualModeKeyBindings": [
{
"before": ["<C-c>"],
"after": ["\"", "+", "y"]
},
{
"before": ["<C-v>"],
"after": ["\"", "+", "p"]
},
], }
我希望它能在可视模式和正常模式(用于粘贴)下运行,并且能够使用这些快捷方式从剪贴板复制和粘贴。
如何正确执行此操作?
还有另一种方法吗?
无需重新绑定,您只需完全停止 Ctrl-C 和 Ctrl-V 扩展即可,然后允许 VSCode 本地处理它们。这可以通过将以下代码放在扩展的 settings.json
文件中来完成:
"vim.handleKeys": {
"<C-c>": false,
"<C-v>": false
}
无论您处于哪种模式,这都会起作用,并且会完美地适应系统剪贴板。我不确定 <C-c>
是否有必要,但 <C-v>
肯定是,因为 <C-v>
是进入视觉块模式的标准 Vim 和弦。
顺便说一句,您的重新绑定方法完全有效;它只需要更多的代码:
// 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"]
}
]
Vim - 扩展配置标志
将以下内容粘贴到您的 VS Code 的 settings.json
文件中:
"vim.useSystemClipboard": true
访问VSCodesettings.json
文件:
- 按 Ctrl + ,(或转到 文件 > 首选项 > 设置)
- 点击图标:右上角的“带箭头的文件”
使用vs code默认复制、粘贴、删除行
"vim.normalModeKeyBindingsNonRecursive": [
{
"before": ["d","d"],
"commands":["editor.action.deleteLines"],
"when":"textInputFocus && !editorReadonly"
},
{
"before":["y"],
"commands":["editor.action.clipboardCopyAction"],
"when":"textInputFocus"
},
{
"before":["y","y"],
"commands":["editor.action.clipboardCopyAction"],
"when":"textInputFocus"
},
{
"before":["p"],
"commands":["editor.action.clipboardPasteAction"],
"when":"textInputFocus && !editorReadonly"
}
],
"vim.visualModeKeyBindingsNonRecursive":[
{
"before":["y"],
"commands":["editor.action.clipboardCopyAction"],
"when":"textInputFocus"
},
{
"before":["y","y"],
"commands":["editor.action.clipboardCopyAction"],
"when":"textInputFocus"
},
{
"before":["x"],
"commands":["deleteRight"],
"when":"textInputFocus"
},
]
https://github.com/VSCodeVim/Vim/#key-remapping
https://code.visualstudio.com/docs/getstarted/keybindings
您还可以通过vim
访问系统剪贴板
在 INSERT 模式下点击 CTRL+R 然后 * 或 +
我发现可以通过 VS Code VIM 成功使用 CTRL+INSERT
/ SHIFT+INSERT
来复制 to/from 系统剪贴板而不会绊倒 VIM缓冲区。
对于上下文,我是 运行 Windows 上的 WSL2 上的 VS Code。
是否有使用 vim 扩展名在 vs code 中复制和粘贴的正常方法?
我已经尝试将 VIM 注册命令映射到我习惯的快捷命令(ctrl + c 用于复制,ctrl + v 用于粘贴),但结果很奇怪,我不确定如何正确执行此操作。
虽然使用 vim 键绑定非常简单, vimrc 文件:
map <C-c> "+y
map <C-v> "+p
现在我尝试通过编辑 json.settings 文件将它们迁移到 vs-code:
{
"vim.visualModeKeyBindings": [
{
"before": ["<C-c>"],
"after": ["\"", "+", "y"]
},
{
"before": ["<C-v>"],
"after": ["\"", "+", "p"]
},
], }
我希望它能在可视模式和正常模式(用于粘贴)下运行,并且能够使用这些快捷方式从剪贴板复制和粘贴。
如何正确执行此操作? 还有另一种方法吗?
无需重新绑定,您只需完全停止 Ctrl-C 和 Ctrl-V 扩展即可,然后允许 VSCode 本地处理它们。这可以通过将以下代码放在扩展的 settings.json
文件中来完成:
"vim.handleKeys": {
"<C-c>": false,
"<C-v>": false
}
无论您处于哪种模式,这都会起作用,并且会完美地适应系统剪贴板。我不确定 <C-c>
是否有必要,但 <C-v>
肯定是,因为 <C-v>
是进入视觉块模式的标准 Vim 和弦。
顺便说一句,您的重新绑定方法完全有效;它只需要更多的代码:
// 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"]
}
]
Vim - 扩展配置标志
将以下内容粘贴到您的 VS Code 的 settings.json
文件中:
"vim.useSystemClipboard": true
访问VSCodesettings.json
文件:
- 按 Ctrl + ,(或转到 文件 > 首选项 > 设置)
- 点击图标:右上角的“带箭头的文件”
使用vs code默认复制、粘贴、删除行
"vim.normalModeKeyBindingsNonRecursive": [
{
"before": ["d","d"],
"commands":["editor.action.deleteLines"],
"when":"textInputFocus && !editorReadonly"
},
{
"before":["y"],
"commands":["editor.action.clipboardCopyAction"],
"when":"textInputFocus"
},
{
"before":["y","y"],
"commands":["editor.action.clipboardCopyAction"],
"when":"textInputFocus"
},
{
"before":["p"],
"commands":["editor.action.clipboardPasteAction"],
"when":"textInputFocus && !editorReadonly"
}
],
"vim.visualModeKeyBindingsNonRecursive":[
{
"before":["y"],
"commands":["editor.action.clipboardCopyAction"],
"when":"textInputFocus"
},
{
"before":["y","y"],
"commands":["editor.action.clipboardCopyAction"],
"when":"textInputFocus"
},
{
"before":["x"],
"commands":["deleteRight"],
"when":"textInputFocus"
},
]
https://github.com/VSCodeVim/Vim/#key-remapping https://code.visualstudio.com/docs/getstarted/keybindings
您还可以通过vim
访问系统剪贴板在 INSERT 模式下点击 CTRL+R 然后 * 或 +
我发现可以通过 VS Code VIM 成功使用 CTRL+INSERT
/ SHIFT+INSERT
来复制 to/from 系统剪贴板而不会绊倒 VIM缓冲区。
对于上下文,我是 运行 Windows 上的 WSL2 上的 VS Code。