Comment utiliser Vim comme IDE Java? [fermé]

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, quelqu'un a-t-il des astuces pour me faciliter la tâche lors du développement D'applications Java?

quelques questions que j'ai:

  • Comment puis-je invoquer une tâche maven sans quitter vi?
  • puis-je avoir le code complet?
  • Comment est la mise en évidence de la syntaxe?

toute autre chose (autre que "Don't do it!") que je devrais connaître?

183
demandé sur Keith Pinson 2008-10-31 14:08:21

7 réponses

Quelques conseils:

  • assurez-vous d'utiliser vim (vi amélioré). Linux et certaines versions D'UNIX symlink vi à vim.
  • vous pouvez obtenir l'achèvement du code avec eclim
  • ou vous pouvez obtenir la fonctionnalité vi dans Eclipse avec viPlugin
  • la mise en évidence de la syntaxe est grande avec vim
  • Vim a un bon support pour l'écriture de petites macros comme courir ant / maven construit

Avoir du plaisir :-)

70
répondu toolkit 2014-11-06 08:48:00

je suis un utilisateur de Vim depuis des années. Je commence à me retrouver à démarrer Eclipse de temps en temps (en utilisant le plugin vi, qui, je dois dire, a une variété de problèmes). La raison principale est que les constructions Java prennent un certain temps...et ils sont de plus en plus lents avec l'ajout de structures de construction hautement componentisées comme maven. Donc valider vos modifications prend un certain temps, ce qui pour moi semble souvent conduire à accumuler un tas de problèmes de compilation que je dois résoudre. résoudre plus tard, et le filtrage à travers les messages de propagation prend un certain temps.

quand je deviens trop grosse d'une file d'attente de compilations, je lance Eclipse. Ça me permet de faire des gâteaux avec les changements. C'est lent, brutal à utiliser, et pas aussi sympa d'un éditeur que Vim (j'utilise Vim depuis près d'une décennie, donc c'est une seconde nature pour moi). Je trouve que pour l'édition de précision-besoin de corriger un bug spécifique, besoin de reformuler un peu spécifique de logique, ou quelque chose d'autre...Je ne peux tout simplement pas soyez aussi efficace au montage dans Eclipse que je peux dans Vim.

également un tip:

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

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

donc, de toute façon, la maigreur est, quand j'ai besoin d'ajouter beaucoup de nouveau code, Vim semble me ralentir simplement en raison du temps passé à courir vers le bas les questions de compilation et des trucs similaires. Quand je dois trouver et éditer des sources spécifiques, Eclipse sent comme un marteau. J'attends toujours L'IDE magique pour Vim. Il y a eu trois tentatives majeures. Il y a un plugin de type vimlide pur qui ajoute beaucoup de fonctionnalités mais semble impossible à utiliser. Il y a l'eclim, avec laquelle j'ai eu beaucoup de problèmes. Et il y a un plugin pour Eclipse qui intègre vim. La dernière semble la plus prometteuse pour un vrai travail sérieux en Java EE, mais elle ne semble pas fonctionner très bien ou vraiment intégrer toutes les fonctionnalités D'Eclipse avec les Vim.

des choses comme ajouter une importation manquante avec une touche, un code hilight avec des problèmes de Dactylographie, etc, semble être inestimable de votre IDE lorsque vous travaillez sur un grand projet Java.

30
répondu Arjan Tijms 2013-07-22 08:22:29
  • Comment puis-je 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 favori de mappage de touches pour :make .

  • puis-je obtenir le code d'achèvement?

    Oui, eclim est grande, un pont entre vim édition de l'efficacité et de l'Éclipse du langage Java-prise de conscience des questions.

    <C-n> et <C-p> ne sont pas si grande, mais étonnamment utile.

  • Comment est la mise en évidence de la syntaxe?

    plus que suffisant pour un highligher basé sur regex.

vous pouvez envisager des outils pour d'autres vim+Java purposes, like code templates ( snippetEmu - les snippets par défaut sont nuls, mais la personnalisabilité brille), recherche d'usages et aller à des déclarations (eclim, grep, ctags), générant des getters et des setters ( java_getset , ou eclim), des importations automatiques (eclim). Vous pourriez aussi avoir besoin d'un shell java pour des expériences rapides (le BeanShell , A. K. A. bsh ).

21
répondu ngn 2008-11-02 19:56:19

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

et n'oubliez pas de mettre la mise en évidence si vous n'avez pas déjà:

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

9
répondu ikky 2013-12-27 08:30:13

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 :faire était pour ant non maven, mais autrement un résumé agréable.

8
répondu Kevin 2011-05-25 19:21:47

je sais que c'est quelques années plus tard, mais voici quelques intéressantes plugins. Je n'ai pas encore essayé l'un de ceux-ci donc YMMV.

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

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

EDIT: Oh un BTW, j'ai essayé eclim hors et sous tension, mais la raison pour laquelle j'aime vim est sa légèreté. Exécuter eclipse même en mode sans tête est juste trop mentale de levage pour moi.

EDIT2: j'ai utilisé playfram Framework récemment et cela fonctionnera probablement avec Maven builds aussi:

  • pour la compilation, vous pouvez configurer la marque de VIM pour exécuter maven ou dans mon case, exécute un script de construction, envoie ça dans un 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 très bien ici. Même direct javac marchera. De cette façon, vous pouvez utiliser le tampon quickfix de VIM (:cnext,: clist: cprev, etc.).

  • pour sauter dans les classes, j'utilise ctrl-p . Ses belles. Utiliser. Plus rapide que l'éclipse en sautant autour de fichiers.

  • pour sauter autour des méthodes, j'utilise tagsearch avec exubérant c-tags. Passez aux déclarations de méthode en utilisant ctrl -]. Revenir en arrière en utilisant Ctrl - O. Ne fonctionne pas aussi bon que l'éclipse, mais ça fonctionne assez bien.

  • j'utilise supertab pour compléter le code. Javacomplete est assez lent, donc je reste avec omni-complet. Encore une fois, pas aussi précis que l'éclipse, mais son rapide et fonctionne assez bon pour moi.

8
répondu critium 2013-10-31 15:36:09

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

vous aurez tout (avec quelques plugins).

Btw, snippetsEmu est un bel outil pour coder avec des snippets utiles (comme dans TextMate). Vous pouvez utiliser (ou modifier) un pré-paquet ou faire votre propre.

5
répondu Berzemus 2008-10-31 11:19:18