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


当前回答

按“SHIFT+v”键进入VISUAL LINE模式。使用光标键或“j”和“k”键选择要缩进的文本。要向右缩进,请按“SHIFT+点”(>字符)。要向左缩进,请按“SHIFT+逗号”(<字符)。

资料来源:https://www.fir3net.com/UNIX/General/how-do-i-tab-multiple-lines-within-vi.html

其他回答

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

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

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

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

除了已经给出并接受的答案外,还可以放置标记,然后将当前光标到标记的所有内容缩进。

因此,在需要缩进块顶部的位置输入ma,将光标向下移动到需要的位置,然后键入>‘a(注意,“a”可以替代任何有效的标记名)。这有时比5>>或vjjj>更容易。

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

我不知道为什么很难找到这样一个简单的答案。。。

我自己也不得不努力去了解这一点。非常简单:

在主目录下编辑.vimrc文件。添加此行凝固煤渣在文件中要适当缩进的位置。正常/命令模式类型10==(这将从当前光标位置缩进10行)=G(完整文件将正确缩进)

当您选择一个块并使用>缩进时,它将缩进,然后返回正常模式。我的.vimrc文件中有这个:

vnoremap < <gv

vnoremap > >gv

它使您可以根据需要多次缩进所选内容。