Dicas para usar o Vim como um IDE Java? [fechadas]

195

Sou viciado em Vim, agora é minha maneira de editar arquivos de texto.

Sendo que é principalmente um editor de texto e não um IDE, alguém tem truques para facilitar o desenvolvimento de aplicativos Java?

Algumas perguntas que tenho:

  • Como invoco uma tarefa automatizada sem sair do vi?
  • Posso obter a conclusão do código?
  • Como a sintaxe está destacada?

Mais alguma coisa (além de "Não faça isso!") Que eu deveria conhecer?

Allain Lalonde
fonte
1
Eu uso o netbeans extensivamente no trabalho, mas para o meu servidor pessoal em casa ... o uso do NetBeans não funciona bem, pois eu teria que fazer meu desenvolvimento em outro computador e depois implantá-lo. A viagem de ida e volta é muito longa.
Allain Lalonde 3/08
1
@AdamC Inbound from Google here ... Como um nerd de linha de comando auto-admitido vindo de python, acho que a barreira para ingressar na configuração de um ambiente de desenvolvimento java é bastante elevada pela necessidade desses programas. Eu já tenho que instalar a JVM ... por que alguém deveria ter que fazer ainda MAIS instalação apenas para dar um alô no mundo? É apenas a disposição geral que as pessoas provenientes de linguagens de script terão ao aprender java pela primeira vez.
DeaconDesperado 11/04
2
Quando estou editando no VIM. Para voltar ao console, basta pressionar Ctrl + Z, que colocará o vim em segundo plano e o levará de volta ao console. Então você pode usar o comando fg para trazer de volta vim para o primeiro plano
Matthew Kirkley
Você não tem que ctrl =
fuzzyTew
3
Você não precisa ctrl + z / fg .. apenas digite:! Command e 'command' será executado. Se você deseja um shell rápido, digite:! Bash. se você sair, volte ao vim em vez de deixar um trabalho em segundo plano pendente. Você pode obter um shell em uma janela do vim com plugins.
fuzzyTew

Respostas:

75

Algumas dicas:

  • Certifique-se de usar o vim (vi aprimorado). Linux e algumas versões do UNIX symlink vi to vim.
  • Você pode obter a conclusão de código com o eclim
  • Ou você pode obter a funcionalidade vi no Eclipse com o viPlugin
  • O destaque da sintaxe é excelente com o vim
  • O Vim tem um bom suporte para escrever pequenas macros, como executar compilações ant / maven

Diverta-se :-)

kit de ferramentas
fonte
7
comando para obter ajuda sobre o realce da sintaxe java. : help java.vim
Michael Ekoka
2
Outra maneira de obter a funcionalidade do Vim no Eclipse é o Vrapper . Possui a maioria das ligações de teclas do Vim e, ao contrário do viPlugin, é gratuito.
N1te 31/03
1
Que tal um depurador que suporte passo a passo, passo a passo, etc?
Donato
1
Linux ... symlink vi que vim Contra-: Arch Linux
johnchen902
30

Sou usuário do Vim há anos. Estou começando a iniciar o Eclipse ocasionalmente (usando o plugin vi, que, devo dizer, tem vários problemas). O principal motivo é que as compilações Java demoram um pouco ... e elas estão ficando cada vez mais lentas com a adição de estruturas de compilação altamente componentes como o maven. Portanto, validar suas alterações tende a demorar um pouco, o que, para mim, muitas vezes parece levar a um monte de problemas de compilação que tenho que resolver mais tarde, e a filtragem pelas mensagens de confirmação demora um pouco.

Quando fico muito grande na fila de problemas de compilação, inicio o Eclipse. Isso me permite fazer um bolo das mudanças. É lento, brutal de usar, e não é um editor tão bom quanto o Vim (eu uso o Vim há quase uma década, então é uma segunda natureza para mim). Acho que é preciso editar com precisão - precisando corrigir um bug específico, refatorar um pouco de lógica específica ou algo mais ... Simplesmente não posso ser tão eficiente na edição no Eclipse quanto no Vim.

Também uma dica:

:set path=**
:chdir your/project/root

Isso torna ^wfum nome de classe um recurso muito bom para navegar em um projeto grande.

