很多时候,当我粘贴到 vim 中时,我会得到级联的缩进,修复起来非常令人沮丧。结果将如下所示
This is line one
This is line two
This is line three
This is line four
我想知道是否有一种方法可以告诉 vim 将第 2 到第 4 行与第 1 行对齐。如果第一行文本从光标位置 6 开始,有没有办法说“让接下来的十行也从位置 6 开始?”
很多时候,当我粘贴到 vim 中时,我会得到级联的缩进,修复起来非常令人沮丧。结果将如下所示
This is line one
This is line two
This is line three
This is line four
我想知道是否有一种方法可以告诉 vim 将第 2 到第 4 行与第 1 行对齐。如果第一行文本从光标位置 6 开始,有没有办法说“让接下来的十行也从位置 6 开始?”
要更正这种级联缩进,您可以使用=
. 选择一个视觉块并输入=
或提供一个动作:=4j
重新缩进接下来的 4 行。
paste
您可以通过在粘贴前设置来避免级联缩进: :set paste
. 粘贴后:set nopaste
。
粘贴文本时可以使用:set paste
来避免这种情况。您可以使用 . 设置范围的缩进级别left
。
:<range>left3
例如
.,+4left3
将接下来 4 行的缩进设置为 3。
注意:范围可以在可视模式下定义,只需选择一些行,S-v
然后按:left4
贴前做:set paste
,贴后做:set nopaste
。
或者使用 Vim 的内置粘贴命令和剪贴板寄存器:
"+p (paste after the cursor or below the line)
"+P (paste before the cursor or above the line)
见:help 'paste'
和:help registers
。