前言
本文介绍Vim中的粘贴模式paste mode
。
问题
子恒喵在使用vim时,会遇到这样的情况:从外部复制粘贴文本到命令行的vim时,会出现格式、缩进不正确的问题。
从macOS系统剪切板复制粘贴内容到Terminal中的vim。
这种情况在复制粘贴代码时尤为明显。之前,子恒喵都是手动解决缩进问题的…
原因
出现这种问题的原因是:
我们对vim做了各种indent
设置。在处理从外部复制到vim中的内容时,vim会认为这是用户手动输入的,所以对文本做了不正确的缩进。
粘贴模式 paste mode
vim提供了一种特殊的粘贴模式,专门用来解决从外部粘贴内容到vim中格式不正确这一问题。
在粘贴内容前,在vim命令模式下输入:
:set paste
启用粘贴模式。再进入编辑模式,我们会发现提示符已经变成-- INSERT (paste) --
,此时粘贴内容,就不会出现格式缩进混乱的问题啦。
vim实现粘贴模式的原理是:暂时关闭所有影响格式缩进的设置,比如autoindent
。
退出粘贴模式,我们就可以正常编辑文本了:
:set nopaste
更多信息可以查阅vim帮助文档::help paste
。