vim编程时,经常需要对代码进行缩进处理,以增加程序的可读性和后期的代码维护.
可以采用多种方式达到缩进的目的:
1) 命令模式(command mode)
2) Visual模式
2) 输入模式(entry mode)
3) 末行模式(last-line mode)
4) 在/etc/vimrc有给予vim的环境配置, 一般地, 个性化的定制vim的功能,
建议在~/.vimrc文件中进行配置(一般用户可自行创建该文件).
命令模式:
>> 当前行增加一个单位缩进 (即多少个空格为一个单位,为配置文件参数shiftwidth的值)
<< 当前行减少一个单位缩进 (可以连续多次缩进多个单位长度)
#>> 当前行增加#个单位缩进
#<< 当前行减少#个单位缩进 (6>>)
== 为自动排版,也可减少一个单位缩进
Visual模式:(在command mode下v切换)
可将选定的单行或多行:
> 增加一个单位缩进
< 减少一个单位缩进
#> 增加#单位缩进
#< 减少#单位缩进
输入模式:
Ctrl+T增加一个单位缩进
Ctrl+D减小一个单位缩进
末行模式:
startline, endline > 将startline至endline增加一个单位缩进 (经验证,貌似不能出现#>)
startline, endline < 将startline至endline减少一个单位缩进
在配置文件~/.vimrc中添加个性化自动缩进的环境配置参数:
一般有以下的几种:
autoindent: 新增加的行和前一行有相同的缩进形式;
smartindent: 1)每一行都和前一行有相同的缩进量;
2)当遇到右花括号"}"时,则取消了缩进形式;
3)如果一行是以#开头的,则不缩进;
4)此外还增加了识别C语言关键字的功能;
cindent: 这是C语言的缩进形式,采用这样的缩进方式的程序语言有:C,C++,Java等;
当采用这种缩进格式时,vi就会自动的采用标准的C语言形式.
先进性: autoindent < smartindent < cindent
可以用如下命令进行缩进形式的设置:(可在末行模式下操作)
set autoindent 或 set ai
set smartindent 或 set si
set cindent 或 set ci
关闭缩进时: set noautoindent
...
与缩进(indent)相关的参数有:shiftwidth、tabstop、softtabstop、expandtab.
shiftwidth 操作(<<和>>)时缩进一个单位;
tabstop 一个tab键所占的空格数,linux 内核代码建议每个tab占用8个空格;
softtabstop 敲入tab键时实际占有的空格数;
expandtab 输入tab时自动将其转化为空格;
说明tabstop、softtabstop、expandtab之间的关系:
1)三者均用于定义一次tab键所代表的空格数;
2)当定义了softtabstop时,tabstop和expandtab均以softtabstop为准;
3)即当softtabstop=4 无论tabstop和expandtab为何值,最终都为4个空格作为一个单位.
vim ~/.vimrc