它应该很小,甚至可能在帮助中,但我不知道如何导航它。如何在vi中快速缩进多行?
当前回答
假设|表示光标在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版开始提供)。
其他回答
对于喜欢使用<TAB>->TAB和<S-TAB>->Shift+TAB缩进选定行的现代编辑器:
vnoremap <TAB> >gv
vnoremap <S-TAB> <gv
用法:按V键进入逐行视觉模式,选择所需的行,然后按Tab键(可能有移位),然后按需应用缩进,选择仍保留。。。
经常使用Python,我发现自己经常需要将块移动不止一次缩进。您可以通过使用任何块选择方法来执行此操作,然后只需在>之前输入要跳转的缩进数量
例如,V5j3>将缩进五行三次-如果使用四个空格进行缩进,则为12个空格。
除了提供的解决方案之外,我喜欢用>}一段一段地做事情
:line_num_start,line_num_end>
例如
14,21> shifts line number 14 to 21 to one tab
增加更多选项卡的“>”符号。
例如
14,21>>> for three tabs
当您选择一个块并使用>缩进时,它将缩进,然后返回正常模式。我的.vimrc文件中有这个:
vnoremap < <gv
vnoremap > >gv
它使您可以根据需要多次缩进所选内容。