![Vim 中 Java 的语法高亮效果更好吗?](https://linux22.com/image/1372869/Vim%20%E4%B8%AD%20Java%20%E7%9A%84%E8%AF%AD%E6%B3%95%E9%AB%98%E4%BA%AE%E6%95%88%E6%9E%9C%E6%9B%B4%E5%A5%BD%E5%90%97%EF%BC%9F.png)
我发现 Vim 具有出色的语法高亮显示功能,并且支持我喜欢的 Ruby 和 Python 配色方案,但每当我需要编写 Java 代码时,就好像我根本没有打开高亮显示功能一样。
如您所见,关键字被突出显示,但没有突出显示括号或方法。在 Sublime Text(我不太喜欢的编辑器)中,我看到了更好的突出显示。类名使用斜体显示,数学运算符也突出显示。相比之下,Vim 看起来很简陋。
有没有什么方法可以在 Vim 上获得 Sublime Text 风格的精美突出显示?
答案1
看看语法后插件。它突出显示了操作符等等。
另一个选项是编辑syntax/java.vim
脚本并为该Operator
组添加突出显示。请查看syntax/pascal.vim
示例。
如果您想使用斜体作为类名,如果 java 语法文件将它们识别为一个组,那么这应该是可能的,我认为它确实如此。似乎类名在组中JavaTypedef
。
然后,您必须为该组定义一个新的突出显示。这意味着删除以下行
JavaHiLink javaTypedef Typedef
从语法文件中,并添加一个新文件。下面我重新使用 Type 的高亮声明,这是 Typedef 所链接的。我将从term
更改underline
为italic
。
您应该将以下内容放入您的java.vim
语法文件中。
hi javaTypedef term=italic cterm=NONE ctermfg=LightGreen ctermbg=NONE gui=bold guifg=#60ff60 guibg=NONE
答案2
似乎根本没有丰富的语法文件。
但是我们可以从捆绑的语法文件中榨干更多一点的内容:
let java_highlight_functions = 1
let java_highlight_all = 1
" If you are trying this at runtime, you need to reload the syntax file
set filetype=java
" Some more highlights, in addition to those suggested by cmcginty
highlight link javaScopeDecl Statement
highlight link javaType Type
highlight link javaDocTags PreProc
第一个技巧来自这里。
如果有人制作了更丰富的 Java 语法文件,我们应该将其添加到vim 多语言!
答案3
我在 Vim 中使用 base16-default 颜色方案,但出于某种原因,它在为 Java 定义颜色方面做得很差。添加以下几行将有助于实现部分目标:
" Java: 'new', 'instanceof'
highlight Operator ctermfg=5 guifg=#d175bc
" Java: 'this', 'super'
highlight Typedef ctermfg=5 guifg=#d175bc
" Java: 'void', 'int', 'double'
highlight Type ctermfg=4 guifg=#69b7d3
" literal numbers
highlight Number term=bold ctermfg=16 gui=bold guifg=#d2d22d