tab不是一个好东西..在某个编辑器中将tab的缩进设为2/4,产生的文档到其他编辑器里就会很难看;而用“标准tab”格式的文本,拿到设置过的编辑器里,缩进也会搞得很乱。
ruby 代码一个缩进为2个空格;
c/c++ 一个缩进为4个空格;
一般默认的tab为8个空格;
怎样让vim对不同文件类型有不同的缩进机制呢?
使用autocmd可以在vim里注册一个“钩子”,特定事件发生是vim会执行指定的命令。
如果在.vimrc中写:
vim会在1.开启一个新buffer,和2.发现有"ruby"类型文件的时候执行以上两条命令,将缩进设为2
=====
tabstop: 一个tab字符的长度;
softtabstop: 当按下tab键时,产生的空格数。当产生的softtab可以转换成一个tab字符时,vim自动将空格转换成tab字符
如tabstop=8, softtabstop=4, 按一下tab产生4个空格,再按一下tab会把两次产生的8个空格转换成一个tab字符
expandtab: 将tab转换成空格
shiftwidth: vim中自动缩进,或者'<','>',ctrl+T,ctrl+D命令产生的空格数
=====
vim一旦确定一个文件的类型后,会到以下几个位置寻找名为<type>.vim的脚本,并自动加载:
$HOME/.vim
$vim/vimfiles
$vimRUNTIME
$vim/vimfiles/after
$HOME/.vim/after
这就是为什么rails-vim插件把自己解压到~/.vim/plugin/rails.vim和~/.vim/autoload/rails.vim下。