有人可以简单地向我解释根据文件类型更改Vim缩进行为的最简单方法吗? 例如,如果我打开Python文件,则应缩进2个空格,但是如果我打开Powershell脚本,则应缩进4个空格。
#1楼
就个人而言,我在.vimrc中使用以下设置:
autocmd FileType python set tabstop=8|set shiftwidth=2|set expandtab
autocmd FileType ruby set tabstop=8|set shiftwidth=2|set expandtab
#2楼
将基于文件后缀的autocmd命令放在〜/ .vimrc中
autocmd BufRead,BufNewFile *.c,*.h,*.java set noic cin noexpandtab
autocmd BufRead,BufNewFile *.pl syntax on
您正在寻找的命令可能是ts =和sw =
#3楼
我通常使用expandtab
设置,但这对makefile不利。 我最近补充说:
:autocmd FileType make set noexpandtab
到我的.vimrc文件的末尾,它会将Makefile,makefile和* .mk识别为makefile,并且不会展开选项卡。 大概可以扩展它。
#4楼
使用ftplugins或自动命令来设置选项。
ftplugin
在~/.vim/ftplugin/python.vim:
setlocal shiftwidth=2 softtabstop=2 expandtab
并且不要忘记在~/.vimrc
打开它们:
filetype plugin indent on
( :h ftplugin
了解更多信息)
自动命令
在~/.vimrc
:
autocmd FileType python setlocal shiftwidth=2 softtabstop=2 expandtab
您可以将任何长命令或设置替换为其短版本: autocmd
: au
setlocal
: setl
shiftwidth
: sw
tabstop
: ts
softtabstop
: sts
expandtab
: et
我还建议学习tabstop
和softtabstop
之间的区别。 很多人不了解softtabstop
。
#5楼
您可以添加.vim
文件,只要vim切换到特定文件类型即可执行。
例如,我有一个~/.vim/after/ftplugin/html.vim
,内容如下:
setlocal shiftwidth=2
setlocal tabstop=2
这导致vim使用宽度为2个字符的制表符进行缩进( noexpandtab
选项在我的配置中的其他位置全局设置)。
对此进行了描述: http : //vimdoc.sourceforge.net/htmldoc/usr_05.html#05.4 ,向下滚动至文件类型插件部分。
来源:oschina
链接:https://my.oschina.net/u/3797416/blog/3168290