在我的工作中,我被要求按照房子的样式进行缩进,具体如下:
为每个文件类型指定不同空白首选项的最佳方法是什么?
有很多方法,但这里有一个简单,容易理解的方法。把这些行添加到你的 ~/.vimrc:
~/.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,但 Vim 也提供了另一种解决方案。如果您想要做一些比单个 setlocal更复杂的事情,比如同时设置一大堆选项、命令和映射,那么 vim 的 filetype 插件特性可以解决这个问题。
setlocal
你需要在你的 .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。
.vimrc
filetype plugin on
filetype plugin indent on
~/.vim/ftplugin/ruby.vim
map <buffer>
command -buffer
:help 41.11
:help usr_40
:help usr_41
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
:retab!
还有一个很好的 vim 脚本: 探测器,它试图检测您打开的文件的缩进。 如果您使用许多具有不同编码风格的文件,那么它非常方便。
我在 。 vimrc中使用自动命令:
:autocmd BufReadPost * :DetectIndent
若要在按制表符键时插入空格字符,请设置“ expandtab”选项:
:set expandtab
下一步是控制按 Tab 键时插入的空格字符数,设置“ tabstop”选项。例如,要为一个制表符插入2个空格,请使用:
:set tabstop=2
档号: http://vim.wikia.com/wiki/Converting_tabs_to_spaces