Vim

Vim学习笔记-粘贴模式

Posted by zihengCat on 2017-07-05

前言

本文介绍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