在正常模式下使用常规粘贴(p)会破坏缩进 - vim

时间:2011-08-16 17:03:27

标签: indentation copy-paste vim

我看到有一个set paste选项,当从终端vim中的系统剪贴板粘贴时允许正确缩进,但我想念如何从vim的缓冲区“内部剪贴板”粘贴pP命令并将=应用于粘贴的文本。到现在为止我手动做到了。

执行set paste或其反转不会修复粘贴文本的缩进。

你能帮忙制作.vimrc映射吗?或者是否有内置选项?

谢谢。

2 个答案:

答案 0 :(得分:6)

]p]P命令将粘贴并将内容放在当前行的缩进处,而不是使用复制行的原始缩进。例如:

line 1
line 2
    line 3
    line 4

复制第2行和第2行3,移至第3行并按]p将导致

line 1
line 2
    line 3
    line 2
        line 3
    line 4

答案 1 :(得分:4)

尝试]p]P

来自:help p

["x]]p              or                                  ]p ]<MiddleMouse>
["x]]<MiddleMouse>      Like "p", but adjust the indent to the current line.
                        Using the mouse only works when 'mouse' contains 'n'
                        or 'a'.  {not in Vi}

["x][P              or                                  [P
["x]]P              or                                  ]P
["x][p              or                                  [p [<MiddleMouse>
["x][<MiddleMouse>      Like "P", but adjust the indent to the current line.
                        Using the mouse only works when 'mouse' contains 'n'
                        or 'a'.  {not in Vi}