在我的工作中,我需要按照家庭风格进行缩进,如下所示:
为每个文件类型指定不同的空白首选项的最佳方法是什么?
答案 0 :(得分:226)
有很多方法,但这里有一个简单易懂的方法。将这些行添加到~/.vimrc
:
autocmd FileType html setlocal ts=2 sts=2 sw=2
autocmd FileType ruby setlocal ts=2 sts=2 sw=2
autocmd FileType javascript setlocal ts=4 sts=4 sw=4
答案 1 :(得分:78)
彼得的答案很简单,但遗憾的是选项不对。您需要使用以下选项:
autocmd Filetype html setlocal ts=2 sw=2 expandtab
autocmd Filetype ruby setlocal ts=2 sw=2 expandtab
autocmd Filetype javascript setlocal ts=4 sw=4 sts=0 noexpandtab
另请注意:
:set list
。:retab!
命令使vim修复文件(用选项卡替换空格,反之亦然)。答案 2 :(得分:33)
setlocal
更复杂的事情,比如一次设置一大堆选项,命令和映射,那么vim的文件类型插件功能就可以解决了。
您需要在filetype plugin on
中拥有filetype plugin indent on
或.vimrc
,然后为例如{}创建插件ruby你可以创建~/.vim/ftplugin/ruby.vim
。从技术上讲,您可以在此处使用您喜欢的任何命令,以便在加载Ruby文件时运行,但推荐的命令包括setlocal
,map <buffer>
,command -buffer
和定义函数。用户指南中提供了更多信息;如果您对vim脚本非常熟悉,请跳至:help 41.11
,否则请阅读:help usr_40
和:help usr_41
。
答案 3 :(得分:9)
还有一个很好的vim脚本:DetectIndent,它试图检测你打开的文件的缩进。 如果你使用不同编码风格的许多文件,它会非常方便。
我在 .vimrc 中使用自动命令:
:autocmd BufReadPost * :DetectIndent
答案 4 :(得分:0)
要在按Tab键时插入空格字符,请设置&#39; expandtab&#39;选项:
:set expandtab
下一步是控制按Tab键时插入的空格字符数,设置&#39; tabstop&#39;选项。例如,要为选项卡插入2个空格,请使用:
:set tabstop=2