如何在vi或vim中多次缩进单行?

69

我在vim中找到了许多有关如何缩进多行的答案,但我想知道如何将一行缩进多次。实际上,我想要以下命令的更短版本: ">>>>>>>>>>" (即10个右括号“大于”符号.)


15
好的,您可以使用 . 来重复上一条命令,将其缩短为 >>.... - user229044
你也可以按下 <esc>:>>>>> - user229044
1
请注意,5>>将缩进五行,而不是当前行缩进五次。这是一个奇怪的设计选择,因为>4<down>>也可以实现同样的效果,而3>4<down>>则是一种方便的方法,可以将五行缩进三次。 - BallpointBen
5个回答

110

选择你需要的内容(通常使用vShift+v),然后输入5>

如果需要修正或重复相同的选择,请使用gv


1
谢谢!我不知道gv这个快捷键可以重新选择。 - Eyal Solomon

15

"如何快速缩进多行vi文本"的一个回答中,有人向我展示了一个非常好的技巧,可以将视觉模式下的>键重新映射为重新选择视觉模式。 在你的.vimrc文件中...

vnoremap < <gv
vnoremap > >gv

然后我只需选择想要缩进的行(或多行),并按照需要的次数按下适当的方向即可。


如果您在可视模式下进行所有操作,这是一个不错的技巧,我喜欢在之后查看所选内容,但我喜欢在初始修改后使用“.”,这仅适用于正常模式。我将把这些内容添加到我的.vimrc文件中,并将它们映射为<TAB>和<S-TAB>。 - Pif

14

你可以通过按下 v 键选择当前行,然后键入 5> 将当前行缩进 5 次,相当于连续按下 > 键 10 次。


8
Daenyth是正确的,但现在无关紧要。在这种情况下,你只需要处于可视模式,无论是否选择行都没有影响。 - Jay

13

缩进一次使用 . 来重复上一条命令,使用 u 来撤销它。


5

来自vim帮助文档::help >

To move a line several 'shiftwidth's, use Visual mode or the : commands.

For example:

    Vjj4>           move three lines 4 indents to the right
    :<<<            move current line 3 indents to the left
    :>> 5           move 5 lines 2 indents to the right
    :5>>            move line 5 2 indents to the right
或者,在正常模式下使用>>重复命令,然后使用.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接