它应该很小,甚至可能在帮助中,但我不知道如何导航它。如何在vi中快速缩进多行?
当前回答
更多视觉人的按键:
进入命令模式:逃跑移动到要缩进的区域的开头:hjkl公司↑↓←→启动块:v移动到要缩进的区域末端:hjkl公司↑↓←→(可选)键入所需的缩进级别数0..9在块上执行缩进:>
其他回答
假设|表示光标在Vim中的位置。如果要缩进的文本包含在代码块中,如:
int main() {
line1
line2|
line3
}
您可以执行>i{,这意味着“在(i)块({)内缩进(>)”并获得:
int main() {
line1
line2|
line3
}
现在假设这些线是连续的,但在块之外,例如:
do
line2|
line3
line4
done
要缩进第2行到第4行,您可以直观地选择行并键入>。或者更快,您可以做>2j以获得:
do
line2|
line3
line4
done
注意,>Nj表示从当前行缩进到下面的N行。如果要缩进的行数很大,用户可能需要几秒钟才能计算出正确的N值。为了节省宝贵的时间,您可以使用设置的relativenumber激活相对数选项(从Vim 7.3版开始提供)。
对于代码块,{}:=+%对于选定的行:按住Shift键并使用向上/向下箭头键选择,然后按=。对于整个文件:gg+=+G
注意:“gg”表示转到第1行,“=”是缩进命令,“G”将光标移动到文件末尾。
更多视觉人的按键:
进入命令模式:逃跑移动到要缩进的区域的开头:hjkl公司↑↓←→启动块:v移动到要缩进的区域末端:hjkl公司↑↓←→(可选)键入所需的缩进级别数0..9在块上执行缩进:>
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的工作原理:只需要记住光标移动和命令,以及如何混合它们。因此,我对这个问题的回答是:如果缩进被解释为移动行,=如果缩进被理解为在漂亮的打印中,那么“转到要缩进的行块的一端,然后键入>命令并移动到块的另一端”。
除了提供的解决方案之外,我喜欢用>}一段一段地做事情