Melhor destaque de sintaxe para Java no Vim?


16

Eu encontrei o Vim com destaque de sintaxe fantástica com meus esquemas de cores preferidos para Ruby e Python, mas sempre que preciso escrever código Java, é como se eu nem tivesse ativado o destaque em primeiro lugar.

Como você pode ver, as palavras-chave são realçadas, mas não há realces para parênteses ou métodos. No Sublime Text (um editor muito menos preferido por mim), vejo um destaque muito melhor. Há itálico para nomes de classe e destaque para operadores matemáticos. Vim parece escasso em comparação.

Existe alguma maneira, de alguma maneira, de obter aquele destaque de estilo sublime de texto no Vim?


Você já tentou usar o modo Vintage em Sublime Text? Ele altera todas as associações de teclas para os usos do vi (m), mas ainda permite recursos avançados do ST2, como melhor realce de sintaxe e edição de seleção múltipla.
precisa saber é o seguinte

2
Eu tenho o Modo Vintage ativado no ST2, mas ainda prefiro o Vim porque posso usá-lo no terminal, com vários painéis tmux abertos para que eu possa ssh na minha máquina remota simultaneamente sem deixar meu editor por mais de um segundo.
precisa saber é o seguinte

sim, há que pequeno contratempo de usar um editor GUI ...
MattDMo

Respostas:


0

Dê uma olhada no plugin cSyntaxAfter . Destaca operadores etc.

Outra opção é editar o syntax/java.vimscript e adicionar destaque ao Operatorgrupo. Dê uma olhada syntax/pascal.vimcomo um exemplo.

Você deseja usar itálico para nomes de classe, isso deve ser possível se o arquivo de sintaxe java os reconhecer como um grupo, e acho que sim. Parece que os nomes das classes estão no JavaTypedefgrupo.

Você teria que definir um novo destaque para esse grupo. Isso significaria remover a linha

JavaHiLink javaTypedef                Typedef

do arquivo de sintaxe e adicionando um novo. Abaixo, estou reutilizando a declaração hightlight para Type, à qual o Typedef está vinculado. Eu mudei o termde underlinepara italic.

Você deve colocar o seguinte no seu java.vimarquivo de sintaxe.

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

Obrigado pela ajuda, mas há / existem plugins ou plugins para capitalizar nomes de classes?
precisa saber é

@kunaicode: Não que eu saiba. O destaque da sintaxe não altera o significado do código. Capitalização sim. Pessoalmente, eu removeria imediatamente um plug-in que mudaria automaticamente o código que eu escrevi.
Roland Smith

Peço desculpas pela confusão ... quis dizer, colocar em itálico os nomes das classes. Não capitalizar. Desculpe.
precisa saber é o seguinte

@kunaicode: Veja resposta atualizada.
Roland Smith

2

Parece que simplesmente não há um arquivo de sintaxe rico por aí.

Mas podemos extrair um pouco mais do arquivo de sintaxe que temos:

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

O primeiro truque veio daqui .

Se alguém criar um arquivo de sintaxe Java mais rico, devemos adicioná-lo ao vim-polyglot !


1

Estou usando o esquema de cores base16-padrão no Vim e, por algum motivo, ele faz um trabalho ruim ao definir cores para Java. Adicionar as seguintes linhas ajudará a fazer parte do caminho:

" 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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.