vim粘贴代码格式变乱

Posted linux学习笔记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vim粘贴代码格式变乱相关的知识,希望对你有一定的参考价值。

有时候从编辑器里面复制粘贴代码到vim中,代码格式会完全乱套。其原因是vim开启了smartindent(智能缩减)或autoindent(自动对齐)模式。为了保持代码的格式,在粘贴前可以先停止上面的两种模式,命令为:

set nosmartindent

set noautoindent

上述命令是在vim的阅读模式先输入冒号(:),然后分别执行即可。为了一个粘贴搞出这么多事来,确实是麻烦。不过还有一个更加简单的方法,用命令开始粘贴模式,即:

开启
set paste

关闭
set nopaste
或
set paste!

由于粘贴模式和上面的smartindent、autoindent模式是互斥的,而smartindent是不可少的,所以粘贴完后使用上面的两条命令之一来关闭粘贴模式。

另外还可以通过绑定自定义快捷键的方式来快速切换,例如将下属配置加入到.vimrc中

方式1:
set pastetoggle=<F4>

方式2:
:map <F8> :set paste
:map <F9> :set nopaste

注意:方式1在阅读和编辑模式下都可以使用,对粘贴模式开启和关闭进行切换;方式2是在阅读模式下使用,按下相应的快捷键就相当于执行后面定义的命令。

以上是关于vim粘贴代码格式变乱的主要内容,如果未能解决你的问题,请参考以下文章

为啥有的PDF格式文字复制后变乱码

老男孩教育每日一题-2017年5月9日-vim命令粘贴带#号或注释信息格式会出现混乱情况怎么办

Linux-vim文件编辑命令小技巧

如何从剪贴板粘贴具有相同格式的源代码[重复]

vim粘贴代码问题

vim与vi粘贴错乱问题