首页 > 代码库 > 关于VIM的缩进的功能键和配置文件的设置

关于VIM的缩进的功能键和配置文件的设置

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

 技术分享  

关于VIM的缩进的功能键和配置文件的设置