它应该很小,甚至可能在帮助中,但我不知道如何导航它。如何在vi中快速缩进多行?
当前回答
按“SHIFT+v”键进入VISUAL LINE模式。使用光标键或“j”和“k”键选择要缩进的文本。要向右缩进,请按“SHIFT+点”(>字符)。要向左缩进,请按“SHIFT+逗号”(<字符)。
资料来源:https://www.fir3net.com/UNIX/General/how-do-i-tab-multiple-lines-within-vi.html
其他回答
使用>命令。要缩进五行,请5>>。要标记一个行块并缩进它,Vjj>缩进三行(仅限Vim)。要缩进大括号块,请将光标放在其中一个大括号上,然后使用>%或从块内的任何位置使用>iB。
如果要复制周围的文本块,并且需要在新位置对齐块的缩进,请使用]p而不是p。这会将粘贴的块与周围的文本对齐。
此外,shiftwidth设置允许您控制缩进多少空格。
执行以下操作:
$vi .vimrc
并添加此行:
autocmd FileType cpp setlocal expandtab shiftwidth=4 softtabstop=4 cindent
这仅适用于cpp文件。您可以对其他文件类型执行此操作,也可以通过修改文件类型。。。
可以使用norm i命令在行的开头插入给定的文本。要在第2-10行前插入10个空格:
:2,10norm 10i
请记住,命令末尾必须有一个空格字符——这将是我们想要插入的字符。我们还可以用任何其他文本缩进一行,例如用五个下划线字符缩进文件中的每一行:
:%norm 5i_
或者更花哨的东西:
:%norm 2i[ ]
更实际的例子是用#字符注释Bash/Python/etc代码:
:1,20norm i#
要重新缩进,请使用x而不是i。例如,要从每行中删除前5个字符:
:%norm 5x
对于喜欢使用<TAB>->TAB和<S-TAB>->Shift+TAB缩进选定行的现代编辑器:
vnoremap <TAB> >gv
vnoremap <S-TAB> <gv
用法:按V键进入逐行视觉模式,选择所需的行,然后按Tab键(可能有移位),然后按需应用缩进,选择仍保留。。。
除了已经给出并接受的答案外,还可以放置标记,然后将当前光标到标记的所有内容缩进。
因此,在需要缩进块顶部的位置输入ma,将光标向下移动到需要的位置,然后键入>‘a(注意,“a”可以替代任何有效的标记名)。这有时比5>>或vjjj>更容易。