VIM之set pastetoggle:解决VIM从外部粘贴代码后格式错乱问题以及如何映射粘贴开关快键键?

blogdaren 2019-04-02 抢沙发 346人次

问题背景-1:

在开启了代码自动缩进的背景下,我们经常从会外部复制代码然后粘贴到VIM里面,但是VIM默认是 nopaste 模式, 这时候粘贴进来代码就会格式错乱。

问题原因-1:

VIM中没有相应的程序来处理从其他应用复制粘贴的过程,所以VIM通过插入键盘输入的buffer来模拟这个粘贴的过程,而此时VIM会把粘贴的内容当作是用户输入的。

解决方案-1:

:set paste

问题背景-2:

粘贴代码的格式错乱问题是解决了,但是新问题又来了,很多时候还需要切换回 nopaste 模式,这时候只能敲冒号命令: set paste 或者 set nopaste,来回敲很麻烦是不是?也曾想过来个映射,但是又觉的需要映射两个键,还是不够犀利啊。

解决方案-2:

今天又海搜了下,发现VIM居然还支持 set pastetoggle,强大,欣喜,配置文件新增如下三行命令集:
nnoremap <F4> :set invpaste paste?<CR> 
imap <F4> <C-O>:set invpaste paste?<CR>
set pastetoggle=<F4>

命令解读-2:

第一行的作用是在命令模式下,按F4会在状态栏反馈当前的状态是 paste or nopaste
第二行的作用是在插入模式下,按F4会在状态栏反馈当前的状态是 paste or nopaste

版权声明:除非注明,本文由( blogdaren )原创,转载请保留文章出处。

本文链接:VIM之set pastetoggle:解决VIM从外部粘贴代码后格式错乱问题以及如何映射粘贴开关快键键?

发表评论:

您的昵称:
电子邮件:
个人主页: