它应该很小,甚至可能在帮助中,但我不知道如何导航它。如何在vi中快速缩进多行?


当前回答

可以使用norm i命令在行的开头插入给定的文本。要在第2-10行前插入10个空格:

:2,10norm 10i 

请记住,命令末尾必须有一个空格字符——这将是我们想要插入的字符。我们还可以用任何其他文本缩进一行,例如用五个下划线字符缩进文件中的每一行:

:%norm 5i_

或者更花哨的东西:

:%norm 2i[ ]

更实际的例子是用#字符注释Bash/Python/etc代码:

:1,20norm i#

要重新缩进,请使用x而不是i。例如,要从每行中删除前5个字符:

:%norm 5x

其他回答

当您选择一个块并使用>缩进时,它将缩进,然后返回正常模式。我的.vimrc文件中有这个:

vnoremap < <gv

vnoremap > >gv

它使您可以根据需要多次缩进所选内容。

对于代码块,{}:=+%对于选定的行:按住Shift键并使用向上/向下箭头键选择,然后按=。对于整个文件:gg+=+G

注意:“gg”表示转到第1行,“=”是缩进命令,“G”将光标移动到文件末尾。

我使用块模式视觉选择:

到块的前面移动(在顶部或底部)。按Ctrl+V进入视觉块模式。导航以选择行前面的列。按I(Shift+I)进入插入模式。键入一些空格。按Esc键。所有线路都会移位。

这不是一蹴而就。它起作用:

在队伍中间。在所有行上插入任何字符串。要更改列(使用c而不是I)。拖动、删除、替换等。。。

对于mac,

使用vim打开文件vim部署1.yml使用Shift+“v”键选择线条,然后使用“向上”或“向下”键使用Shift+'>'或Shift+'<'缩进选定的行

一个很大的选择是:

gg=G

它真的很快,所有东西都会缩进;-)