我想为不同的语言设置不同的设置或 文件类型。
每种语言都有自己的样式指南(例如,不同的制表符大小、空格而不是制表符等),因此我无法在 .vimrc
中添加以下设置,因为我将 vim 用于多种语言。每种语言的设置应该分开
4 个空格缩进样式的 Python 文件设置:
set tabstop=4
set shiftwidth=4
2 个空格缩进样式的 JavaScript 文件设置:
set tabstop=2
set shiftwidth=2
答案 0 :(得分:3)
Vim 带有内置的文件类型检测功能,除其他外,它可以针对不同的文件类型执行不同的操作。
要使该机制发挥作用,您的 vimrc
中需要以下行:
filetype on
filetype indent on
filetype plugin on
filetype indent plugin on " the order of 'indent' and 'plugin' is irrelevant
假设您有以下任意一行:
filetype plugin on
filetype indent plugin on
您可以使用以下内容创建 $HOME/vim/after/ftplugin/javascript.vim
:
setlocal tabstop=2
setlocal shiftwidth=2
:setlocal
用于代替 :set
使这些设置缓冲区本地化,从而防止它们泄漏到其他缓冲区中。after
目录用于确保您的设置最后获得。仍然假设您启用了 ftplugins,对 Python 没有任何影响,因为默认的 ftplugin 已经按照您想要的方式设置了这些选项。
答案 1 :(得分:0)
autocmd FileType python call Python_settings()
function! Python_settings()
setlocal tabstop=4
setlocal shiftwidth=4
setlocal expandtab
endfunction