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

|▌冷眼眸甩不掉的悲伤 提交于 2020-02-26 07:47:58

有人可以简单地向我解释根据文件类型更改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

您可以将任何长命令或设置替换为其短版本:
autocmdau
setlocalsetl
shiftwidthsw
tabstopts
softtabstopsts
expandtabet

我还建议学习tabstopsofttabstop之间的区别。 很多人不了解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 ,向下滚动至文件类型插件部分。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!