IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

EDI et Outils pour Java Discussion :

SpaceVim : utiliser l'éditeur de texte VIM en tant qu'EDI Java, grâce à des plugins dédiés


Sujet :

EDI et Outils pour Java

  1. #1
    Community Manager

    Avatar de Malick
    Homme Profil pro
    Community Manager
    Inscrit en
    Juillet 2012
    Messages
    9 131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Community Manager
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2012
    Messages : 9 131
    Points : 83 964
    Points
    83 964
    Billets dans le blog
    15
    Par défaut SpaceVim : utiliser l'éditeur de texte VIM en tant qu'EDI Java, grâce à des plugins dédiés
    SpaceVim : utiliser l'éditeur de texte open source VIM en tant qu'EDI Java grâce à des plugins dédiés,
    intéressant par rapport à Eclipse ou intelliJ ?

    S'adressant aux développeurs Java et en même temps utilisateurs de l'éditeur de texte Vim, l'équipe de SpaceVim vient d'annoncer via un billet blog qu'il est désormais possible d'utiliser VIM en tant qu'environnement de développement intégré (EDI) pour Java.

    Pour rappel, Vim est un éditeur de texte libre et open source pour le terminal sous GNU/Linux. Sa stabilité est reconnue et l'outil ne cesse de progresser en termes d'améliorations. Il est un éditeur de texte extrêmement personnalisable, que ce soit par l'ajout d'extensions, ou par la modification de ses fichiers de configuration qui sont tous écrits dans son propre langage en l'occurrence le Vim script. VIM est également considéré comme un outil très puissant et n'aurait rien à envier aux éditeurs graphiques comme GEdit, Kate ou Mousepad. En effet, il intègre plusieurs fonctions que beaucoup de développeurs apprécient, ce qui fait de lui un très bon EDI (coloration syntaxique de 200 langages, complétion automatique, comparaison de fichiers, recherche avancée, etc.).

    Dans son billet, SpaceVim présente les différents plugins qui sont mis à la portée des développeurs Java afin de faire de VIM leur EDI. Ces derniers sont regroupés en trois catégories en fonction de leur utilisation, il s'agit de :
    • la gestion de projet ;
    • le formatage des codes ;
    • la complétion des codes ;
    • le fonctionnement asynchrone des programmes.

    La gestion de projets

    Pour la gestion de projets Java, SpaceVim présente les trois extensions ci-après.

    1. unite ou unite.vim

      Le plugin unite encore appelé unite.vim permet de rechercher et d'afficher des informations provenant de sources arbitraires comme les fichiers, la mémoire tampon, les fichiers récemment utilisés ou enregistrés. Les développeurs vont pouvoir exécuter plusieurs actions prédéfinies sur une cible et affichées dans la fenêtre du plugin unite.

      La différence entre unite et les plugins similaires comme fuzzyfinder, ctrl-p ou ku réside du fait que le plugin unite fournit une interface d'intégration pour plusieurs sources, et permet aussi aux développeurs de créer de nouvelles interfaces.

      SpaceVim affirme également que dans unite, il est possible d'utiliser l'outil dénommé ag afin de faire des recherches plus rapides. Le code qui permet de configurer ag ou tout autre outil supporté par unite se présente comme suit :

      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      31
      32
      33
      34
      35
      36
      37
      38
      39
      40
      41
      42
      43
      44
      45
      46
      if executable('hw')
          " Use hw (highway)
          " https://github.com/tkengo/highway
          let g:unite_source_grep_command = 'hw'
          let g:unite_source_grep_default_opts = '--no-group --no-color'
          let g:unite_source_grep_recursive_opt = ''
      elseif executable('ag')
          " Use ag (the silver searcher)
          " https://github.com/ggreer/the_silver_searcher
          let g:unite_source_grep_command = 'ag'
          let g:unite_source_grep_default_opts =
                      \ '-i --line-numbers --nocolor ' .
                      \ '--nogroup --hidden --ignore ' .
                      \ '''.hg'' --ignore ''.svn'' --ignore' .
                      \ ' ''.git'' --ignore ''.bzr'''
          let g:unite_source_grep_recursive_opt = ''
      elseif executable('pt')
          " Use pt (the platinum searcher)
          " https://github.com/monochromegane/the_platinum_searcher
          let g:unite_source_grep_command = 'pt'
          let g:unite_source_grep_default_opts = '--nogroup --nocolor'
          let g:unite_source_grep_recursive_opt = ''
      elseif executable('ack-grep')
          " Use ack
          " http://beyondgrep.com/
          let g:unite_source_grep_command = 'ack-grep'
          let g:unite_source_grep_default_opts =
                      \ '-i --no-heading --no-color -k -H'
          let g:unite_source_grep_recursive_opt = ''
      elseif executable('ack')
          let g:unite_source_grep_command = 'ack'
          let g:unite_source_grep_default_opts = '-i --no-heading' .
                      \ ' --no-color -k -H'
          let g:unite_source_grep_recursive_opt = ''
      elseif executable('jvgrep')
          " Use jvgrep
          " https://github.com/mattn/jvgrep
          let g:unite_source_grep_command = 'jvgrep'
          let g:unite_source_grep_default_opts =
                      \ '-i --exclude ''\.(git|svn|hg|bzr)'''
          let g:unite_source_grep_recursive_opt = '-R'
      elseif executable('beagrep')
          " Use beagrep
          " https://github.com/baohaojun/beagrep
          let g:unite_source_grep_command = 'beagrep'
      endif
    2. vimfiler

      SpaceVim soutient que vimfiler est un explorateur de fichiers très puissant qui est intégré dans le langage Vim script. Rappelons que ce dernier est le langage de script pour l'éditeur Vim. Le plugin vimfiler peut être défini comme explorateur de fichiers par défaut, pour cela il faut exécuter le code ci-après :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      let g:vimfiler_as_default_explorer = 1
      call vimfiler#custom#profile('default', 'context', {
                  \ 'explorer' : 1,
                  \ 'winwidth' : 30,
                  \ 'winminwidth' : 30,
                  \ 'toggle' : 1,
                  \ 'columns' : 'type',
                  \ 'auto_expand': 1,
                  \ 'direction' : 'rightbelow',
                  \ 'parent': 0,
                  \ 'explorer_columns' : 'type',
                  \ 'status' : 1,
                  \ 'safe' : 0,
                  \ 'split' : 1,
                  \ 'hidden': 1,
                  \ 'no_quit' : 1,
                  \ 'force_hide' : 0,
                  \ })
    3. tagbar

      Ce plugin permet d'afficher toutes les balises dans une fenêtre de navigation. Par définition, Tagbar est un plugin Vim qui fournit un moyen facile de parcourir les tags du fichier en cours et d'obtenir un aperçu de sa structure. Elle le fait en créant une barre latérale qui affiche l'ensemble des balises se trouvant dans le fichier en cours.

      Nom : Sans titre.png
