按文件类型更改Vim缩进行为

有人能够简单地向我解释根据文件类型改变Vim缩进行为的最简单方法吗? 例如,如果我打开一个Python文件,它应该缩进2个空格,但是如果我打开一个Powershell脚本,它应该使用4个空格。


只要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,向下滚动到文件类型插件部分。


使用ftplugins或自动命令来设置选项。 (:h ftplugin获取更多信息)

在〜/ .vim / ftplugin / python.vim中:

setlocal sw=2 sts=2 et

不要忘记在〜/ .vimrc中打开它们

filetype plugin indent on

或者在〜/ .vimrc中

au FileType python setl sw=2 sts=2 et

我还建议学习'ts'和'sts'之间的区别。 很多人不知道'sts'。


编辑你的~/.vimrc文件,并为不同的缩进添加不同的文件类型,例如我想要html/rb缩进2个空格, js/coffee文件缩进4个空格:

" by default, the indent is 2 spaces. 
set shiftwidth=2
set softtabstop=2
set tabstop=2

" for html/rb files, 2 spaces
autocmd Filetype html setlocal ts=2 sw=2 expandtab
autocmd Filetype ruby setlocal ts=2 sw=2 expandtab

" for js/coffee/jade files, 4 spaces
autocmd Filetype javascript setlocal ts=4 sw=4 sts=0 expandtab
autocmd Filetype coffeescript setlocal ts=4 sw=4 sts=0 expandtab
autocmd Filetype jade setlocal ts=4 sw=4 sts=0 expandtab

请参阅:通过filetype设置Vim空白首选项

链接地址: http://www.djcxy.com/p/49531.html

上一篇: Changing Vim indentation behavior by file type

下一篇: gnome (running via ssh to linux server) by KEYBOARD ONLY