如何明确地改变每种语言的vim设置?

时间:2012-08-21 12:43:27

标签: vim color-scheme

我使用vim与许多不同的语言(C,C ++,Java,shell等)。我知道vim已经为每种语言预设了设置,但我想将每种语言的设置更改为我的个人偏好。我已经有一个带有设置的.vimrc文件,但是我想要更多的文件来根据我使用的语言声明更具体的设置。假设要调用哪些文件? c.vim? java.vim里?

示例:在C中,我希望我的评论是绿色的,而在Java中,我希望它们是淡紫色的。

另外,我讨厌vim的预设colorschemes。我可以用什么方式创建自己的colorscheme?

我希望这是可以理解和完整的,也是有道理的。

提前致谢!!

4 个答案:

答案 0 :(得分:11)

您可以使用autocmds:

autocmd FileType java colorscheme desert

或将命令放在~/.vim/ftplugin/java_mycolors.vim中。 (这适用于新设置;如果要覆盖默认的系统级ftplugins中的内容,则将它们放在~/.vim/after/ftplugin/java.vim中。)

正如您所看到的,第一种方法是快速而肮脏的,而后者允许模块化和大量自定义。你的电话。


至于改变colorscheme,这是一个全局设置;你不能同时混合;但是你只会注意到,当你拆分窗户或使用标签页时,它可能没问题。

但是,您可以更改单个语法颜色。默认情况下,所有语言的评论都链接到Comment突出显示组。阅读语法文件(例如$VIMRUNTIME/syntax/java.vim)或使用SyntaxAttr.vim插件确定组名。然后,您可以在.vimrc

中重新定义它
:highlight javaLineComment guifg=Purple
:highlight javaComment guifg=Purple

这很乏味(取决于您想要自定义多少),但更精确,并行工作。我推荐这个,除非你真的想要为每种文件类型完全不同的着色。

答案 1 :(得分:9)

您应该将所有特定于语言的设置放在ftplugin目录中:

~/.vim/ftplugin/c.vim

答案 2 :(得分:5)

您想要autocmd

:help autocmd

autocmd FileType c,java map something somethingelse
" Colorscheme just for PHP
autocmd FileType php colorscheme desert

通过测试FileType,您可以指定其他特定设置。或者,在~/.vim/ftplugin/内,为各个类型创建文件:

~/.vim/ftplugin/java.vim
~/.vim/ftplugin/c.vim

答案 3 :(得分:3)

Romainl给了你right answer,ftplugins是要走的路,但它不完整。

由于你的问题是反复出现的问题,我在这里找到了一些更完整的答案: