web-dev-qa-db-fra.com

Astuces pour utiliser Vim en tant que Java IDE?

Je suis accro à Vim, c'est maintenant ma façon de facto d'éditer des fichiers texte.

Étant donné qu’il s’agit principalement d’un éditeur de texte et non d’un IDE, est-ce que quelqu'un a des astuces pour me faciliter la tâche lors du développement d’applications Java?

Quelques questions que j'ai:

  • Comment invoquer une tâche maven sans quitter vi?
  • Puis-je obtenir l'achèvement du code?
  • Comment la syntaxe est-elle mise en évidence?

Quelque chose d'autre (autre que "Ne le fais pas!") Que je devrais connaître?

192
Allain Lalonde

Quelques conseils:

  • Assurez-vous d'utiliser vim (vi amélioré). Linux et certaines versions de UNIX symlink vi à vim.
  • Vous pouvez compléter le code avec eclim
  • Ou vous pouvez obtenir la fonctionnalité vi dans Eclipse avec viPlugin
  • La mise en évidence de la syntaxe est excellente avec vim
  • Vim a un bon support pour écrire de petites macros comme lancer ant/ maven

S'amuser :-)

74
toolkit

Je suis un utilisateur Vim depuis des années. Je commence à me retrouver à démarrer Eclipse de temps en temps (en utilisant le plugin vi qui, je dois le dire, présente une variété de problèmes). La raison principale est que les builds Java prennent un certain temps ... et ils deviennent de plus en plus lents avec l'ajout de frameworks de construction hautement composants tels que maven. Par conséquent, la validation de vos modifications prend généralement un certain temps, ce qui pour moi semble souvent conduire à accumuler toute une série de problèmes de compilation que je dois résoudre plus tard, et le filtrage des messages de validation prend un certain temps.

Lorsque la file d'attente pour les problèmes de compilation est trop importante, je lance Eclipse. Cela me permet de préparer les changements avec des gâteaux. Il est lent, brutal à utiliser, et pas aussi sympa qu'un éditeur comme Vim (je l'utilise depuis près de dix ans, donc c'est une seconde nature pour moi). Je trouve pour l'édition précise que j'ai besoin de corriger un bogue spécifique, de refactoriser une logique particulière ou autre chose ... Je ne peux tout simplement pas être aussi efficace dans Eclipse que dans Vim.

Aussi un conseil:

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

Cela fait de ^wf Sur un nom de classe une fonctionnalité très agréable pour naviguer dans un grand projet.

Bref, quand j’ai besoin d’ajouter beaucoup de nouveau code, Vim semble me ralentir tout simplement en raison du temps passé à chercher des problèmes de compilation et autres choses du même genre. Lorsque j'ai besoin de trouver et d'éditer des sources spécifiques, Eclipse se sent comme une masse. J'attends toujours le IDE magique pour Vim. À ma connaissance, il y a eu trois tentatives principales. Il existe un plugin pur de type IDE viml qui ajoute de nombreuses fonctionnalités mais semble impossible à utiliser. Il y a eclim, avec lequel j'ai eu beaucoup de problèmes. Et il existe un plugin pour Eclipse qui intègre Vim. Le dernier semble le plus prometteur pour un vrai travail sérieux Java EE, mais il ne semble pas très bien fonctionner ni vraiment intégrer toutes les fonctionnalités d'Eclipse avec le Vim intégré.

Des choses comme ajouter une importation manquante avec une frappe de touche, un code hilight avec des problèmes de frappe, etc., semblent être inestimables pour votre IDE lorsque vous travaillez sur un grand projet Java.

30
Scott McCoy
  • Comment invoquer une tâche maven sans quitter vi?

    Maven n'est pas différent de toute autre commande Shell:

    :!mvn

    Vous pouvez :set makeprg=mvn si vous avez déjà un mappage de clé favori pour :make.

  • Puis-je obtenir l'achèvement du code?

    Oui, eclim est génial, un pont entre l'efficacité de l'édition de vim et la connaissance de la langue Java d'Eclipse.

    <C-n> et <C-p> ne sont pas terribles, mais incroyablement serviables.

  • Comment la syntaxe est-elle mise en évidence?

    Plus que suffisant pour un highligher à base de regex.

Vous voudrez peut-être envisager des outils pour vim + Java, tels que les modèles de code ( snippetEm - les snippets par défaut sont nuls, mais la personnalisation est brillante), la recherche d’utilisations et le passage à des déclarations (eclim, grep, ctags), générer des getters et des setters ( Java_getset , ou eclim), des importations automatiques (eclim). Vous aurez peut-être aussi besoin d'un shell Java) pour les expériences rapides (le BeanShell , a.k.a. bsh).

22
ngn

Je viens de télécharger ce plugin Vim pour le développement de Java Maven.

Et n'oubliez pas de définir la surbrillance si vous ne l'avez pas déjà fait:

enter image description here https://github.com/sentientmachine/erics_vim_syntax_and_color_highlighting

9
ikky

J'ai trouvé le résumé suivant très utile: http://www.techrepublic.com/article/configure-vi-for-Java-application-development/5054618 . La description de: make était pour fourmi non maven, mais sinon un beau résumé.

8
Kevin

Je sais que cela se passe quelques années plus tard, mais voici quelques plugins intéressants. Je n'ai pas encore essayé ces programmes, donc YMMV.

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

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

EDIT: Oh un BTW, j'ai essayé eclim de temps en temps, mais la raison pour laquelle j'aime vim est sa légèreté. Exécuter Eclipse même en mode sans tête est tout simplement trop stimulant pour moi.

EDIT2: J'utilise playframework récemment et cela fonctionnera probablement aussi avec les builds maven:

  • Pour la compilation, vous pouvez configurer VIM pour qu'il exécute maven ou, dans mon cas, un script de construction, qui le transforme en fichier.

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

"play_compile" est juste un script de compilation. Il utilise SBT donc Maven devrait fonctionner parfaitement ici. Même le javac direct fonctionnera. De cette façon, vous pouvez utiliser le tampon de correction rapide de VIM (: cnext,: clist: cprev, etc.).

  • Pour sauter dans les classes, j'utilise ctrl-p . C'est beau. Utilise le. Plus rapide que Eclipse en sautant autour des fichiers.

  • Pour sauter d'une méthode à l'autre, j'utilise tagsearch avec des balises c exubérantes. Accédez aux déclarations de méthode à l'aide de ctrl-]. Revenez en arrière en utilisant Ctrl-o. Ne fonctionne pas aussi bien que Eclipse, mais cela fonctionne assez bien.

  • J'utilise supertab pour compléter le code. Javacomplete est assez lent, je reste donc avec omni-complete. Encore une fois, pas aussi précis que Eclipse, mais c'est rapide et fonctionne assez bien pour moi.

8
critium

Utilisez vim. ^ - ^ (gVim, pour être précis)

Vous aurez tout (avec quelques plugins).

Btw, snippetsEm est un outil agréable de codage d'extraits utiles (comme dans TextMate). Vous pouvez utiliser (ou modifier) ​​un package pré-fabriqué ou créer le vôtre.

5
Berzemus