13

Я обнаружил, что у Vim фантастическая подсветка синтаксиса с моими предпочтительными цветовыми схемами для Ruby и Python, но всякий раз, когда мне нужно написать Java-код, я как будто даже не включил подсветку.

Как видите, ключевые слова подсвечиваются, но для скобок или методов подсветка отсутствует. В Sublime Text (гораздо менее любимом мной редакторе) я вижу гораздо лучшую подсветку. Есть курсив для имен классов и подсветка для математических операторов. Vim выглядит скудно в сравнении.

Есть ли какой-нибудь способ, каким-либо образом получить эту сочную Sublime Text-style подсветку на Vim?

3 ответа3

1

Я использую цветовую схему base16-default в Vim и по какой-то причине она плохо определяет цвета для 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
1

Кажется, там просто нет файла с богатым синтаксисом.

Но мы можем выжать немного больше из файла синтаксиса в комплекте:

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-polyglot !

0

Взгляните на плагин cSyntaxAfter . Это выдвигает на первый план операторов и так далее.

Другой вариант - отредактировать скрипт syntax/java.vim и добавить подсветку для группы « Operator ». Взгляните на syntax/pascal.vim в качестве примера.

Если вы хотите использовать курсив для имен классов, это должно быть возможно, если файл синтаксиса Java распознает их как группу, и я думаю, что это так. Кажется, что имена классов находятся в группе JavaTypedef .

Затем вам нужно будет определить новое выделение для этой группы. Это будет означать удаление линии

JavaHiLink javaTypedef                Typedef

из файла синтаксиса, и добавление нового. Ниже я повторно использую объявление hightlight для Type, с которым связан Typedef. Я изменил term с underline на italic .

Вы должны поместить следующее в файл синтаксиса java.vim .

hi javaTypedef term=italic cterm=NONE ctermfg=LightGreen ctermbg=NONE gui=bold guifg=#60ff60 guibg=NONE

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .