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


当前回答

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

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

其他回答

假设|表示光标在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版开始提供)。

一个很大的选择是:

gg=G

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

按“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设置允许您控制缩进多少空格。

我没有在评论中找到我使用的方法,所以我将分享它(我认为只有Vim):

按Esc键进入命令模式移动到要缩进的最后一行的第一个字符Ctrl+V开始块选择移动到要缩进的第一行的第一个字符Shift+I进入特殊插入模式键入需要缩进的空格/制表符(例如两个按Esc键,所有行中将显示空格

当您不想在vimrc中更改缩进/制表符设置或在编辑时记住它们来更改时,这非常有用。

为了取消缩进,我使用相同的Ctrl+V块选择来选择空间,然后用D删除它。