我正在使用Vim编辑器。这是我的情况:
1111111111111
2222222222222
3333333333333
4444444444444
以上是原始代码,我想把它们变成下面这样。我应该怎么做才能将它们全部向右移?
1111111111111
2222222222222
3333333333333
4444444444444
我正在使用Vim编辑器。这是我的情况:
1111111111111
2222222222222
3333333333333
4444444444444
以上是原始代码,我想把它们变成下面这样。我应该怎么做才能将它们全部向右移?
1111111111111
2222222222222
3333333333333
4444444444444
在命令模式下,可以使用>>
缩进单行。 4>>
将缩进当前和下三行。
如果您不知道有多少行(可能非常大),则可以使用范围。 转到范围的第一行并输入ma
以放置标记A。 然后转到最后一行并输入>'a
以从此处缩进到标记A。 您可以通过范围执行各种奇妙的操作。
它们的缩进方式取决于一些参数,例如您的shiftwidth设置。 我总是将我的shiftwidth和tabstop设置为相同的,以避免问题:
:set ts=4 sw=4
(例如)。
>
将把它们向右移动shiftwidth
。移动完成后,可视选择将消失,但您可以通过.
(重复上一条命令)再次缩进。>>
将缩进该行,4>>
将缩进所有四行,>3j
以不同的方式执行相同的操作(从此处缩进到三行以下),>}
将缩进所有行直到段落结束(即到第一个空行处,请参见:help object-motions
),并且>ap
将缩进a段落中的所有行p(请参见:help text-objects
),即使光标不在第一行也是如此。.
来重复这些命令以进行深层缩进级别(或者您可以适当设置shiftwidth
)。ap
文本对象是处理此类文本块的最常见方式。您还可以使用text-objects
来加快可视选择速度。点击 >
就是这样。
使用v选择块,然后按>键。
Ctlt+v
来选择多行。:
s/^/ /g
(例如:添加4个空格)Vim 遵循 sed
的方式来删除/添加行首的额外空格,就像这样:
sed -i 's/^/ /g' test.txt
sed -i 's/^ //g' test.txt
Ctl+v
# 用于可视化块模式>
这里没有提到,但非常有用:
:> 和 :< 命令接受一个范围,并且可以使用额外的 > 或 <。例如,:12,20>>> 可以将第12行到第20行(包括)缩进三次。
对我来说,数字需要在符号后面,如>>4
,向右移动,或者在符号前面,如4<<
,向左移动。我使用的是Vim 7.4.52。
>>
;命令模式是当您键入冒号:
并输入命令时。 - too much php:help command-mode
会告诉你有关正常模式的信息,“这也被称为命令模式”。 - nicholas a. evans