vim

您所在的位置:网站首页 idea复制粘贴出现乱码 vim

vim

2024-01-24 12:47| 来源: 网络整理| 查看: 265

在insert模式下直接粘贴会出现格式错乱的问题,此时需要切换为paste模式来进行粘贴

临时解决方案: esc :set paste 进入 paste 模式后,按 i 键进入插入模式,然后再粘帖,文本格式不会错乱了。但粘帖后还需要按 进入普通模式并执行如下命令结束 paste 模式 :set nopaste 2. 快捷键一

我们可以利用设置快捷键来简化上面的两个命令。在 ~/.vimrc 中加入如下两行:

map :set paste map :set nopaste 这样,在普通模式下按 F10 (你也可以用自己喜欢的按键)就会进入 paste 模式,按 i 进入插入模式后粘帖,然后按 回到普通模式,再按 F11 结束 paste 模式。 这样虽然方便了,但占用了两个按键。下面我们继续改进。 3. 快捷键二

在 ~/.vimrc 中加入如下内容:

set pastetoggle= 这样就可以把上面的 F10 和 F11 合并为一个快捷键来切换 paste 模式了。 还有更好的办法么?当然! 4. Vim 寄存器一

关于 Vim 寄存器的详细信息请执行命令 “:help registers” 查看。

对于“剪切板”这个概念,Linux 下有两个东西:一个叫做选择缓冲区(X11 selection buffer),另一个才是剪切板(clipboard)。鼠标或键盘选择内容时,内容实时进入缓冲区,然后按中键将内容插入光标所在位置;鼠标或键盘选择内容后,按Ctrl-C(或Shift-Ctrl-C)或菜单中的“复制”,内容进入剪切板,然后按Ctrl-V(或Shift-Ctrl-V)或菜单中的“粘帖”将内容插入光标所在位置。关于这两者的详细信息,请自行搜索,此处不深究。

Vim 的寄存器 “* 对应系统缓冲区, 寄存器 “+ 对应系统剪切板。

如果你是把选择的内容(在系统缓冲区中)粘帖到 Vim ,只需在普通模式下执行如下命令: "*p 对应的,如果你是把复制的内容(在系统剪切板中)粘帖到 Vim,只需在普通模式下执行如下命令: "+p 怎么样?格式没有错乱了吧? 这样虽然简便很多了,但还是需要输入三个字母,并且这三个字母都得使用右手小拇指输入,甚至其中的两个字母还需要 shift 键配合! 还有更简单的办法。 5. Vim 寄存器二

在 ~/.vimrc 里加入如下内容:

set clipboard=unnamed 然后只需在普通模式下按 p 即可把系统缓冲区中的内容粘帖到 Vim 中,就像粘帖用 yy 命令得到的内容一样,并且格式不错乱。

如果把上面的一行换成如下内容:

set clipboard=unnamedplus 普通模式下按 p 粘帖的内容就是系统剪切板里的内容了。

这已经足够简便了。在搜索此问题的过程中,我还看到了另外一些办法。

6. 快捷键三

在 ~/.vimrc 里加入如下内容:

inoremap :setl pastegi+:setl nopastegi 这样,你就可以在插入模式下使用 Shift-Insert 快捷键在粘帖系统剪贴板中的内容了。

把上面一行替换成如下内容同样可以达到相同的效果:

inoremap "+p`]a 注意,这可是在插入模式下哦!比起第 5 节提到的方法,这种方法省去了一次 按键进入普通模式和一次 i 按键重新回到插入模式。 至此,你需要做的只是:

a. 复制你想要的内容;b. 回到 Vim 并按 Shift-Insert 快捷键;c. 继续编辑其他内容。


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3