手动缩进

在Normal Mode下,命令>>将对当前行增加缩进,而命令<<则将对当前行减少缩进。我们可以在命令前使用数字,来指定命令作用的范围。例如以下命令,将减少5行的缩进:

5<<

在命令行中,使用:>命令将对当前行增加缩进,而命令:<则将对当前行减少缩进。使用以下命令,可以对第五行到第十行增加缩进:

:5,10>

如果代码没有正确排版,那么我们可以使用==命令来缩进当前行;也可以进入可视化模式并选择多行,然后使用=命令缩进选中的行。

Indent_SampleCode

通过与文本对象组合,使用以下命令可以缩进{}括号内的代码。

=a{

如果需要缩进整个文件内的代码,则可以使用以下命令:

gg=G

在Insert/Replace Mode下,使用Ctrl-T键可以增加当前行的缩进,而Ctrl-D键则可以减少当前行的缩进。

使用0-Ctrl-D命令,将移除所有缩进。需要注意的是,当输入命令中的“0”时,Vim会认为我们是要输入文本,此时屏幕上显示输入的“0”;然后当我们执行命令Ctrl-D时,Vim就会意识到我们需要减少缩进,这时0就会从屏幕上消失。

缩进宽度默认为8个空格。我们可以使用以下命令,来修改缩进宽度:

:set shiftwidth=4

通过以下设置,每次点击Tab键,将增加宽度为8列的Tab缩进。

:set tabstop=8

:set softtabstop=8

:set shiftwidth=8

:set noexpandtab

使用以下设置,每次点击Tab键,增加的缩进将被转化为4个空格。

:set tabstop=4

:set softtabstop=4

:set shiftwidth=4

:set expandtab

其中,expandtab选项,用来控制是否将Tab转换为空格。但是这个选项并不会改变已经存在的文本,如果需要应用此设置将所有Tab转换为空格,需要执行以下命令:

:retab!

自动缩进

Vim提供三种自动缩进的模式:autoindent、smartindent和cindent(其智能化程度依次递进)。

autoindent 在这种缩进形式中,新增加的行和前一行使用相同的缩进形式。

可以使用以下命令,启用autoindent缩进形式。也可以点击==键进行缩进。

:set autoindent

smartindent 在这种缩进模式中,每一行都和前一行有相同的缩进量,同时这种缩进模式能正确地识别出花括号:当前一行为开花括号“{”时,下一新行将自动增加缩进;当前一行为闭花括号“}”时,则下一新行将取消缩进。此外还将根据'cinwords'选项,来自动识别C语言关键字。如果一行是以“#”开头的注释,那么此行将不采用缩进格式。

可以使用以下命令,启用smartindent缩进结构:

:set smartindent

cindent Vim可以很好的识别出C和Java等结构化程序设计语言,并且能用C语言的缩进格式来处理程序的缩进结构。

可以使用以下命令,启用cindent缩进结构:

:set cindent

命令小结
>>增加缩进
Ctrl-Shift-t
<<减少缩进
Ctrl-Shift-d
:set shiftwidth=n设置缩进宽度
:set cindent启用cindent缩进结构
:set autoindent启用autoindent缩进结构
:set smartindent启用smartindent缩进结构

Ver: 2.0 | YYQ<<上一篇 | 目录 下一篇>