vim:左对齐当前行的连续行

时间:2012-10-18 16:01:45

标签: vim indentation

很多时候,当我粘贴到vim中时,我会得到级联的缩进,这些缩进非常令人沮丧。结果看起来像这样

This is line one
    This is line two
        This is line three
            This is line four

我想知道是否有办法告诉vim将第二行到第四行与第一行对齐。如果第一行文本从光标位置6开始,有没有办法说“让接下来的十行也从第6位开始?”

3 个答案:

答案 0 :(得分:13)

要更正此级联缩进,您可以使用=重新缩进块。选择一个可视化的区域并输入=或提供一个动作:=4j以重新缩进接下来的4行。

您可以在粘贴之前设置paste来避免级联缩进::set paste。粘贴后:set nopaste

答案 1 :(得分:4)

在粘贴文本时,您可以使用:set paste来避免这种情况。您可以使用left设置缩进级别。

:<range>left3

E.g。

.,+4left3

将接下来的4行的缩进设置为3。

注意:可以在可视模式下定义范围,只需选择S-v的某些行,然后按:left4

答案 2 :(得分:2)

在粘贴之前,粘贴后: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