Affichages : 8557
Taille : 34,8 Ko


    Le formatage des codes

    Pour le formatage des codes dans l'éditeur Vim, le plugin à utiliser est dénommé neoformat. Toutefois, pour formater du code Java, les développeurs devront intégrer les plugins uncrustify ou astyle dans le PATH. Ce plugin permet d'indenter et de formater les codes écrits avec les langages de programmations que sont C, C++, C++/CLI, Objective‑C, C# et Java.

    L'outil de Google qui permet de formater du code Java peut également fonctionner avec neoformat.

    La complétion des codes

    1. javacomplete2

      L'équipe de SpaceVim soutient que javacomplete2, le plugin dédié à la complétion des codes Java sous Vim, a été mis à jour.

      Démo
      Nom : demo.gif
Affichages : 8185
Taille : 327,7 Ko

      Démo générique
      Nom : generics_demo.gif
Affichages : 8703
Taille : 266,3 Ko

    2. deoplete.nvim

      deoplete.nvim est un framework d'auto complétion pour neovim. Il convient de noter que deoplete est l'abréviation de « dark powered neo-completion ». Toutefois, il faut s'assurer de disposer de la dernière version de Neovim, et bien vérifier que Python 3 est activé dans ladite version.
    3. neocomplete.vim

      neocomplete.vim est la nouvelle génération de framework d'autocomplétion après neocomplcache.

    Fonctionnement asynchrone des programmes

    Neomake est un plugin qui permet de faire fonctionner de manière asynchrone des programmes utilisant des fonctionnalités de Neovim ou Vim.

    Source : SpaceVim

    Qu'en pensez-vous ?

    Selon vous, quel est l'intérêt d'utiliser Vim comme EDI Java en lieu et place d'Eclipse ou intelliJ ?
    Vous avez envie de contribuer au sein du Club Developpez.com ? Contactez-nous maintenant !
    Vous êtes passionné, vous souhaitez partager vos connaissances en informatique, vous souhaitez faire partie de la rédaction.
    Il suffit de vous porter volontaire et de nous faire part de vos envies de contributions :
    Rédaction d'articles/cours/tutoriels, Traduction, Contribution dans la FAQ, Rédaction de news, interviews et témoignages, Organisation de défis, de débats et de sondages, Relecture technique, Modération, Correction orthographique, etc.
    Vous avez d'autres propositions de contributions à nous faire ? Vous souhaitez en savoir davantage ? N'hésitez pas à nous approcher.

  2. #2
    Modérateur

    Avatar de Robin56
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juin 2009
    Messages
    5 297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juin 2009
    Messages : 5 297
    Points : 13 670
    Points
    13 670
    Par défaut
    Il y a une chose qui n'apparaît pas sur l'article mais comment exécuter un programme Java depuis vim ? Si ce n'est pas possible, ça limite pas mal l'intérêt de développer sur ce genre d'outils s'il faut se faire à côté de la ligne de commande. Et je ne parle même pas du support du mode debug également.

    Si ce n'est qu'une édition facilitée de fichiers Java, ça peut être "marrant" dans un contexte scolaire pour des projets simples. Mais je ne vois pas du tout ça réaliste dans un contexte professionnel qui nécessiterait plus de fonctionnalités (offertes par les autres IDE).
    Responsable Java de Developpez.com (Twitter et Facebook)
    Besoin d'un article/tutoriel/cours sur Java, consulter la page cours
    N'hésitez pas à consulter la FAQ Java et à poser vos questions sur les forums d'entraide Java
    --------
    Architecte Solution
    LinkedIn : https://www.linkedin.com/in/nicolascaudard/

  3. #3
    Membre actif Avatar de monwarez
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 144
    Points : 293
    Points
    293
    Par défaut
    Citation Envoyé par Robin56 Voir le message
    Il y a une chose qui n'apparaît pas sur l'article mais comment exécuter un programme Java depuis vim ? Si ce n'est pas possible, ça limite pas mal l'intérêt de développer sur ce genre d'outils s'il faut se faire à côté de la ligne de commande..
    Dans ce cas il suffit d'avoir deux fichiers build.sh et run.sh (par exemple) chargés de faire un jar et de lancer le jar respectivement à la racine du projet, puis d'associer une touche en mode normal qui va lancer ces script
    par exemple(fichier .vimrc):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    nnoremap <F9> :! ./build.sh<CR>
    nnoremap <F10> :! ./run.sh<CR>
    Il suffira juste de lancer vim dans le répertoire racine au projet

  4. #4
    Membre extrêmement actif
    Profil pro
    Développeur
    Inscrit en
    Mars 2012
    Messages
    1 969
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 1 969
    Points : 3 375
    Points
    3 375
    Par défaut
    Encore faut-il que le process de build soit rapide.
    Gradle (intégré à Intellij) est parfois très lent, on se demande ce qu'il fait
    Tout le monde n'a pas une machine de guerre avec + 4 gb de Ram.
    Si la réponse vous a aidé, pensez à cliquer sur +1

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    614
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 614
    Points : 713
    Points
    713
    Par défaut
    Citation Envoyé par Malick SECK Voir le message
    Selon vous, quel est l'intérêt d'utiliser Vim comme EDI Java en lieu et place d'Eclipse ?
    Au hasard : passer plus de temps à travailler sur un projet Java que de rendre son environnement de travail opérationnel ?

  6. #6
    Membre extrêmement actif
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    1 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 1 499
    Points : 5 686
    Points
    5 686
    Par défaut
    C'est le IntelliJ du pauvre quoi, c'est bien ça ?
    « L’humour est une forme d'esprit railleuse qui s'attache à souligner le caractère comique, ridicule, absurde ou insolite de certains aspects de la réalité »

  7. #7
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 840
    Points : 22 855
    Points
    22 855
    Billets dans le blog
    51
    Par défaut
    Je préfère Emacs
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  8. #8
    Membre éclairé Avatar de rt15
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2005
    Messages
    262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 262
    Points : 665
    Points
    665
    Par défaut
    Je suis un grand fan des raccourcis clavier de Vim (Que j'utilise beaucoup) et je fais du Java entre autres pourtant je ne suis pas intéressé par SpaceVim.

    J'utilise Eclipse et apprécie beaucoup son débogueur intégré et nombre de ses autres outils (Call Hierarchy...) et fonctionnalités (Compilation automatique...)

    J'ai la flemme d'essayer de configurer Vim dans tous les sens pour ne retrouver qu'une partie de ces fonctionnalités.

    A l'inverse j'utilise le plugin Eclipse Vraper pour avoir Vim à l'intérieur d'Eclipse et pour moi c'est dément.

    Je me suis plus posé la question pour le C où j'utilise Code::Blocks et Visual Studio.
    Je n'ai pas de plugin Vim pour ces deux là et ça me manque.
    Mais même pour le C je n'ai pas essayer d'utiliser Vim en remplacement d'un gros IDE bien lourd (Mais bien pratique aussi).

  9. #9
    Expert confirmé Avatar de yildiz-online
    Homme Profil pro
    Architecte de domaine
    Inscrit en
    Octobre 2011
    Messages
    1 444
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte de domaine

    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 444
    Points : 4 563
    Points
    4 563
    Par défaut
    Citation Envoyé par hotcryx Voir le message
    Gradle (intégré à Intellij) est parfois très lent, on se demande ce qu'il fait .
    Probablement en train de reconstruire les index après une vérification des mises à jour des dépendances snapshot, c'est le prix à payer pour avoir une gestion des dépendances transparente.
    Tu peux toujours désactiver la mise à jour automatique et il ne pédalera plus, par contre faudra faire attention à ne pas utiliser une dépendance dépassée.
    PXL le retro-gaming facile: Essayez-le

    Yildiz-Engine an open-source modular game engine: Website
    Yildiz-Online a 3D MMORTS in alpha: Facebook page / Youtube page

  10. #10
    Membre chevronné

    Homme Profil pro
    Mentaliste
    Inscrit en
    Mars 2008
    Messages
    872
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Mentaliste
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 872
    Points : 1 813
    Points
    1 813
    Par défaut
    Citation Envoyé par Robin56 Voir le message
    Il y a une chose qui n'apparaît pas sur l'article mais comment exécuter un programme Java depuis vim ? Si ce n'est pas possible, ça limite pas mal l'intérêt de développer sur ce genre d'outils s'il faut se faire à côté de la ligne de commande. Et je ne parle même pas du support du mode debug également.

    Si ce n'est qu'une édition facilitée de fichiers Java, ça peut être "marrant" dans un contexte scolaire pour des projets simples. Mais je ne vois pas du tout ça réaliste dans un contexte professionnel qui nécessiterait plus de fonctionnalités (offertes par les autres IDE).
    Tu peux déboguer en ligne de commande très facilement j'ai même fait un tutoriel pour faire ça avec Php + xdebug, ça doit être aussi facile avec Java.
    Bien évidemment, vim c'est comme la cuisine : on a différents couteaux qui ont leurs avantages et inconvénients.
    Le problème majeur de vim est son temps d'apprentissage qui frustre beaucoup de personnes, et ces mêmes personnes qui n'ont pas réussi à passer par dessus cette difficulté en parlent avec mépris. Plein de personnes ne savent pas que vim gère nativement les onglets, le multifenêtrage, l'apprentissage très poussé des macros, la complétion selon 3 recherches différentes, et j'en passe.

    Je développe sous PyCharm pour rejoindre ton discours des gros IDE "pratiques", mais je suis très souvent en train de copier coller mon fichier sous vim, faire les travaux qui sont beaucoup plus rapides et impossibles à faire avec une telle rapidité sous un autre éditeur, puis je le ré-ouvre sous PyCharm. Il faut apprendre à se servir de tous les couteaux si on veut faire de la bonne cuisine, et ne pas cracher sur ceux qu'on n'arrive pas / ne veux / ne peut / pas maîtriser (je ne parle pas pour toi, mais en général) !

    Tiens d'ailleurs au moins deux personnes concernées par ce que je viens de dire :

    Citation Envoyé par martopioche Voir le message
    Au hasard : passer plus de temps à travailler sur un projet Java que de rendre son environnement de travail opérationnel ?
    Citation Envoyé par Mingolito Voir le message
    C'est le IntelliJ du pauvre quoi, c'est bien ça ?
    .I..

  11. #11
    Nouveau Candidat au Club Avatar de Heliogabale
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2008
    Messages : 54
    Points : 1
    Points
    1
    Par défaut
    Pour ceux qui veulent un couteau suisse qui fait on ne sait trop quoi, je pense que vous savez quoi télécharger......

    Pour les autres, il y a javac, ou même d'autres compilateurs....

  12. #12
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 29
    Points : 58
    Points
    58
    Par défaut
    NetBeans + Plugin jVi : Le meilleur des 2 mondes réunis ( IDE + VIM full)

Discussions similaires

  1. Utiliser l'éditeur de texte Scite avec R
    Par Jasmine80 dans le forum R
    Réponses: 4
    Dernier message: 28/05/2015, 12h02
  2. Réponses: 1
    Dernier message: 30/09/2014, 16h29
  3. Réponses: 1
    Dernier message: 06/12/2007, 11h13
  4. Utilisation d'éditeur de texte en ligne
    Par louroulou dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 29/08/2007, 16h54
  5. [Runtime] Lancer (et utiliser) un éditeur de texte
    Par coeurgan dans le forum Langage
    Réponses: 6
    Dernier message: 21/09/2006, 13h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo