VimでのJavaの構文強調表示の改善


16

RubyとPythonの好みの配色でVimに素晴らしい構文強調表示があることがわかりましたが、Javaコードを書く必要があるときはいつでも、そもそも強調表示をオンにしていないようです。

ご覧のとおり、キーワードは強調表示されていますが、括弧やメソッドの強調表示はありません。Sublime Text(私にとってはあまり好ましくないエディター)では、強調表示がはるかに優れています。クラス名のイタリック体と数学演算子の強調表示があります。Vimは比較するとまばらに見えます。

Vimでその魅力的なSublime Textスタイルのハイライトを表示する方法はありますか?


Sublime Textでビンテージモードを使用してみましたか?すべてのキーバインドをvi(m)の使用に変更しますが、構文の強調表示や複数選択の編集など、ST2の強力な機能を引き続き使用できます。
MattDMo

2
ST2ではビンテージモードが有効になっていますが、ターミナルで複数のtmuxペインを使用できるため、エディターを1秒以上離れることなく同時にsshできるように、ターミナルでVimを使用できます。
kunaicode

はい、GUIエディターを使用することでわずかな後退があります
...-MattDMo

回答:


0

見ていcSyntaxAfterのプラグインを。オペレーターなどを強調しています。

別のオプションは、syntax/java.vimスクリプトを編集し、Operatorグループの強調表示を追加することです。syntax/pascal.vim例として見てください。

クラス名にイタリック体を使用したい場合、Java構文ファイルがそれらをグループとして認識している場合は可能です。クラス名はJavaTypedefグループ内にあるようです。

次に、そのグループの新しいハイライトを定義する必要があります。それは行を削除することを意味します

JavaHiLink javaTypedef                Typedef

構文ファイルから、新しい構文ファイルを追加します。以下では、Typedefのリンク先であるTypeのハイライト宣言を再利用しています。をtermからに変更しましunderlineitalic

yout java.vim構文ファイルに次を配置する必要があります。

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

ヘルプに感謝しますが、クラス名を大文字にするプラグインはありますか?
kunaicode

@kunaicode:知らない。構文の強調表示は、コードの意味を変更しません。大文字化は行います。個人的には、私が書いたコードを自動的に変更するプラグインをすぐに削除しました。
ローランドスミス

混乱をおa びします。つまり、クラス名を斜体にします。大文字ではありません。ごめんなさい。
kunaicode

@kunaicode:最新の回答をご覧ください。
ローランドスミス

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

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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.