V0.1 | Zhicheng Wu | 2016-8-10 Initial |
摘要:本文解释了vim中的tab与space的转换关系和建议的.vimrc配置。
PS: vim的配置文件有/etc/vimrc, $HOME/.vimrc。其中/etc/vimrc是全局的vim配置文件,$HOME/.vimrc是个人的配置文件。以下的设置建议写在$HOME/.vimrc中。
平常我们在写代码时控制缩进可以是:
制表符 Tab键
空格符 space键
缩进符 > 键
建议的设置:
set expandtab set tabstop=4 set shiftwidth=4 set autoindent set softtabstop=4 |
这样的结果是文本中的空白/自动缩进都是用space来实现,但是删除space却可以像删tab一样一次删去固定个字符宽度。
set expandtab
expandtab用来将tab键转换为space,实际存储是space而非tab
set tabstop=4
tabstop定义了tab键显示的宽度,如4即4个字符宽度。注意,实际显示时与4个space没有区别,但是存储到文件时是一个tab。读档案时,档案中的一个tab(\t)会显示为4个space字符宽度。
set shiftwidth=4
shiftwidth定义了自动缩进时的步进长度。如4即4个字符宽度。'shiftwidth'会在使用<< or >> or [count]< or [count]>中使用。
set softtabstop=4
在进行编辑(BS)操作时,space也可以像tab一样删除固定的space数量。
set autoindent
在敲击回车开始新行的时候复制当前行的缩进到新行中。
:retab
retab命令可以将文件中的tab键全部替换为space,如果没有定义替换的space数量,将使用tabstop定义的来进行全文替换。
<< or >>
在normal模式下,使用<<或>>可以调节文本的缩进。一个<<或>>是缩前或缩进1个'shiftwidth'步长。
[count]< or [count]>
在visual模式下,使用[count]< 或者[count]>可以定制地进行缩进,缩进or缩前的列数是[count] * 'shiftwidth'
-------------------------------------
[1] http://vimcasts.org/episodes/tabs-and-spaces/
[2] VIM实用技巧, Drew Neil, 杨源 车文隆译
[3] http://blog.csdn.net/chenxiang6891/article/details/41348073