在 Vim 中为不同的语言设置不同的设置
Set different settings for different languages in Vim
我想为不同的语言设置不同的设置或
文件类型。
每种语言都有自己的风格指南(例如,不同的制表符大小、空格代替制表符等)所以我无法在我的 .vimrc
中添加以下设置,因为我将 vim 与多个语言一起使用语言。每种语言的设置应该是分开的
Python 4 个空格缩进样式的文件设置:
set tabstop=4
set shiftwidth=4
JavaScript 2 个空格缩进样式的文件设置:
set tabstop=2
set shiftwidth=2
autocmd FileType python call Python_settings()
function! Python_settings()
setlocal tabstop=4
setlocal shiftwidth=4
setlocal expandtab
endfunction
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 已经按照您想要的方式设置了这些选项。
我想为不同的语言设置不同的设置或 文件类型。
每种语言都有自己的风格指南(例如,不同的制表符大小、空格代替制表符等)所以我无法在我的 .vimrc
中添加以下设置,因为我将 vim 与多个语言一起使用语言。每种语言的设置应该是分开的
Python 4 个空格缩进样式的文件设置:
set tabstop=4
set shiftwidth=4
JavaScript 2 个空格缩进样式的文件设置:
set tabstop=2
set shiftwidth=2
autocmd FileType python call Python_settings()
function! Python_settings()
setlocal tabstop=4
setlocal shiftwidth=4
setlocal expandtab
endfunction
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 已经按照您想要的方式设置了这些选项。