我使用vim与许多不同的语言(C,C ++,Java,shell等)。我知道vim已经为每种语言预设了设置,但我想将每种语言的设置更改为我的个人偏好。我已经有一个带有设置的.vimrc文件,但是我想要更多的文件来根据我使用的语言声明更具体的设置。假设要调用哪些文件? c.vim? java.vim里?
示例:在C中,我希望我的评论是绿色的,而在Java中,我希望它们是淡紫色的。
另外,我讨厌vim的预设colorschemes。我可以用什么方式创建自己的colorscheme?
我希望这是可以理解和完整的,也是有道理的。
提前致谢!!
答案 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是要走的路,但它不完整。
由于你的问题是反复出现的问题,我在这里找到了一些更完整的答案: