10

很多时候,当我粘贴到 vim 中时,我会得到级联的缩进,修复起来非常令人沮丧。结果将如下所示

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

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

4

3 回答 3

14

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

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

于 2012-10-18T16:06:11.727 回答
4

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

:<range>left3

例如

.,+4left3

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

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

于 2012-10-18T16:06:31.813 回答
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

于 2012-10-18T16:06:34.793 回答