4

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

示例:在 C 中,我希望我的注释为绿色,而在 Java 中,我希望它们为浅紫色。

另外,我讨厌 vim 的预设颜色方案。有什么方法可以创建自己的配色方案?

我希望这是可以理解的、完整的、有意义的。

提前致谢!!

4

4 回答 4

11

您可以使用任一自动命令:

autocmd FileType java colorscheme desert

或将命令放入~/.vim/ftplugin/java_mycolors.vim. (这是用于新设置;如果您想覆盖默认的系统范围 ftplugins 中的内容,您可以将它们放入~/.vim/after/ftplugin/java.vim.)

如您所见,第一种方法快速而肮脏,而后者允许模块化和大量定制。你的来电。


至于更改颜色方案,这是一个全局设置;你不能同时混合它们;但是您只会注意到,当您拆分窗口或使用标签页时,它可能没问题。

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

:highlight javaLineComment guifg=Purple
:highlight javaComment guifg=Purple

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

于 2012-08-21T13:17:03.390 回答
9

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

~/.vim/ftplugin/c.vim
于 2012-08-21T12:58:05.180 回答
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
于 2012-08-21T12:54:32.230 回答
3

Romainl 给了你正确的答案,ftplugins 是要走的路,但它是不完整的。

由于您的问题是一个反复出现的问题,因此我找到了一些更完整的其他答案:

于 2012-08-21T13:27:09.970 回答