¿Mejor resaltado de sintaxis para Java en Vim?

16

He descubierto que Vim tiene un resaltado de sintaxis fantástico con mis esquemas de color preferidos para Ruby y Python, pero cada vez que necesito escribir código Java, es como si ni siquiera hubiera activado el resaltado en primer lugar.

Como puede ver, las palabras clave están resaltadas, pero no hay resaltado para paréntesis o métodos. En Sublime Text (un editor mucho menos preferido por mí), veo mucho mejor resaltado. Hay cursiva para los nombres de clase y resaltado para operadores matemáticos. Vim parece escaso en comparación.

¿Hay alguna forma de obtener ese delicioso resaltado de estilo de texto sublime en Vim?

kunaicode
fuente
¿Has intentado usar el modo Vintage en Sublime Text? Cambia todas las asociaciones de teclas a los usos de vi (m), pero aún permite características potentes de ST2 como un mejor resaltado de sintaxis y edición de selección múltiple.
MattDMo
2
Tengo el Modo Vintage habilitado en ST2, pero todavía prefiero Vim porque puedo usarlo en la terminal, con varios paneles tmux abiertos para que pueda ingresar a mi máquina remota simultáneamente sin tener que dejar mi editor por más de un segundo.
kunaicode
Sí, existe ese pequeño revés de usar un editor de GUI ...
MattDMo

Respuestas:

0

Eche un vistazo al complemento cSyntaxAfter . Destaca operadores, etc.

Otra opción es editar el syntax/java.vimscript y agregar resaltado para el Operatorgrupo. Echa un vistazo syntax/pascal.vimcomo ejemplo.

Si desea usar cursiva para los nombres de clase, eso debería ser posible si el archivo de sintaxis de Java los reconoce como un grupo, y creo que sí. Parece que los nombres de clase están en el JavaTypedefgrupo.

Entonces tendría que definir un nuevo resaltado para ese grupo. Eso significaría eliminar la línea

JavaHiLink javaTypedef                Typedef

desde el archivo de sintaxis y agregando uno nuevo. A continuación, estoy reutilizando la declaración de hightlight para Type, que es a lo que Typedef está vinculado. Cambié el termde underlinea italic.

Debe poner lo siguiente en su java.vimarchivo de sintaxis.

hi javaTypedef term=italic cterm=NONE ctermfg=LightGreen ctermbg=NONE gui=bold guifg=#60ff60 guibg=NONE
Roland Smith
fuente
Gracias por la ayuda, pero ¿hay / hay algún complemento o complementos para capitalizar los nombres de clase?
kunaicode
@kunaicode: No que yo sepa. El resaltado de sintaxis no altera el significado del código. La capitalización sí. Personalmente, eliminaría inmediatamente un complemento que cambiaría automáticamente el código que he escrito.
Roland Smith
Pido disculpas por la confusión ... Quiero decir, poner en cursiva los nombres de clase. No capitalizar. Lo siento.
kunaicode
@kunaicode: Ver respuesta actualizada.
Roland Smith
2

Parece que simplemente no hay un archivo de sintaxis rico por ahí.

Pero podemos exprimir un poco más del archivo de sintaxis incluido que tenemos:

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

El primer truco vino de aquí .

Si alguien hace un archivo de sintaxis Java más rico, ¡deberíamos agregarlo a vim-polyglot !

joeytwiddle
fuente
1

Estoy usando el esquema de color predeterminado de base16 en Vim y, por alguna razón, hace un mal trabajo al definir colores para Java. Agregar las siguientes líneas ayudará a obtener parte del camino allí:

" 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
cmcginty
fuente