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 le 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?
Autre chose (autre que "Ne le faites pas!") Que je devrais savoir?
Réponses:
Quelques conseils:
S'amuser :-)
la source
Je suis un utilisateur de Vim depuis des années. Je commence à me retrouver à lancer 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 builds Java prennent un certain temps ... et ils deviennent de plus en plus lents avec l'ajout de frameworks de build hautement composants comme maven. La validation de vos modifications a donc tendance à prendre un certain temps, ce qui pour moi semble souvent conduire à empiler un tas de problèmes de compilation que je dois résoudre plus tard, et le filtrage à travers les messages de validation prend du temps.
Quand je reçois trop de file d'attente de problèmes de compilation, je lance Eclipse. Cela me permet de faire évoluer les changements. Il est lent, brutal à utiliser et pas aussi agréable qu'un éditeur comme Vim (j'utilise Vim depuis près d'une décennie, c'est donc une seconde nature pour moi). Je trouve pour une édition de précision - besoin de corriger un bogue spécifique, de refactoriser un peu de logique spécifique, ou autre chose ... Je ne peux tout simplement pas être aussi efficace pour éditer dans Eclipse que je peux dans Vim.
Aussi un conseil:
Cela fait
^wf
d'un nom de classe une fonctionnalité très intéressante pour naviguer dans un grand projet.Donc, de toute façon, le maigre est, quand j'ai besoin d'ajouter beaucoup de nouveau code, Vim semble me ralentir simplement en raison du temps passé à traquer les problèmes de compilation et des choses similaires. Quand j'ai besoin de trouver et d'éditer des sources spécifiques, Eclipse se sent comme un marteau. J'attends toujours l'IDE magique pour Vim. Il y a eu trois tentatives majeures à ma connaissance. Il existe un plugin de type IDE viml pur qui ajoute beaucoup de fonctionnalités mais semble impossible à utiliser. Il y a eclim, avec lequel j'ai eu beaucoup de mal. Et il y a un plugin pour Eclipse qui intègre réellement Vim. Le dernier semble le plus prometteur pour un vrai travail Java EE sérieux, mais il ne semble pas très bien fonctionner ou vraiment intégrer toutes les fonctionnalités d'Eclipse avec le Vim intégré.
Des choses comme ajouter une importation manquante avec une frappe, du code hilight avec des problèmes de frappe, etc., semblent être inestimables de votre IDE lorsque vous travaillez sur un grand projet Java.
la source
.java
n'est pas nécessaire) sous le curseur dans une nouvelle fenêtre fractionnée s'il est capable de trouver le fichier. C'est pourquoi:set path=**
est utile.:help ^wf
- tout comme les autres aides vimComment invoquer une tâche maven sans quitter vi?
Maven n'est pas différent de toute autre commande shell:
:!mvn
Vous pouvez le faire
:set makeprg=mvn
si vous avez déjà un mappage de clé préféré pour:make
.Puis-je obtenir l'achèvement du code?
Oui, eclim est génial, un pont entre l'efficacité d'édition de vim et la connaissance spécifique au langage Java d'Eclipse.
<C-n>
et<C-p>
ne sont pas si géniaux, mais incroyablement utiles.Comment la syntaxe est-elle mise en évidence?
Plus que suffisant pour un surligneur à base de regex.
Vous voudrez peut-être envisager des outils à d'autres fins vim + java, comme des modèles de code ( snippetEmu - les extraits par défaut sont nuls, mais la personnalisation brille), la recherche d'usages et l'accès aux déclarations (eclim, grep, ctags), la génération de getters et setters ( java_getset , ou eclim), importations automatiques (eclim). Vous pourriez également avoir besoin d'un shell java pour des expériences rapides (le BeanShell , alias
bsh
).la source
Je viens de télécharger ce plugin Vim pour le développement de projets Java Maven.
Et n'oubliez pas de mettre la surbrillance si vous ne l'avez pas déjà fait:
https://github.com/sentientmachine/erics_vim_syntax_and_color_highlighting
la source
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 ant pas maven, mais sinon un joli résumé.
la source
Je sais que c'est quelques années plus tard, mais voici quelques plugins intéressants. Je n'ai encore essayé ni l'un ni l'autre, 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é. L'exécution d'éclipse même en mode sans tête est tout simplement trop de soulèvement mental pour moi.
EDIT2: J'ai utilisé playframework récemment et cela fonctionnera probablement aussi avec les builds maven:
Pour la compilation, vous pouvez configurer le make de VIM pour exécuter maven ou dans mon cas, exécuter un script de construction, le té dans un fichier.
"play_compile" est juste un script de compilation. Il utilise SBT, donc Maven devrait très bien fonctionner ici. Même le javac direct fonctionnera. 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 . C'est beau. Utilise le. Plus rapide que l'éclipse en sautant dans les fichiers.
Pour sauter les méthodes, j'utilise la recherche de balises avec des c-tags exubérants. Sautez dans les déclarations de méthode en utilisant ctrl-]. Revenez en utilisant Ctrl-o. Ne fonctionne pas aussi bien que l'éclipse, mais cela fonctionne assez bien.
J'utilise supertab pour l'achèvement du code. Javacomplete est assez lent, donc je m'en tiens à omni-complete. Encore une fois, pas aussi précis que l'éclipse, mais son rapide et fonctionne assez bien pour moi.
la source
Utilisez vim. ^ - ^ (gVim, pour être précis)
Vous aurez tout (avec quelques plugins).
Btw, snippetsEmu est un bel outil pour coder avec des extraits utiles (comme dans TextMate). Vous pouvez utiliser (ou modifier) un package prédéfini ou créer le vôtre.
la source