De qualquer forma, o mais importante é que, quando eu preciso adicionar muitos códigos novos, o Vim parece me atrasar simplesmente devido ao tempo gasto na busca de problemas de compilação e coisas semelhantes. Porém, quando eu preciso encontrar e editar fontes específicas, o Eclipse parece uma marreta. Ainda estou esperando o IDE mágico para o Vim. Houve três grandes tentativas que eu conheço. Existe um plugin do tipo viml IDE que adiciona muitos recursos, mas parece impossível de usar. Há eclim, com o qual tive muitos problemas. E há um plugin para o Eclipse que realmente incorpora o Vim. O último parece ser o mais promissor para o trabalho realmente sério do Java EE, mas não parece funcionar muito bem ou realmente integra todos os recursos do Eclipse ao Vim incorporado.

Coisas como adicionar uma importação ausente com um pressionamento de tecla, código hilight com problemas de digitação, etc, parecem ser inestimáveis ​​do seu IDE ao trabalhar em um grande projeto Java.

Arjan Tijms
fonte
5
votar para "^ wf" Eu não sabia que existe tal coisa no vim :)
Krzysztof Krason
4
Você pode explicar mais sobre ^ wf? o que faz?
user2427
1
Ele abre o arquivo / classe java (a extensão do nome do arquivo .javanão é necessária) sob o cursor em uma nova janela dividida, se conseguir encontrar o arquivo. É por isso que :set path=**é útil.
exic 14/09/12
Então, os ** são literalmente dois asteriscos?
taco
1
@lijat :help ^wf- assim como outro tipo de ajuda vim
JESii
22
  • Como invoco uma tarefa automatizada sem sair do vi?

    O Maven não é diferente de qualquer outro comando do shell:

    :!mvn

    Você pode, :set makeprg=mvnse você já possui um mapeamento de teclas favorito :make.

  • Posso obter a conclusão do código?

    Sim, eclim é ótimo, uma ponte entre a eficiência de edição do vim e o conhecimento específico da linguagem Java do Eclipse.

    <C-n>e <C-p>não são tão boas, mas incrivelmente úteis.

  • Como a sintaxe está destacada?

    Mais do que suficiente para um marcador de nível baseado em regex.

Você pode considerar ferramentas para outros fins do vim + java, como modelos de código ( snippetEmu - snippets padrão são ruins, mas a personalização brilha), pesquisando usos e indo para declarações (eclim, grep, ctags), gerando getters e setters ( java_getset , ou eclim), importações automáticas (eclim). Você também pode precisar de um shell java para experiências rápidas (o BeanShell , também conhecido como bsh).

ngn
fonte
1
obrigado pela dica BeanShell, eu não sabia sobre essa ferramenta
GoingTharn
8

Eu sei que isso é alguns anos depois, mas aqui estão alguns plugins interessantes. Eu ainda não tentei nenhum deles, então YMMV.

https://github.com/mikelue/vim-maven-plugin

https://github.com/vim-scripts/maven-ide

EDIT: Oh, a propósito, eu tentei eclim de vez em quando, mas a razão pela qual eu gosto do vim é a sua leveza. Executar o eclipse, mesmo no modo sem cabeça, é um esforço mental demais para mim.

EDIT2: Eu tenho usado playframework recentemente e isso provavelmente funcionará também com compilações do maven:

  • Para compilar, você pode configurar o make do VIM para executar o maven ou, no meu caso, executar um script de compilação, para um arquivo.

    autocmd Filetype java setl makeprg=play_compile
    autocmd Filetype java setl efm=%A\ %#[error]\ %f:%l:\ %m,%-Z\ %#[error]\ %p^,%-C%.%#

"play_compile" é apenas um script de compilação. Ele usa o SBT para que o Maven funcione bem aqui. Mesmo javac direto funcionará. Dessa forma, você pode usar o buffer de correção rápida do VIM (: cnext,: clist: cprev, etc).

  • Para pular as aulas, eu uso ctrl-p . É lindo. Use-o. Mais rápido que o eclipse ao pular arquivos.

  • Para pular métodos, uso tagsearch com c-tags exuberantes. Vá para as declarações do método usando ctrl-]. Volte usando Ctrl-o. Não funciona tão bem quanto o eclipse, mas funciona o suficiente.

  • Eu uso supertab para conclusão de código. O Javacomplete é bem lento, então eu uso o omni-complete. Novamente, não tão preciso quanto o eclipse, mas é rápido e funciona bem o suficiente para mim.

crítica
fonte
5

Use o vim. ^ - ^ (gVim, para ser mais preciso)

Você terá tudo (com alguns plugins).

Btw, snippetsEmu é uma boa ferramenta para codificar com trechos úteis (como no TextMate). Você pode usar (ou modificar) um pacote pré-fabricado ou criar o seu.

Berzemus
fonte