/

粘贴到终端 vim 缩进错乱

从本地复制代码到服务器总是缩进错乱,一行比一行缩进的多,开始以为是 SecureCRT 的锅,后来发现是冤枉他了,锅要给 vim。

原因

在终端的 vim 中没有相应的程序来处理这个从其他应用复制粘贴的过程,所以 vim 通过插入键盘输入的 buffer 来模拟这个粘贴的过程,这个时候 vim 会以为这是用户输入的。

问题就是出在这:当上一行结束,光标进入下一行时 vim 会自动以上一行的的缩进为初始位置。这样就会破坏原始文件的缩进。

解决办法

在 vim 中粘贴前先输入:

:set paste

解决办法 2

vim7.4 发布了,升级一下吧。看一下你编辑后的版本 (vim –version),如果包含 +clipboard(其它都请当作背景):

+clipboard +iconv +path_extra -toolbar
+cmdline_compl +insert_expand -perl +user_commands

然后在 .vimrc 里设置

set clipboard=unnamed

就可以正常写入读取 clipboard 了。

References

– EOF –