我正在使用Vim编辑器。这是我的情况:
1111111111111
2222222222222
3333333333333
4444444444444
以上是原始代码,我想让它们如下所示。我应该怎样做才能将它们全部转移到右边?
1111111111111
2222222222222
3333333333333
4444444444444
答案 0 :(得分:39)
在命令模式下,您可以使用>>
缩进一行。 4>>
将缩进当前和后三行。
如果您事先不知道有多少行(可能非常大),您可以使用范围。转到范围的第一行并输入ma
以放置标记A.然后转到最后一行并输入>'a
以从此处缩进到标记A.您可以使用缩进来执行各种精彩的操作的范围内。
它们缩进的方式取决于你的shiftwidth设置等几个方面。我总是将shiftwidth和tabstop设置相同以避免出现问题:
:set ts=4 sw=4
(例如)。
答案 1 :(得分:23)
如果您已经在视觉模式中选择了四行:>
会将它们shiftwidth
向右移动。移动后,视觉选择将消失,但您可以通过.
再次缩进(重复上一个命令)。
如果您处于正常模式,将光标放在第一行的任何位置:
>>
将缩进该行,4>>
将缩进所有四行,>3j
将以不同的方式执行相同的操作(从此行缩进到三行),>}
将缩进所有行,直到段落结尾(即到第一个空行,请参阅:help object-motions
)和>ap
将缩进 a p -aragraph的所有行(请参阅:help text-objects
),即使您的光标未打开第一行。同样,您可以通过.
重复这些命令以获得更深的缩进级别(或者您可以适当地设置shiftwidth
。)
如果您的文件很好地由“段落”组成(我的大部分代码和散文都是),我认为您会发现ap
文本对象是处理块的最常见方式像这样的文字。您还可以使用text-objects
来加速视觉选择。
答案 2 :(得分:7)
点击>
就是这样。
答案 3 :(得分:4)
使用v选择块,然后按>键。
答案 4 :(得分:3)
使用>
键。
答案 5 :(得分:0)
对我来说,需要追踪的数字,如>>4
,要向右移动,或者之前移动,如4<<
,向左移动。我使用的是Vim 7.4.52。
答案 6 :(得分:0)
Ctlt+v
选择多行。:
s/^/ /g
(例如:用于添加4个空格) Vim遵循sed
,从这样的行的开头删除/添加多余的空格:
sed -i 's/^/ /g' test.txt
sed -i 's/^ //g' test.txt
答案 7 :(得分:0)
此处未提及但非常有用:
<块引用>:> 和 :< 命令接受一个范围,并且可以使用附加的 > 或 <。例如,:12,20>>> 将第 12 行到第 20 行缩进 3 次