Vim Java için daha iyi sözdizimi vurgulama?


16

Vim'i Ruby ve Python için tercih ettiğim renk şemaları ile vurgulamak için harika bir sözdizimi buldum, ancak Java kodu yazmam gerektiğinde, ilk başta vurgulamayı bile açmamışım gibi.

Gördüğünüz gibi, anahtar kelimeler vurgulanır, ancak parantez veya yöntemler için vurgu yoktur. Sublime Text'de (benim tarafımdan çok daha az tercih edilen bir editör), çok daha iyi vurgulama görüyorum. Sınıf isimleri için italikleştirme ve matematiksel işleçler için vurgulama vardır. Vim kıyaslandığında seyrek görünüyor.

Vim'de bu tatlı Sublime Text tarzı vurgulamayı elde etmenin bir yolu var mı?


Sublime Text'de Vintage modunu kullanmayı denediniz mi? Tüm vi bağlantılarını vi (m) kullanımıyla değiştirir, ancak ST2'nin daha iyi sözdizimi vurgulaması ve çoklu seçim düzenlemesi gibi güçlü özelliklerine izin verir.
MattDMo

2
ST2'de Vintage Modu etkin, ancak hala Vim'i tercih ediyorum çünkü terminalde kullanabiliyorum, birkaç tmux bölmesi açıkken, editörümü bir saniyeden fazla bırakmadan aynı anda uzak makineme ssh yapabiliyorum.
kunaicode

evet, bir GUI editörü kullanmanın küçük bir aksaklığı var ...
MattDMo

Yanıtlar:


0

CSyntaxAfter eklentisine bir göz atın . Operatörleri ve diğerlerini vurgular.

Başka bir seçenek de syntax/java.vimbetiği düzenlemek ve Operatorgrup için vurgulama eklemektir . syntax/pascal.vimÖrnek olarak bir göz atın .

Sınıf isimleri için italik kullanmak istersiniz, java sözdizimi dosyası onları bir grup olarak tanırsa ve bence öyle olur. Sınıf isimlerinin JavaTypedefgrupta olduğu görülüyor .

Daha sonra bu grup için yeni bir vurgu tanımlamanız gerekir. Bu, çizgiyi kaldırmak anlamına gelir

JavaHiLink javaTypedef                Typedef

sözdizimi dosyasından ve yeni bir tane ekleyerek. Aşağıda, Typedef'in bağlı olduğu Type için hightlight bildirimini yeniden kullanıyorum. Değiştim termgelen underlineetmek italic.

Aşağıdaki java.vimsözdizimi dosyasına koymalısınız .

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

Yardımınız için teşekkürler, ancak sınıf adlarını büyük harfle kullanmak için herhangi bir eklenti veya eklenti var mı?
kunaicode

@kunaicode: Bildiğimden değil. Sözdizimi vurgulama , kodun anlamını değiştirmez . Büyük harf kullanımı yapar. Şahsen ben yazdığım kodu otomatik olarak değiştirecek bir eklentiyi hemen kaldırırdım.
Roland Smith

Karışıklık için özür dilerim - demek istediğim, sınıf isimlerini italikleştirmek . Büyük harf değil. Afedersiniz.
kunaicode

@kunaicode: Güncellenmiş cevaba bakın.
Roland Smith

2

Görünüşe göre orada zengin bir sözdizimi dosyası yok.

Ancak elimizdeki paket sözdizimi dosyasından biraz daha fazlasını sıkıştırabiliriz:

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

İlk numara buradan geldi .

Birisi daha zengin bir Java sözdizimi dosyası yaparsa, dosyayı vim-polyglot'a eklemeliyiz !


1

Vim'de base16-default renk şemasını kullanıyorum ve bazı nedenlerden dolayı Java için renkleri tanımlamak kötü bir iş çıkarıyor. Aşağıdaki satırları eklemek, yolun bir parçası olmanıza yardımcı olacaktır:

" 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
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.