它应该很小,甚至可能在帮助中,但我不知道如何导航它。如何在vi中快速缩进多行?
当前回答
我没有在评论中找到我使用的方法,所以我将分享它(我认为只有Vim):
按Esc键进入命令模式移动到要缩进的最后一行的第一个字符Ctrl+V开始块选择移动到要缩进的第一行的第一个字符Shift+I进入特殊插入模式键入需要缩进的空格/制表符(例如两个按Esc键,所有行中将显示空格
当您不想在vimrc中更改缩进/制表符设置或在编辑时记住它们来更改时,这非常有用。
为了取消缩进,我使用相同的Ctrl+V块选择来选择空间,然后用D删除它。
其他回答
一个很大的选择是:
gg=G
它真的很快,所有东西都会缩进;-)
更多视觉人的按键:
进入命令模式:逃跑移动到要缩进的区域的开头:hjkl公司↑↓←→启动块:v移动到要缩进的区域末端:hjkl公司↑↓←→(可选)键入所需的缩进级别数0..9在块上执行缩进:>
对我来说,MacVim(Visual)解决方案是用鼠标选择并按“>”,但在“~/.vimrc”中输入以下行后,因为我喜欢空格而不是制表符:
set expandtab
set tabstop=2
set shiftwidth=2
此外,能够从命令行(Terminal.app)调用MacVim也是很有用的,因为我有以下助手目录“~/bin”,我在其中放置了一个名为“MacVim”的脚本:
#!/usr/bin/env bash
/usr/bin/open -a /Applications/MacPorts/MacVim.app $@
当然,在“~/.bashrc”中:
export PATH=$PATH:$HOME/bin
MacPorts经常使用“~/.profile”,因此PATH环境变量可能会很长。
使用VISUAL MODE的快速方法使用与注释代码块相同的过程。
如果您希望不更改shiftwidth或使用任何set指令,并且足够灵活,可以使用TABS或SPACE或任何其他字符,则此选项非常有用。
将光标定位在块的开头v切换到--视觉模式--选择要缩进的文本类型:切换到提示替换为3个前导空格::'<,'>s/^//g或替换为前导制表符::'<,'>s/^/\t/g简要说明:“<,”>-在可视选定范围内s/^//g-在整个范围内的每行开头插入3个空格(或)s/^/\t/g-在整个范围内每行的开头插入制表符
假设|表示光标在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版开始提供)。