我在工作中需要遵循缩进的公司规范,具体如下:
- 在编写 HTML 和 Ruby 代码时,使用 2 个空格进行缩进。
- 在编写 JavaScript 代码时,使用 TAB 进行缩进,推荐设置 tabwidth=4 。
如何为不同的文件类型指定不同的空格偏好?
我在工作中需要遵循缩进的公司规范,具体如下:
如何为不同的文件类型指定不同的空格偏好?
有很多方式,但这里有一种简单易懂的方式。将以下几行添加到您的~/.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
Peter回答的很直接,但不幸的是选项不正确。您需要改用以下选项:
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
命令使vim显示制表符。:retab!
命令让vim修复文件(将空格替换为制表符或反之亦然)。expandtab
相对于 sts=2
有什么好处? - James McMahonsetlocal
这样简单的设置,比如一次性设置大量选项、命令和映射,那么 vim 的 filetype plugin 功能可以帮你解决问题。.vimrc
文件中需要加入 filetype plugin on
或 filetype plugin indent on
,然后为 Ruby 等语言创建插件,只需创建 ~/.vim/ftplugin/ruby.vim
即可。你可以在这里使用任何你喜欢的命令,在加载 Ruby 文件时运行。推荐的命令包括 setlocal
、map <buffer>
、command -buffer
和定义函数等。更多信息请参阅用户指南;如果你已经非常熟悉 vim 的脚本编写,则可以直接查看 :help 41.11
,否则请先阅读 :help usr_40
和 :help usr_41
。还有一个不错的 Vim 脚本:DetectIndent,它会尝试检测你打开的文件的缩进方式。
如果你需要处理许多编码风格不同的文件时,它非常方便。
我在我的 .vimrc 中使用了一个自动命令:
:autocmd BufReadPost * :DetectIndent
:set expandtab
:set tabstop=2