Краще виділення синтаксису для Java у Vim?


16

Я виявив, що Vim має фантастичне підсвічування синтаксису з моїми бажаними кольоровими схемами для Ruby та Python, але коли мені потрібно написати код Java, це все одно, що я навіть не вмикав підсвічування в першу чергу.

Як бачимо, ключові слова виділяються, але в дужках чи методах немає виділення. У Sublime Text (набагато менш бажаний для мене редактор) я бачу набагато краще виділення. Існує курсив для назв класів та виділення для математичних операторів. Vim виглядає рідко в порівнянні.

Чи є який-небудь спосіб, щоб отримати цей пишний підсвічування підсвіченого тексту в стилі підкреслення на Vim?


Ви спробували використовувати режим Vintage у піднесеному тексті? Він змінює всі ключові прив’язки до тих, хто використовує vi (m), але все ще дозволяє мати потужні функції ST2, такі як краща підсвітка синтаксису та багаторазове редагування вибору.
— MattDMo

2
У мене ввімкнено Vintage Mode в ST2, але я все ж віддаю перевагу Vim, оскільки можу використовувати його в терміналі, з відкритими декількома панелями tmux, щоб я міг одночасно потрапляти на свою віддалену машину, не залишаючи свого редактора більше секунди.
— kunaicode

так, є незначна
— помилка

Відповіді:


0

Погляньте на плагін cSyntaxAfter . Це висвітлює операторів та ін.

Ще один варіант - відредагувати 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

Дякуємо за допомогу, але чи / чи є якийсь плагін або плагіни для використання великих імен класу?
— kunaicode

@kunaicode: Не те, що я знаю. Підсвічування синтаксису не змінює значення коду. Капіталізація. Особисто я негайно видалю плагін, який автоматично змінить код, який я написав.
— Роланд Сміт

Прошу вибачення за плутанину - я мав на увазі курсивний назви класів. Не використовувати великі літери. Вибачте.
— kunaicode

@kunaicode: Дивіться оновлену відповідь.
— Roland Smith

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


1

Я використовую колірну схему base16 за замовчуванням у 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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.