按文件类型更改Vim缩进行为
有人可以简单地向我解释根据文件类型更改Vim缩进行为的最简单方法吗?例如,如果我打开Python文件,则应缩进2个空格,但是如果我打开Powershell脚本,则应缩进4个空格。
解决方案
将基于文件后缀的autocmd命令放在〜/ .vimrc中
autocmd BufRead,BufNewFile *.c,*.h,*.java set noic cin noexpandtab autocmd BufRead,BufNewFile *.pl syntax on
我们要查找的命令可能是ts =和sw =
我通常使用expandtab
设置,但这对makefiles不利。我最近补充说:
:autocmd FileType make set noexpandtab
到我的.vimrc文件的末尾,它会将Makefile,makefile和* .mk识别为makefile,并且不会展开选项卡。大概可以扩展它。
使用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"。
我们可以添加.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,向下滚动到"文件类型插件"部分。
尽管我们可以使用indent插件或者手动使用设置来配置Vim的缩进,但我建议使用一个名为Vindect的python脚本,当我们打开python文件时,该脚本会自动为我们设置相关设置。使用此技巧可以使Vindect更加有效。当我第一次开始编辑由其他人使用各种缩进样式(制表符与空间和空格数)创建的python文件时,它令人难以置信。但是Vindect以及这个缩进文件
还建议:
- pythonhelper
- python_match
- python_ifold