在使用vim的时候,很多情况下都会用到连续粘贴,比如复制了一个代码以后,手动的进行粘贴,而这个时候往往粘贴了一次以后,下一次粘贴的内容就是上一条被覆盖的内容了(这个是vim实现的逻辑,本文不过多讨论),如果想要实现一次复制连续粘贴,可以用命令行的替换,并且加上\c选项来手动选择,也可以使用vim中的命名为0的寄存器进行连续复制,即在想要连续复制的地方输入 “0p 也可以实现连续复制粘贴,但是这两种方式都挺麻烦的,那么有没有什么偷懒的办法呢?我想到了改键,于是我查了一下在vs code下vim改键的方法,并没有用vimrc而是用的json,反正看起来也不复杂,如果有其他拓展需求的话,可以仔细看看下面的链接。
VSCodeVim/Vim: Vim for Visual Studio Code (github.com)https://github.com/VSCodeVim/Vim在vs code中设置连续粘贴的话,需要修改到settings json文件,那么我们打开这个文件以后,就可以去添加vim相关的配置了(前提是下了vim插件),我的settings json与vim配置的相关文件如下:
// vim config
"vim.statusBarColors.easymotioninputmode": "#007acc",
"vim.leader": "<space>",
"vim.statusBarColors.easymotionmode": "#007acc",
"vim.easymotion": true,
"vim.commandLineModeKeyBindingsNonRecursive": [],
"vim.insertModeKeyBindings": [],
"vim.normalModeKeyBindingsNonRecursive": [],
"vim.visualModeKeyBindings": [
// 支持连续粘贴
{
"before": [
"<leader>",
"p"
],
"after": [
"\"",
"0",
"p",
]
},
],
"vim.normalModeKeyBindings": [
// 支持连续粘贴
{
"before": [
"<leader>",
"p"
],
"after": [
"\"",
"0",
"p",
]
},
],
// vim config end
我的方法是在vim 的normal mode和visual mode的时候,用 <leader>p 替换 “0p 实现连续复制,所以也需要根据喜好设置一下vim的leader键(如下代码),我设置的是空格,也可以设置成你喜欢的其他键
"vim.leader": "<space>",
在改完settings json以后,就可以愉快的连续复制了。