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


当前回答

使用VISUAL MODE的快速方法使用与注释代码块相同的过程。

如果您希望不更改shiftwidth或使用任何set指令,并且足够灵活,可以使用TABS或SPACE或任何其他字符,则此选项非常有用。

将光标定位在块的开头v切换到--视觉模式--选择要缩进的文本类型:切换到提示替换为3个前导空格::'<,'>s/^//g或替换为前导制表符::'<,'>s/^/\t/g简要说明:“<,”>-在可视选定范围内s/^//g-在整个范围内的每行开头插入3个空格(或)s/^/\t/g-在整个范围内每行的开头插入制表符

其他回答

使用>命令。要缩进五行,请5>>。要标记一个行块并缩进它,Vjj>缩进三行(仅限Vim)。要缩进大括号块,请将光标放在其中一个大括号上,然后使用>%或从块内的任何位置使用>iB。

如果要复制周围的文本块,并且需要在新位置对齐块的缩进,请使用]p而不是p。这会将粘贴的块与周围的文本对齐。

此外,shiftwidth设置允许您控制缩进多少空格。

Vim UI的优点在于其一致性。编辑命令由命令和光标移动组成。光标移动始终相同:

H到屏幕顶部,L到底部,M到中间nG到第n行,G单独到文件底部,gg到顶部n移动到下一个搜索匹配,n移动到上一个}至段落末尾%到下一个匹配的括号,括号或标记类型进入下一行“x标记x,其中x是字母或其他字母”。还有很多,包括单词的w和w、行尖的$或0等,这些都不适用于这里,因为它们不是行移动。

因此,为了使用vim,您必须学会移动光标并记住一系列命令,例如,>to indent(和<to“outdent”)。

因此,要将光标位置的行缩进到屏幕顶部,请执行>H,>G以缩进到文件底部。

如果不是键入>H,而是键入dH,则删除相同的行块,cH替换它,等等。

某些光标移动更适合特定命令。特别是,%命令可以方便地缩进整个HTML或XML块。如果文件突出显示了语法(:syn on),则在标记的文本中设置光标(例如,在<div>的“i”中,输入>%将缩进到最后的</div>标记。

这就是Vim的工作原理:只需要记住光标移动和命令,以及如何混合它们。因此,我对这个问题的回答是:如果缩进被解释为移动行,=如果缩进被理解为在漂亮的打印中,那么“转到要缩进的行块的一端,然后键入>命令并移动到块的另一端”。

:line_num_start,line_num_end>

例如

14,21> shifts line number 14 to 21 to one tab

增加更多选项卡的“>”符号。

例如

14,21>>> for three tabs

所有命令的主人是=G

这会缩进整个文件!

下面是一些用于在Vim或gVim中快速缩进行的简单而优雅的命令。

缩进当前行==

缩进当前行下的所有行

=G

在当前行下方缩进n行

n==

例如,在当前行下方缩进4行

4==

要缩进代码块,请转到大括号之一并使用命令

=%

这些是缩进多行的最简单但功能强大的命令。

经常使用Python,我发现自己经常需要将块移动不止一次缩进。您可以通过使用任何块选择方法来执行此操作,然后只需在>之前输入要跳转的缩进数量

例如,V5j3>将缩进五行三次-如果使用四个空格进行缩进,则为12个空格。