有人能简单地给我解释一下根据文件类型改变Vim缩进行为的最简单的方法吗?例如,如果我打开一个Python文件,它应该缩进2个空格,但如果我打开一个Powershell脚本,它应该使用4个空格。
发布于 2008-10-01 18:37:48
您可以添加要在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,向下滚动到文件类型插件部分。
发布于 2008-10-01 18:37:42
使用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。
发布于 2015-05-08 08:50:00
编辑您的~/.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 expandtabhttps://stackoverflow.com/questions/158968
复制相似问题