Vim 粘贴时关闭自动缩进

参考: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 nopastepastetoggle 仍然是可靠的备用方案。

Leave a Reply