Vim系列 - 正确的粘贴

Posted StarfxTalk

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vim系列 - 正确的粘贴相关的知识,希望对你有一定的参考价值。


当从其他位置复制一些文本粘贴到 Vim 里时,很常见的一个问题是会在每行的开头都出现一个 indent,搞的格式很乱,例如拷贝如下的一些行到 Vim 里时:


line 1 content bla bla bla

line 2 content bla bla bla

line 3 content bla bla bla

line 4 content bla bla bla

line 5 content bla bla bla

line 6 content bla bla bla

line 7 content bla bla bla

line 8 content bla bla bla


结果可能是这样的:



这一般是设置了 autoidnent 相关的配置,不过没有关系,Vim 提供了一个叫 paste 的配置,可以在需要粘贴时临时修改 indent 的配置,粘贴完成后再恢复回去。


所以只需要在粘贴操作之前执行 :set paste,粘贴完成后再执行 :set nopaste 即可。


今天内容较少,来一个彩蛋,上边用到的那8行文本,其实只需要写好一行,就可以用 Vim 来批量生成。按照下面的提示,在你的Vim里操作试一下。


以下操作默认为刚进入到 Vim,且 Vim 处在 normal mode。


i

line<Space>1<Space>content<Space>bla<Space>bla<Space>bla

<Esc>

qa

yyp<CTRL-A>

q

6@a


解释一下:


<Space> 代表空格键

<Esc> 代表 Esc 键

<CTRL-A> 代表按住 Ctrl 键的同时按 a 键


这里涉及到 Vim 在 normal mode 下的一些基础操作和 Vim 强大的宏操作,以后单独讲解,今天先简单提一下。


happy hacking。



以上是关于Vim系列 - 正确的粘贴的主要内容,如果未能解决你的问题,请参考以下文章

vim全选复制粘贴

保存 vim 宏

为啥当我将文本从浏览器复制并粘贴到文件时,Vim 会再次缩进每一行?

vim 下粘贴复制,如何做到最快

如何将vim里的内容复制粘贴到vim之外的地方

vim拷贝粘贴总结(p、Shift+Insert、Shift+Ctrl+v)