Краще виділення синтаксису для 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.