在Vim中,如何将代码块移到右边?

Yon*_*ing 28 vim

我正在使用Vim编辑器.这是我的情况:

1111111111111
2222222222222
3333333333333
4444444444444
Run Code Online (Sandbox Code Playgroud)

以上是原始代码,我想让它们如下所示.我应该怎么做才能将它们全部转移到右边?

    1111111111111
    2222222222222
    3333333333333
    4444444444444
Run Code Online (Sandbox Code Playgroud)

pax*_*blo 43

在命令模式下,您可以使用>>缩进单行.4>>将缩进当前和后三行.

如果您事先不知道有多少行(可能非常大),您可以使用范围.转到范围的第一行并输入ma以放置标记A.然后转到最后一行并输入>'a从此处缩进到标记A.您可以使用范围执行各种奇妙的操作.

它们如何缩进取决于您的shiftwidth设置等几个方面.我总是将shiftwidth和tabstop设置相同以避免出现问题:

:set ts=4 sw=4
Run Code Online (Sandbox Code Playgroud)

(例如).

  • Nitpick:你在*normal*模式中使用`>>`; 命令模式是键入`:`并键入命令. (6认同)
  • 实际上,我会对那个人持不同意见.Vi有_always_指的是命令和插入模式,尽管维基百科错误:-).冒号命令只是命令模式中允许的`ex`命令,前缀为`:`. (3认同)

nic*_*ans 24

如果您已经在视觉模式中选择了四行:>将它们shiftwidth向右移动.移动后,视觉选择将消失,但您可以再次缩进.(重复上一个命令).

如果您是正常模式,将光标放在第一行的任何位置:

  • >> 将缩进该行,
  • 4>> 将缩进所有四行,
  • >3j 将以不同的方式做同样的事情(从这一行缩进到三行),
  • >}将缩进所有行直到段落结束(即到第一个空行,请参阅:help object-motions),和
  • >ap将所有缩进的行的一个 p -aragraph(见:help text-objects),即使你的光标不在第一线.

同样,您可以通过.更深的缩进级别重复这些命令(或者您可以shiftwidth适当地设置).

如果你的文件很好地由"段落"组成(我的大部分代码和散文都是),我认为你会发现ap文本对象是处理这类文本块的最常用方法.您还可以使用text-objects加速视觉选择.


Alo*_*hal 7

击中 >

就这样.


Rum*_*kin 5

使用v选择块,然后按>键。