参考:Turning off auto-indent when pasting text into Vim
在 Vim 中粘贴代码时,自动缩进有时会让粘贴进来的行越来越向右偏移。Vim 为这种情况提供了一个特殊的 paste 模式。
粘贴之前,运行:
:set paste
然后粘贴你的代码。粘贴模式启用时,Vim 应该会显示 -- INSERT (paste) --。
粘贴完成后,再关闭粘贴模式,这样你输入内容时正常的自动缩进才会继续工作:
:set nopaste
每次都输入这些命令很麻烦,所以我把 <F3> 映射为编辑时切换粘贴模式的快捷键。把这行加入 .vimrc:
set pastetoggle=<F3>
之后,在粘贴前按 <F3>,粘贴文本,然后再按一次 <F3> 返回正常编辑模式。
在较新的 Vim 或终端环境中,括号粘贴支持可能会自动处理这个问题。如果粘贴时缩进仍然出错,:set paste、:set nopaste 或 pastetoggle 仍然是可靠的备用方案。
