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

Linux Discussion :

vim & emacs : Qu'ont t'ils de plus ?


Sujet :

Linux

  1. #21
    Membre émérite
    Citation Envoyé par Franck.H
    J'allais oublier le plus important, exite t-il des livres (pour Vim 7) ou des tutoriels qui permettent d'apprendre à l'utiliser (et en français) ?
    Le livre de Oualline que tu peux trouver un peu partout en pdf est très bien même s'il reprend un peu le manuel pas à pas.
    Le manuel, lui, est très bien aussi. Perso pr moi la commande n°1 qud tu débutes sous Vim c'est :h ou F1.
    Ceci dit avec Vim faut être patient, le mieux c'est le vimtut (pour les bases de chez base) puis ensuite parcourir le vimdoc pas à pas
    Pour revenir à ce que tu disais Luc, moi je trouve que l'un des manques de Vim est un vrai langage de script permettant l'écriture d'extensions correctes. Là on se retrouve avec un langage glu un peu bancal (un enrobage comme le chocolat autour de la noisette dans les bonbons ).
    Perso j'apprécierais d'avoir une plus grande intégration de langages spécialisés dans ce genre de chose comme Io ou Lua par exemple.

  2. #22
    Rédacteur

    Citation Envoyé par Gnux
    Le livre de Oualline que tu peux trouver un peu partout en pdf est très bien même s'il reprend un peu le manuel pas à pas.
    Le manuel, lui, est très bien aussi. Perso pr moi la commande n°1 qud tu débutes sous Vim c'est :h ou F1.
    Ceci dit avec Vim faut être patient, le mieux c'est le vimtut (pour les bases de chez base) puis ensuite parcourir le [url=http://vimdoc.sourceforge.net/htmldoc/usr_toc.htmluser-guide[/url] pas à pas
    Impec Gnux merci ... Y'a rien en français ?
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  3. #23
    Expert éminent sénior
    emacs est plus puissant. C'est un OS, chose que vim ne sera jamais. Comme on dit, c'est le seul éditeur de textes qui permette de faire le café. Je pense que c'est plus simple emacs pour commencer que les dérivés de vi, à cause de la modalité.

    Perso je préfère vim. Car
    - Maintenant, c'est trop tard pour changer, j'ai trop de plugins qui me permettent de faire des choses que je ne trouverai pas avant un bon moment sur les autres outils, et trop de macros que je connais ;
    - Je trouve le langage de script plus à mon goût. C'est un langage procédural assez banal. Pas un dérivé du LISP.
    - Il est modal, et que je sache, le mode viper d'emacs est assez limité -- c'est un mode qui émule vi (pas vim)
    - Comme je l'avais signalé, vim respecte plus nos articulations : pas de combos à 3-4 touches -- oui, c'est un cliché.

    Honnêtement, vi(m) ou (x)emacs, c'est une question de goût. De sûr, ce sont les deux plus puissants.

    @ Gnux, comme je le disais, on n'est pas obligé de coder nos extensions en VimL. Il y a aussi le perl, le python, et le ruby. De plus, quantité de nouvelles fonctionnalités sont apparues avec la nouvelle API de vim7 : listes, dictionnaires, ... Pour moi qui code des plugins, c'est le jour et la nuit. Il manque encore des choses, je le reconnais volontier, mais nous sommes dans la bonne direction.

    Pour la doc, il existe une traduction. Le vimtutor doit être traduit du coup, je pense. Le bouquin, j'ai peur qu'il date de vim 5.7.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  4. #24
    Membre émérite
    Citation Envoyé par Luc Hermitte
    @ Gnux, comme je le disais, on n'est pas obligé de coder nos extensions en VimL. Il y a aussi le perl, le python, et le ruby. De plus, quantité de nouvelles fonctionnalités sont apparues avec la nouvelle API de vim7 : listes, dictionnaires, ... Pour moi qui code des plugins, c'est le jour et la nuit. Il manque encore des choses, je le reconnais volontier, mais nous sommes dans la bonne direction.
    J'ai peut être mal regardé mais je n'ai pas vu de docs sur la possibilité de "scripter" vim avec ruby par exemple.
    Pourrais tu me donner un lien vers une doc expliquant comment interfacer ses scripts ruby/python/perl avec Vim stp?

  5. #25
    Rédacteur/Modérateur

    Citation Envoyé par Gnux
    J'ai peut être mal regardé mais je n'ai pas vu de docs sur la possibilité de "scripter" vim avec ruby par exemple.
    Pourrais tu me donner un lien vers une doc expliquant comment interfacer ses scripts ruby/python/perl avec Vim stp?
    ruby :
    http://vim.sourceforge.net/scripts/s...?script_id=349

    python :
    http://kib2.webfactional.com/vim/

    Citation Envoyé par vimfaq
    Scripting language
    Vim has a powerful scripting language so new commands can be created.
    You can also use Perl, Python, TCL and Ruby to achieve the same thing!

    au passage, ce site y est recensé... http://hermitte.free.fr/vim/idx-splitted.php

    vous connaissez ? (pas taper )
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  6. #26
    Expert éminent sénior
    :h ruby ?

    Le premier lien est un compiler-plugin.
    En gros, ce sont des définitions pour &makeprg et &efm histoire que vim puisse "compiler" du ruby et sauter aux lignes d'erreurs.

    Le dernier lien. Franchement, tu aurais pû mieux choisir! C'est un site en anglais qui n'a pas été maintenu depuis des années.

    Un jour je trouverai le temps et la motivation de réduire ma todo-list (une grande feuille à petits carreaux, remplie sur deux colonnes)
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  7. #27
    Rédacteur/Modérateur

    Citation Envoyé par Luc Hermitte
    :h ruby ?

    Le premier lien est un compiler-plugin.
    En gros, ce sont des définitions pour &makeprg et &efm histoire que vim puisse "compiler" du ruby et sauter aux lignes d'erreurs.

    gourré de liens.. j'ai fait un mauvais copier/coller désolé

    Citation Envoyé par Luc Hermitte
    Le dernier lien. Franchement, tu aurais pû mieux choisir! C'est un site en anglais qui n'a pas été maintenu depuis des années.

    Un jour je trouverai le temps et la motivation de réduire ma todo-list (une grande feuille à petits carreaux, remplie sur deux colonnes)

    mais dans cette discussion, ça faisait classe
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  8. #28
    Membre expérimenté
    Bonjour,
    Personnellement j'utilisais Vim pour mon développement Java depuis 4 ans. L'avantage est que tout se pilote au clavier, et si on se donne un peu de mal au début pour apprendre les différentes commandes et comment les utiliser, l'éditeur devient surpuissant. L'approche des éditeurs standard est :
    On a une znoe de texte on tape le texte au clavier et ça écrit ce que l'on tape. Si on veut faire une action un peu compliquée, on prend la souris et on va dans les menu pour avoir une petite interface graphique pour paramétrer l'action (par exemple rechercher/remplacer).
    Vim (et surement emacs) a un approche totalement différente. Tout est commande. L'insertion de texte est un cas particulier de l'éditeur. Dedans, tout est fait pour que la moindre modification, même complexe et sur plusieurs lignes à la fois, se fasse en une ligne de commande et les possibilités sont infinies
    Aller un peu de pub : http://ypiel.developpez.com/tutoriels/editeurs/vi/

    C'est aussi un éditeur très personnalisable grace à son langage de script intégré et la notions de plugin etc...:
    http://www.vim.org

    En fait, je trouves que tu peux comparer les éditeurs classiques à windows, ou toutes les actions sont limités et doivent être prévues dans les interfaces graphiques. Vim serait alors comparé à un shell ou tu as toute une panoplie de commande que tu peux lier les unes autres pour faire exactement ce que tu souhaites, tu peux créer de nouvelles commandes, etc...

    Maintenant, je suis passé sous netbeans pour java, mais seulement car il y a un plugin qui permet d'avoir un éditeur à la vi (mais très limité).

  9. #29
    Rédacteur

    Citation Envoyé par narmataru
    L'approche des éditeurs standard est :
    On a une znoe de texte on tape le texte au clavier et ça écrit ce que l'on tape. Si on veut faire une action un peu compliquée, on prend la souris et on va dans les menu pour avoir une petite interface graphique pour paramétrer l'action (par exemple rechercher/remplacer).
    Il faut avouer que pour un éditeur standard, il existe quand même des raccourcis (notamment sur les choses standards). Par exemple pour code::blocks :

    Gestions des fichiers (ctrl +n , ctrl + o, ctrl + s)
    recherche (ctrl + f), remplacement (ctrl +h)
    Compilation (ctrl f9) exécution (ctrl f10) débug (ctrl f8)

    Et c'est souvent suffisant pour pas mal de chose
    Je ne répondrai à aucune question technique en privé

  10. #30
    Rédacteur

    Sans compter ctrl + F11 pour tout recompiler et TAB pour passer à l'onglet suivant. C'est vrai que Code::Blocks permet également de pas mal se passer de la souris
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  11. #31
    Membre expérimenté
    Citation Envoyé par millie
    Il faut avouer que pour un éditeur standard, il existe quand même des raccourcis (notamment sur les choses standards). Par exemple pour code::blocks :

    Gestions des fichiers (ctrl +n , ctrl + o, ctrl + s)
    recherche (ctrl + f), remplacement (ctrl +h)
    Compilation (ctrl f9) exécution (ctrl f10) débug (ctrl f8)

    Et c'est souvent suffisant pour pas mal de chose
    Si tu dis que c'est suffisant, pour moi, je dirais que c'est le minimum vital et encore...

    Voici un exemple, vraiment sale, de ce qu'on peut faire très facilement sous vim :

    [QUOTE]:%g/^\W*private [^ ]\+ [^ ]\+;$/ normal ^w"ayww"zyw$opublic ^["apa ^["zpa(){ return this.^["zpa;}^[[/QUOTE]

    Ca permet de créer tous les accesseur automatiquement, pour les variable privées d'un classe Java :

    Citation Envoyé par avant
    public class Vim{

    private int somme;
    public String datas;
    private String nom;
    private String adresse;
    public Integer ch;
    private Society society;

    public static void main(String[] args){
    }

    }
    Citation Envoyé par après
    public class Vim{

    private int somme;
    public int somme(){ return this.somme;}
    public String datas;
    private String nom;
    public String nom(){ return this.nom;}
    private String adresse;
    public String adresse(){ return this.adresse;}
    public Integer ch;
    private Society society;
    public Society society(){ return this.society;}

    public static void main(String[] args){
    }

    }
    Bon l'exemple est vraiment très mal fait, mais c'est juste pour montrer qu'en une ligne de commande on peut faire beaucoup de choses sur l'ensemble du fichier. Les éditeurs standards demandent de faire beaucoup de choses manuellement, Vim permet de vraiment tout automatiser, en fait rien ne lui ait impossible. En allant un peu sur le canal IRC de vim, on vois desfois des demandes vraiment tordues pour traiter un gros fichier en une seule ligne ou pour automatiser un taches vraiment complexes, et il y a toujours quelqu'un qui trouve une solution, souvent plus élégante que celle ci-dessus .

  12. #32
    Rédacteur

    Sans compter le temps de maîtriser un tel programme, je veux même pas imaginer le temps d'assimiler ce genre de syntaxes/commandes Je ne trouve pas ca très intuitif
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  13. #33
    Membre expérimenté
    Citation Envoyé par Franck.H
    J'allais oublier le plus important, exite t-il des livres (pour Vim 7) ou des tutoriels qui permettent d'apprendre à l'utiliser (et en français) ?
    Vim est très bien documenté
    http://ypiel.developpez.com/tutoriel...diteurs/vi/#L3

    Pour Vim, il faut vraiment prendre un peu de temps pour lire au moins les première pages. Après, il y a des pages spécifiques qui rentre en détaille dans les fonctionnalités et utilisations.
    http://www.vim.org/docs.php

    La page d'aide principale :
    http://vimdoc.sourceforge.net/htmldoc/usr_toc.html



    Citation Envoyé par Franck.H
    Sans compter le temps de maîtriser un tel programme, je veux même pas imaginer le temps d'assimiler ce genre de syntaxes/commandes Je ne trouve pas ca très intuitif
    Oui c'est sure ça ne s'apprend pas du jour au lendemain. Il faut bien comprendre, que l'exemple que j'ai mis au dessus, se sont les commandes d'édition standard que j'ai tapé sur une ligne. En fait les commandes, tu les apprend petit à petit et après tu peux les combiner pour faire ce que tu veux. Donc dans un premier temps tu utilise Vim bêtement comme un éditeur classique, mais après une fois que tu connais quelques commandes tu peux faire plus de chose et tu apprend continuellement. Je voulais mettre ça en opposition aux éditeur classique, ou, une fois que tu as fait le tour des menus tu as fini.
    Je vais essayé de détailler un peu :

    :%g/^\W*private [^ ]\+ [^ ]\+;$/ je vais travailler sur toutes les lignes du fichier qui correspondent à l'expression rationnnelle donnée
    normal Je vais pouvoir saisir les caractères de commande comme si j'était en mode normal
    ^ va en début de ligne
    w avance d'un mot
    "ayw copie le prochain mot dans le buffer a
    w avance d'un mot
    "zyw copie le prochain mot dans le buffer z
    $ va en fin de ligne (je l'ai mis mais je n'en ai pas besoin)
    o crée un ligne vide en dessous et rentre en mode édition
    public saisie le texte 'public '
    [B]^[[/B] touche ECHAP obtenu par CTRL+V ECHAP
    "ap copie le buffer a
    [B]a ^[[/B] rentre en mode edition après le curseur, insère un espace puis revient au mode normalvia ECHAP
    [B]"zpa(){ return this.^["zpa;}^[[/B] copie le buffer z ajoute les parenthèse le texte puis le buffer a ferme la fonction puis quitte le mode édition.
    Comme je l'ai dis mon exemple est vraiment très sale car je n'utilises pas le langage de script de vim, mais les commandes du mode normal. Ce sont les commandes d'édition courante 'w' pour aller au mot suivant, 'o' pour créer une nouvelle ligne, '"ayw" pour copier le prochain mot dans le buffer a etc... C'était juste pour montrer l'approche de Vim. C'est sure qu'au début il faut fournir un certain effort pour apprendre les commandes de base, mais après c'est du bonheur

  14. #34
    Rédacteur

    Citation Envoyé par narmataru
    Ce dernier n'existe t-il pas en français ? Non pas que je ne comprend pas l'anglais mais c'est tellement plus confortable


    PS: dans ton tutoriel, le lien en fin de page: Tout sur Vim, téléchargement de script n'est pas valide
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  15. #35
    Membre expérimenté
    Sur le lien que j'ai mis au dessus : http://www.vim.org/docs.php
    il y a ce lien : "For translations of the help files see the translation page"

  16. #36
    Rédacteur

    Citation Envoyé par narmataru
    Sur le lien que j'ai mis au dessus : http://www.vim.org/docs.php
    il y a ce lien : "For translations of the help files see the translation page"
    impec, je me suis pas encore pris trop le temps de lire le contenu du site... m'est d'avis qu'un site communautaire en français serait assez intéressant
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  17. #37
    Rédacteur

    Est-ce que tu utilises Vim directement ton Shell ou bien tu utilises une GUI genre GTK, Tcl ou autre ? En fait c'est pour savoir si cela apporte quelque chose et si oui que cela apporte t-il de plus a part peut-être l'ergonomie
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  18. #38
    Membre expérimenté
    Aucune différence. Dans un shell, il faudra peut être bien le configurer pour avoir une police agéable et les couleurs. J'utilises gvim (vim+gtk) sans les menus ni la barre d'outil.

  19. #39
    Rédacteur

    Citation Envoyé par narmataru
    Aucune différence. Dans un shell, il faudra peut être bien le configurer pour avoir une police agéable et les couleurs. J'utilises gvim (vim+gtk) sans les menus ni la barre d'outil.
    Ok merci
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  20. #40
    Expert éminent sénior
    Citation Envoyé par narmataru
    Maintenant, je suis passé sous netbeans pour java, mais seulement car il y a un plugin qui permet d'avoir un éditeur à la vi (mais très limité).
    Euh... Avec vim, l'interopérabilité avec des trucs externes est réalisée au travers d'une interface ... Netbeans.
    M'est avis qu'un truc a dû être prévu.

    Sinon, cette semaine, j'ai vu passer une annonce relative à la mise à jour d'un plugin eclipse pour intégrer vim -- qui utilise justement cette API prévue initialement pour netbeans.

    PS: le one-liner à coup de %g est compliqué. Un simple %s fait parfaitement l'affaire. :substitute est d'ailleurs la commande qui fait toute la différence, AMHA. Une fois que tu as compris comment fonctionne les regex, elle est assez simple. Savoir utiliser les regex résulte en un gain de productivité énorme, car c'est directement applicable à grep, sed, perl, ...

    PPS: Accessoirement, il y a 2-3 ftplugins qui s'occupent de gérer les accesseurs/mutateurs à la Java. J'en ai un pour le C++, mais il fonctionne dans l'autre sens : on saisit dans un pseudo dialogue ce que l'on veut, et c'est automatiquement généré, distribué dans les fichiers qui vont bien (le "qui-vont-bien" étant paramétrable), et c'est const-correct et optimisé (classes par référence-constante, entiers par copie, ...)
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

###raw>template_hook.ano_emploi###