GNU Emacs 24.4

Posté par  . Édité par ptitjano, BAud, ounim, Nÿco, Jiehong, ZeroHeure, RyDroid, palm123, Anonyme, Dareg, M5oul et saltimbanque. Modéré par Benoît Sibaud. Licence CC By‑SA.
Étiquettes :
48
13
nov.
2014
Bureautique

D'après Wikipédia : « Emacs est une famille d'éditeurs de texte disposant d'un ensemble extensible de fonctionnalités et qui est très populaire parmi les programmeurs et plus généralement les personnes ayant des compétences techniques sur les ordinateurs. ».

La version 24.4 de cet éditeur est sortie le 20 octobre 2014.

Emacs

Sommaire

Eww (pour Emacs Web Wowser) est un navigateur web intégré à Emacs 24.4. Un simple appel à M-x eww le lance. Il gère le rendu des images, la plupart des balises HTML et quelques règles CSS. Il est ainsi adapté à la lecture de texte.

eww sur trisquel.info

eww a été fait par Lars Magne Ingebrigtsen, le créateur de Gnus, qui explique ses motivations sur son blog.

Une nouvelle implémentation des rectangles

Emacs avait déjà une fonctionnalité native de sélection en bloc (via le raccourci C-x r d), mais qui n'affichait pas le rectangle sélectionné. Il existait également une autre implémentation dans Cua. Enfin, le mode evil offrait, bien entendu, le mode visuel « bloc » propre à VIM.

Le nouveau rectangle-mark-mode introduit un affichage clair de la sélection rectangulaire pour tous les modes. Son raccourci par défaut : C-x SPC.

Capture d'écran d'une sélection rectangulaire

Principales valeurs par défaut modifiées

electric-indent-mode

Un nouveau mode mineur est apparu avec Emacs 24.1 : electric-indent-mode. Ce mode permet d'indenter automatiquement lors de l'appui de certaines touches (par exemple Entrée). Il est maintenant activé par défaut.

uniquify (nom des buffers unique)

Lorsque l'on ouvre plusieurs fichiers du même nom (par exemple un Makefile), Emacs renomme les buffers à la volée en Makefile, Makefile<2>, Makefile<3>, etc.
La bibliothèque uniquify permet de changer ce comportement et de personnaliser le renommage. Elle est maintenant activée par défaut.

Le nouveau comportement par défaut est de renommer le buffer en incluant le nom du répertoire. On obtient alors Makefile<dir1>, Makefile<dir2>, Makefile<dir3>, etc.

Ce comportement est personnalisable en jouant sur la variable uniquify-buffer-name-style. Par exemple :

(setq 
  uniquify-buffer-name-style 'post-forward
  uniquify-separator ":")

donnera Makefile:dir1, Makefile:dir2

Il est possible d'avoir le même comportement avec d'anciennes versions :

(require 'uniquify)
(setq uniquify-buffer-name-style 'post-forward-angle-brackets)

Nouvelles fonctionnalités

Fenêtre plein écran ou maximisé

Deux nouvelles fonctions voient le jour pour respectivement mettre une fenêtre Emacs en plein écran : toggle-frame-fullscreen (F11) ou la maximiser : toggle-frame-maximized (M-F10).
Il est dès lors possible d'avoir le même comportement quel que soit le système d'exploitation. Utilisées conjointement avec menu-bar-mode et tool-bar-mode, vous pouvez enfin avoir tout votre écran disponible pour éditer du texte.

Nouveau mode pour les buffers Messages (messages-buffer-mode)

Les buffers Messages sont maintenant créés dans le mode messages-buffer-mode.
Dans la pratique, ces buffers sont en lecture seule et des raccourcis claviers sont disponibles. Par exemple, la touche q permet de quitter le buffer.

Possibilité de se connecter à un appareil Android via Tramp

TRAMP est un outil pour accéder et éditer des fichiers distants de manière transparente. L'un des cas d'utilisations classiques est l'édition de fichiers distants via ssh.
Une nouvelle méthode de connexion apparaît : adb (Android Debug Bridge). Il est dorénavant possible d'accéder à des appareils Android.

Suppression des lignes en double

La commande delete-duplicate-line supprime les lignes en double dans le texte sélectionné.

Superword-mode et subword-mode

La navigation dans Emacs peut se faire par « entité ». L'entité la plus simple est le caractère. Avec les flèches, on pourra donc avancer d'un caractère ou reculer d'un caractère. Mais on peut aussi naviguer par mots, par phrases, par paragraphes, par blocs de code, par pages, …

Pour réaliser cela, Emacs classe les caractères par catégories. Par exemple, une espace est dans la catégorie espace qui sépare des mots. Mais le tiret bas _ fait aussi partie d'une catégorie qui sépare les mots. Pour passer le mot composé fonction_test, il faut donc avancer de deux mots. Si tous les noms de fonction sont séparés par des tirets bas, il peut être plus simple de traiter le nom de la fonction comme un seul mot. C'est ce que superword-mode se charge de faire.

Au contraire, pour les noms en CamelCase, il peut être utile de séparer les mots en fonction des majuscules. Cette fois, c'est subword-mode qui s'en charge.

Gain ou perte de focus d'un cadre

Deux nouveaux hooks sont introduits : focus-in-hook et focus-out-hook. Ils donnent la possibilité d'automatiser des opérations lors du gain ou de la perte de focus d'un cadre. On pourra par exemple, ajouter une opération de sauvegarde automatique de buffers à la perte du focus (exemple tiré de emacsredux.com) :

(add-hook 'focus-out-hook 'save-buffer) ;; sauvegarder le buffer courant
(add-hook 'focus-out-hook (lambda () (save-some-buffers t))) ;; sauvegarder tous les buffers

Visionneuse d'image (image-mode)

Dès que l'on charge une image dans Emacs, le mode image-mode se charge automatiquement pour la visualiser. L'affichage de son code se fait depuis C-c C-c. Emacs 24.4 introduit de nouvelles possibilités :

  • Les touches p et n affichent respectivement l'image précédente et suivante dans le même répertoire ;
  • f et b affichent respectivement l'image (frame) précédente et suivante dans une animation (par exemple un gif). F affiche une frame spécifique.

Autres nouveautés

Il y a bien évidemment d'autres nouveautés intéressantes :

  • Les menus apparaissent maintenant en mode console (terminal) et peuvent maintenant s'ouvrir avec menu-bar-open ou F10 ;
  • Les moniteurs multiples sont gérés, à l'aide des commandes display-monitor-attributes-list et frame-monitor-attributes ;
  • Beaucoup de packages qui installaient des choses dans ~/.foo le font maintenant dans ~/.emacs.d/foo ;
  • js-mode (JavaScript) a été amélioré du côté de l'indentation, des arrays notamment ;
  • Emacs gère maintenant les notification du FS (système de fichiers) relatives à l'état des fichiers telles que création, modification et effacement.

Migration de Bazaar à git

La 24.4 marque aussi la fin de la gestion du code d'Emacs sous Bazaar. Après plusieurs discussions sur la liste de diffusion des développeurs, il a bien fallu se rendre à l'évidence que Bazaar était un projet mort et qu'il posait plus du soucis qu'il n'en résolvait.

Elpa, le dépôt d'extensions avait déjà migré à git en 2013 suite à un bogue dans Bazaar rapporté en octobre 2011, mais jamais résolu.

Il a donc été décidé de migrer à git après la 24.4. C'est Eric S. Raymond qui s'est chargé des scripts de migration — ce qui n'a pas été une sinécure, car la conversion dure environ 10 heures et contient une liste de corrections manuelles pour garder au maximum l'historique du code.

Celui-ci contient tout de même 135 000 changements (pour comparaison, l'historique du noyau linux contient 480 000 changements), le premier datant du 18 avril 1985.

Changement de numérotation

GNU Emacs 24.4 est la dernière version de la série 24. La prochaine sera la 25.1. Par ailleurs, à l'avenir, les versions du type « .N » correspondront à des corrections de bogues et les versions majeures à la sortie de nouvelles fonctionnalités. Voir l'annonce sur la liste de diffusion.

Pour entrevoir le futur, la 25.1 a dans les cartons beaucoup de nouvelles fonctionnalités intéressantes. On pourra citer par exemple la concurrence dans la machine virtuelle Lisp, le chargement dynamique de bibliothèques, ou encore l'ajout d'espaces de noms en emacs-lisp.

Aller plus loin

  • # Commentaire supprimé

    Posté par  . Évalué à 10.

    Ce commentaire a été supprimé par l’équipe de modération.

    • [^] # Commentaire supprimé

      Posté par  . Évalué à 10.

      Ce commentaire a été supprimé par l’équipe de modération.

      • [^] # Re: Félicitations

        Posté par  . Évalué à 5.

        Faut pas regarder la concurrence en chien de faïence et sortir le maximum d'argument pour "détruire" l'autre. Sublime text a apporté un paquet de nouvelles idées et à rendue facilement utilisable un paquet de fonctionnalités déjà existantes. C'est très intéressant et ça devrait donner à réfléchir aux vieux du marché qui ont une courbe d'apprentissage incroyablement plus complexe.

        Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

        • [^] # Commentaire supprimé

          Posté par  . Évalué à 7.

          Ce commentaire a été supprimé par l’équipe de modération.

        • [^] # Commentaire supprimé

          Posté par  . Évalué à 3.

          Ce commentaire a été supprimé par l’équipe de modération.

          • [^] # Re: Félicitations

            Posté par  . Évalué à 2.

            À quoi correspond le "pixel moving" de sublime text ? J'ai fait une recherche rapide mais je n'ai rien trouvé.

          • [^] # Re: Félicitations

            Posté par  . Évalué à 2.

            On parle un (tout petit) peu de ST sur les canaux de dev Emacs. Tout peut être implémenté ; désolé si on n'est pas plus impressionné que ça. Genre le truc "pixel moving" qui est mis systématiquement en avant, les curseurs multiples, bof.

            Je ne sais pas de quoi tu parle, mais c'est AMHA évident que des brutes d'emacs ne voient pas l'intérêt des nouveautés d'à coté. Ils peuvent avoir un comportement proche via des tweaks complexes pour le commun des mortels et rudimentaires pour eux et ils n'ont pas d'intérêt particulier à rendre simple ce qu'ils trouvent déjà simples par exemple.

            les curseurs multiples, bof

            Je suis un gros utilisateur de vim et j'adore les expressions régulières (je ne suis pas forcément très bon, mais ça me dérange pas de chercher un peu pour trouver en expérimentant) et ben je te garantis que quand tu as goûté à la sélection multiple ça te paraît bien pratique même fasse aux expressions régulières. Les expressions régulière tu t'en sert quand tu en as vraiment besoin, les curseurs multiples tu t'en sert pour tout et n'importe quoi quasiment tout le temps et bien plus rapidement.

            Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

            • [^] # Re: Félicitations

              Posté par  . Évalué à 3.

              Juste pour info, Emacs a bien sûr les curseurs multiples (multiple-cursor).

              Est-ce qu'avec vim/sublime on peut éditer des regexps avec un retour visuel ? http://wikemacs.org/wiki/Regexp#Search_and_replace_with_visual_feedback

              • [^] # Re: Félicitations

                Posté par  . Évalué à 2.

                Dans vim, non. Dans sublime text je sais pas.

                Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

                • [^] # Re: Félicitations

                  Posté par  . Évalué à 2.

                  Il existe un plugin pour rendre vim capable de gérer les curseurs multiples :
                  https://github.com/terryma/vim-multiple-cursors

                  • [^] # Re: Félicitations

                    Posté par  . Évalué à 3.

                    Oui mais là il est question d'avoir un retour live de ta regex quand tu fais :%s/machin/truc/g par exemple.

                    Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

            • [^] # Re: Félicitations

              Posté par  . Évalué à 1.

              les curseurs multiples tu t'en sert pour tout et n'importe quoi quasiment tout le temps et bien plus rapidement.

              Oui, dommage que la seule implem que j'en aie vu (notepad++, codeblocks, scite, et 2-3 autres basés sur scintilla) soit bugguée (un certain nombre d'actions n'ont pas le comportement attendu, par exemple, quand on veut coller un truc à des endroits différents, ou quand on veut insérer une ligne: ça n'affecte qu'un seul curseur, quand ça ne fait pas sauter les autres curseurs…) et inutilisable sans prendre en main la souris.

              Accessoirement, pour du code, je trouve ça pas plus mal de ne pas l'avoir.
              Avant, je m'en servais. Depuis, j'évite de dupliquer du code, même si c'est vrai que dans le cas des switch case ça évite des frappes… mais avec vi, '10o[\t]case :[ENTER]' génère mes 10 lignes de copié collé. Plus qu'à revenir à chaque fois mettre la bonne valeur dans le case… l'avantage contrairement aux pointeurs multiples que j'aie utilisés, c'est… qu'on peut générer des blocs de code de plusieurs lignes de cette façon. La dernière fois ça ne marchait pas avec n++.

              Par contre, le seul truc qui me gêne vraiment avec les nouveaux éditeurs de texte, et qui m'a séduit avec vim (avec lequel je suis encore un grand débutant) c'est le fait de ne pas avoir besoin de la souris ou de raccourcis clavier multipliant les appuis simultanés (bien que vim aie un certain nombre d'actions que l'on déclenche ainsi…mais je ne m'en sers jamais, principalement parce que je ne les connais pas et/ou qu'il s'agisse de gestion de fenêtres, chose que je délègue à mon WM).

              À l'origine, j'ai toujours utilisé des IDE, puis quand je suis passé à linux j'ai commencé à apprendre à utiliser vim. Je n'utilise plus d'IDE, et je ne suis pas persuadé d'y avoir perdu en productivité…

              • [^] # Commentaire supprimé

                Posté par  . Évalué à 5. Dernière modification le 13 novembre 2014 à 18:24.

                Ce commentaire a été supprimé par l’équipe de modération.

                • [^] # Re: Félicitations

                  Posté par  . Évalué à 2.

                  Des fois je regarde des vidéos/tutos et le gars est sous Eclipse et certains trucs font rêver, l'autre jour le gars commence à taper un appel à une fonction, Eclipse propose une complétion, le gars accepte, et là Eclipse positionne le curseur entre les parenthèses et liste les arguments attendus par la fonction et leur type. Eh, ça bute, ça, je sais pas faire ça dans Emacs.

                  Ça dépend quel langage tu utilises, mais pour le C et le C++ Emacs fait ça très bien en combinant clang et yasnippet :)

                • [^] # Re: Félicitations

                  Posté par  (site web personnel) . Évalué à 4. Dernière modification le 13 novembre 2014 à 18:58.

                  Eclipse propose une complétion, le gars accepte, et là Eclipse positionne le curseur entre les parenthèses et liste les arguments attendus par la fonction et leur type.

                  En même temps, ça dépend complètement du langage ce genre de choses. Pour OCaml, par exemple, tu as quelque chose du même genre (du moins par rapport à ce que ta description me fait imaginer) avec merlin, qui marche pour vim et emacs, et qui prend aussi en compte tes propres modules, et te dit aussi entre autres où sont tes erreurs de type exactement. L'avantage c'est que c'est un programme externe écrit en OCaml lui-même prévu pour être utilisé avec différents éditeurs.

                  Edit : marrant deux réponses simultanées qui commencent avec "ça dépend du langage".

                • [^] # Re: Félicitations

                  Posté par  (site web personnel) . Évalué à 1.

                  Je suis exactement dans ce cas. Je suis utilisateur d'emacs pour tout, sauf ce qui est du Java : je ne sais pas faire de « refactoring », avoir de la vraie complétion intelligente pour Java, ce genre d'utilisation basique d'un IDE (et je ne parle pas des fonctionnalités avancées). Du coup, malgré le fait de perdre en productivité sur ma façon « d'éditer du texte », j'en gagne sur ce que m'offre un vrai IDE Java lorsque je fais du Java.

                  Pour ceux qui sont motivés, j'ai pas encore essayé, mais il existe une sorte de « pont » eclipse-emacs qui est peut être satisfaisant :
                  http://www.skybert.net/emacs/java/

                  À voir. Si certains s'en servent déjà ici, je suis preneur de tout retour d'expérience !

                  • [^] # Re: Félicitations

                    Posté par  . Évalué à 4.

                    Pour ceux qui sont motivés, j'ai pas encore essayé, mais il existe une sorte de « pont » eclipse-emacs qui est peut être satisfaisant :
                    http://www.skybert.net/emacs/java/

                    Ce genre de choses ne m'a jamais donné envie. J'ai toujours l'impression que c'est très fragile comme configuration. Je préfère essayer d'apprendre l'éditeur par défaut (et eclipse a un éditeur très évolué déjà).

                    Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

                • [^] # Re: Félicitations

                  Posté par  . Évalué à 4.

                  C'est vrai que pouvoir sortir le prototype quand on appelle une fonction est quelque chose d'utile quand on utilise un IDE. Les IDEs ont leur lot d'avantages, je ne dis pas le contraire, vim aussi, grâce au fait qu'il soit possible de l'utiliser dans un terminal et donc d'en entrer/sortir rapidement, éventuellement après avoir greppé sur un terme, télécharger un fichier, remis en style (via astyle p. ex. ), commité, etc.
                  Bon, je sais, on peut faire pas mal de ces actions directement à partir de vim, mais je n'ai pas encore suffisamment l'habitude. N'empêche, à mon humble niveau, avec mon usage, je trouve bash+vim+cmake+git bien plus confortable à utiliser qu'un IDE avec un plugin pour git.
                  Question de goûts, je suppose.

                • [^] # Re: Félicitations

                  Posté par  . Évalué à 5.

                  Le dernier truc qui m'a tué, c'est le refactoring de prototype de fonction. Ça permet d'ajouter ou de supprimer des arguments. Tu tape un identifiant quelque part dans ta méthode, il t'indique une erreur, tu demande son aide et tu lui dis de modifier le profile de la fonction, tu peut lui demander à ce que ce nouveau paramètre ai une valeur par défaut. Pour rappel en Java, il n'y a pas de valeur par défaut. Pour faire ça le monsieur va aller chercher tous les usages de ta méthode et mettre la valeur par défaut qui va bien (comme c'est intelligent tu peut ajouter cet argument au milieu des autres sans problèmes).

                  Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

              • [^] # Re: Félicitations

                Posté par  (site web personnel) . Évalué à 8.

                Personnellement, c'est le contraire. J'ai fait du vim pendant 10 ans, en le personnalisant un minimum, surtout pour faire du Python.

                Et depuis que je me suis mis à Pycharm, mon gain en productivité a été tout simplement énorme, sans compter la qualité du code qui s'est largement améliorée. Certes, j'ai perdu des avantages de Vim, mais au final je n'ai quasiment plus besoin de ces avantages (et au pire, je pourrais toujours utiliser le plugin vim pour Pycharm). Certes, je ne peux pas faire des trucs super compliqués… mais
                * j'ai l'import automatique de mes fonctions (pour éviter les affreux import *),
                * quand je modifie un nom de classe, il me propose de changer les noms des sous-classes,
                * il me prévient quand le type des arguments sont incorrects ou quand j'utilise une fonction qui n'est pas valide dans la version de Python utilisée pour le projet,
                * quand j'extrait un bout de code pour en faire une méthode, il est capable de voir où ce bout de code est utilisé pour le remplacer aussi un appel à cette méthode,
                * il me souligne le code qui ne correspond pas à la norme de code choisie (PEP008),
                * l'auto-complétion dans un template HTML propose les variables fournies lors de son utilisation,
                * les lignes non-atteintes par les tests unitaires sont indiquées dans l'éditeur de texte, …
                Et toutes ces fonctions que je n'ai jamais réussi à avoir de façon efficace dans Vim, je les ai par défaut dans PyCharm.

                • [^] # Commentaire supprimé

                  Posté par  . Évalué à 3. Dernière modification le 13 novembre 2014 à 18:58.

                  Ce commentaire a été supprimé par l’équipe de modération.

                  • [^] # Re: Félicitations

                    Posté par  . Évalué à 4.

                    Franchement, chacun de ces trucs est impressionnant. Et aucun n'est facile - if only possible - à faire dans Emacs, je suis le 1er à le reconnaître.

                    Même avec Rope (et donc ropemacs) ?

                    • [^] # Re: Félicitations

                      Posté par  (site web personnel) . Évalué à 4.

                      J'ai essayé rope avec vim, et je n'ai pas réussi à avoir tout ça. Autre chose, quand on utilise ce genre de plugins, il faut apprendre par cœur les raccourcis pour les utiliser. Du coup, tu te retrouves à devoir apprendre par cœur une dizaine de raccourcis à l'installation du plugin, sinon ils ne sont pas accessibles. Ou alors, tu dois aller chercher dans ton fichier de conf le raccourci dont tu te sers une fois par an. Avec PyCharm, tu peux apprendre les raccourcis clavier progressivement avec leur utilisation (et avec la fenêtre affichant les astuces au démarrage, mais je le relance rarement). Si tu ne t'en souviens pas, il suffit de chercher dans les menus. Du coup, j'utilise ces fonctions que je mettais de côté avec vim par flemme d'aller chercher dans le fichier de conf.

                      • [^] # Re: Félicitations

                        Posté par  . Évalué à 4.

                        Pas besoin d'apprendre par cœur les raccourcis avec Emacs, on peut les retrouver avec le menu ou en appelant les fonctions qui commencent par le nom du plugin (rope-xxx), auquel cas Emacs nous dit s'il existe un raccourci clavier.

                        Quand à ropemacs, j'ai jamais compris comment l'installer, quelle galère ! Vous êtes plus que bienvenus pour éditer cette doc: http://wikemacs.org/index.php/Python#Refactoring merci d'avance !

                        • [^] # Commentaire supprimé

                          Posté par  . Évalué à 3. Dernière modification le 14 novembre 2014 à 10:11.

                          Ce commentaire a été supprimé par l’équipe de modération.

                          • [^] # Re: Félicitations

                            Posté par  . Évalué à 2. Dernière modification le 14 novembre 2014 à 10:44.

                            Et si par hasard tu n'as pas encore sauvegardé le raccourcis dans ta mémoire cérébrale, tu peux même entrer C-h b pour avoir une liste de tous les raccourcis disponibles en fonction des modes actifs.

              • [^] # Re: Félicitations

                Posté par  . Évalué à 3.

                Accessoirement, pour du code, je trouve ça pas plus mal de ne pas l'avoir.

                Sauf que ça ne me sert pas qu'à ça :)

                Prenons une liste de champ, décris dans la doc par exemple. Je les copie-colle dans la classe qui va bien et je peux ajouter les classiques "private" et le ";" à la fin en une seule fois. Si leur nom ne correspond pas aux normes du projet, je peux aussi facilement les corriger. Je m'en sert aussi par exemple pour écrire les méthodes equals() (je sélectionne tous les champs je les copie à la fin de la méthode et j'ajoute les && Objects.equals(get<Nom>(), o.get<Nom>()); qui vont bien.

                Ça se fait avec des expressions régulière, mais c'est bien moins pratique.
                Ça peut aussi se faire via les commandes vim, mais c'est moins rapide, moins visuel et on a plus de chances d'avoir à s'y reprendre plusieurs fois.

                Mais c'est encore plus puissant que ça dans intellij parce qu'on peut utiliser des commandes dont le comportement est polymorphique (la commande n'a pas le même résultat sur chaque curseur). C'est encore un peu limité évidement (c'est à mon avis plus une limitation due à l'interface et là compréhension qu'on aurait de ce qu'on fait qu'autre chose), mais on peut déjà faire des choses intéressantes avec.

                Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

                • [^] # Re: Félicitations

                  Posté par  . Évalué à 2.

                  Bien vu, pour l'accessibilité des champs. Je n'y pense pas, parce que j'ai une forte préférence pour le C++, dans lequel il n'y à pas besoin de se répéter à chaque méthode ;) contrairement au java.

                  J'ai parfois l'impression que l'usage de ce type d'outils dépend assez puissamment à la fois des projets sur lesquels on bosse (ampleur, taille du code) et du ou des langages utilisés (ici, le java rends très utile le curseur multiple).

                  • [^] # Re: Félicitations

                    Posté par  . Évalué à 3.

                    J'ai parfois l'impression que l'usage de ce type d'outils dépend assez puissamment à la fois des projets sur lesquels on bosse (ampleur, taille du code) et du ou des langages utilisés (ici, le java rends très utile le curseur multiple).

                    Oui est du vielle adage quand on est un marteau tout ressemble à un clou. Je n'ai pas écris des masses de C++, mais même pour du go (qui est largement plus concis que le C++) je m'en sert (mais moins tout de même).

                    Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

    • [^] # Re: Félicitations

      Posté par  (site web personnel) . Évalué à 6.

      Sublime Text ou Atom peuvent être utilisés dans un terminal ? Fonctionnent-ils sur autant de plate-formes différentes ?
      Peut-on changer les raccourcis claviers comme bon nous semble ?

      Bon, mais pouvoir écrire des extensions en Python (pour Sublime Text), c'est sympathique, et il y a surtout plus de monde.

      J'utilise Emacs quotidiennement (GUI et dans le terminal, lancé en mode serveur), et je pense que ces nouveaux éditeurs ont intégrés ce qui fait la principale force d'Emacs : sa capacité de personnalisation et d'extension.

      C'est bien pour ça que vi(m) est toujours là : vimscript c'est très moyen, et certains raccourcis claviers sont figés à jamais.

      Néanmoins, ce que vi(m) apporte, et qu'aucun autre éditeur n'essaie de reproduire, c'est la composition d'opérateurs. Evil-mode essaie de faire ça à la vim pour Emacs, mais pourquoi aucun nouvel éditeur n'a-t-il essayé d'apporter la personnalisation facile à la Emacs, mais aussi la composition de fonctions qui rend tout bien plus logique ?

      Un jour, peut-être…

      • [^] # Re: Félicitations

        Posté par  . Évalué à -3. Dernière modification le 13 novembre 2014 à 11:20.

        Sublime Text ou Atom peuvent être utilisés dans un terminal ?

        C'est tout de même de moins en moins utile ça.

        Fonctionnent-ils sur autant de plate-formes différentes ?

        Question inintéressante. Si je trouve un éditeur qui fonctionne sur qnx, Windows sur ARM, les calculatrices TI, Casio et HP, le nouvel OS d'Alan Cox, AIX, Gnu/Hurd, etc mais pas sur linux, windows sur x86 ni MacOS. Tu t'en foutra.

        La question serait donc plus est-ce qu'il fonctionne sur les plateformes que tu utilise et je ne m'avance pas trop en disant que c'est le cas pour beaucoup de gens.

        Peut-on changer les raccourcis claviers comme bon nous semble ?

        Que je sache oui.

        Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

        • [^] # Commentaire supprimé

          Posté par  . Évalué à 7.

          Ce commentaire a été supprimé par l’équipe de modération.

          • [^] # Re: Félicitations

            Posté par  . Évalué à 1.

            Non, il ne le fait pas et si c'est de moins en moins utile parce qu'il y a de plus en plus de possibilité de faire de l'édition distante (par exemple avec sshfs ou par l'utilisation d'un gestionnaire de version entre ce qui se trouve sur la machine distante et ta machine locale). Pour corriger un problème locale qui casse ton serveur X d'une part ça devrait être rare (du moins j'espère pour toi) d'autre part de plus en plus de gens passent par une distribution live (ce qui permet d'aller chercher des info sur internet plus facilement).

            Le dernier cas d'usage qui me semble pas comblé c'est pour ceux qui utilisent screen.

            Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

            • [^] # Commentaire supprimé

              Posté par  . Évalué à 7.

              Ce commentaire a été supprimé par l’équipe de modération.

              • [^] # Re: Félicitations

                Posté par  . Évalué à 3.

                Quant à éditer des trucs distance, Emacs le fait depuis j'ai oublié, tiens.

                Oui, j'ai jamais dis le contraire. Je dis justement que lancer un éditeur dans un terminal n'est pas forcément si utile que ça.

                Sérieusement, tu t'investis dans l'approche d'un éditeur de texte, tu te fais tes marques tout bien bien mais quand ton serveur X est cassé tu dois en utiliser un autre pour le réparer ? C'est triste.

                Bof (note à titre personnel j'utilise 3 ou 4 éditeurs de texte quotidiennement dont vim -mon principal depuis 8 ans-, pas trop emacs). Je n'ai pas cassé mon serveur x depuis plus de 4 ans, mais à part si c'est pour réparer quelque chose que j'ai moi même fais (alors je restaure simplement l'ancienne version de ma conf avec cp. Soit je ne saurais pas faire sans l'aide d'internet et ça ne m'amuse pas d'utiliser links. Faut voir aussi que c'est un cas où tu va pas y rester très longtemps : je doute que tu passe 8h à corriger ton serveur X, ni que tu ai les même besoins de productivité pour le faire.

                Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

                • [^] # Re: Félicitations

                  Posté par  (site web personnel, Mastodon) . Évalué à 0.

                  Quand on t'inflige d'utiliser un MS Windows pour travailler, tu es bien content d'avoir un Vim à travers un Putty.

                  • [^] # Re: Félicitations

                    Posté par  . Évalué à 2.

                    http://www.vim.org/download.php propose une version Windows native.

                    La dernière fois que je l'ai essayée, elle marchait bien.

                    BeOS le faisait il y a 20 ans !

                  • [^] # Re: Félicitations

                    Posté par  . Évalué à 3. Dernière modification le 13 novembre 2014 à 18:32.

                    Pas besoin, vim tourne sous windows aussi.

                    [edit]
                    oups, pas vu la réponse entre deux…

                    • [^] # Re: Félicitations

                      Posté par  (site web personnel, Mastodon) . Évalué à 1.

                      Surtout quand tu n'as pas le droit d'installer la moindre application non-validée.

                      • [^] # Re: Félicitations

                        Posté par  . Évalué à 3.

                        De mémoire, on peux aussi télécharger un zip, qui ne nécessite donc pas les droits administrateurs.

                        • [^] # Re: Félicitations

                          Posté par  . Évalué à 3.

                          Oui mais si t'a pas les droits d’écriture sur disque !

                          Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

                          • [^] # Re: Félicitations

                            Posté par  . Évalué à 3. Dernière modification le 20 novembre 2014 à 12:19.

                            Avec un ramdisk? Mais c'est vrai que dans ce cas il faut avoir les droits d'écriture dans la RAM… ce qui n'est pas évident :)

                            Pire, on pourrai n'avoir accès ni au réseau, ni au disque, ni à la ram… je crois qu'on appelle ça une télé après par contre.

                          • [^] # Re: Félicitations

                            Posté par  (site web personnel, Mastodon) . Évalué à 1.

                            Et d'exécution des binaires dans le répertoire de l'utilisateur. Oui, il y a bien marqué software developer sur mon contrat de travail.

                            • [^] # Re: Félicitations

                              Posté par  . Évalué à 5.

                              Démissionne. Le pire, c'est que je suis sincère. Je me contrefous que ce soit pour de la sécurité si je ne peux pas travailler alors ce n'est pas la peine de me le demander. C'est pas comme si trouver du travail dans cette branche était compliqué.

                              Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

              • [^] # Re: Félicitations

                Posté par  (site web personnel) . Évalué à 5.

                Sérieusement, tu t'investis dans l'approche d'un éditeur de texte, tu te fais tes marques tout bien bien mais quand ton serveur X est cassé tu dois en utiliser un autre pour le réparer ? C'est triste.

                Moué, je ne pensais même pas à cet avantage.

                Non, pour moi, pouvoir ouvrir son éditeur depuis un terminal est une raison qui se suffit à elle-même. C’est ainsi que je travaille, je suis dans un shell dans un terminal, j’ouvre l’éditeur dans ce terminal. Mon éditeur a une GUI GTK, mais je ne m’en sers quasiment jamais.

                ce commentaire est sous licence cc by 4 et précédentes

                • [^] # Re: Félicitations

                  Posté par  . Évalué à 1.

                  Non, pour moi, pouvoir ouvrir son éditeur depuis un terminal est une raison qui se suffit à elle-même. C’est ainsi que je travaille, je suis dans un shell dans un terminal, j’ouvre l’éditeur dans ce terminal.

                  Je ne comprends pas cet argument ?

                  Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

                  • [^] # Re: Félicitations

                    Posté par  . Évalué à 3.

                    Il dit que ça lui évite de quitter la fenêtre de son émulateur de terminal pour modifier un texte.

                    Autrement dit, il est peut-être (comme moi dans ce cas?) le genre de personne qui à oublié que l'on peut faire les choses à la souris dans un explorateur de fichier graphique, préférant le faire à coup de commandes shell.

                    • [^] # Re: Félicitations

                      Posté par  (site web personnel) . Évalué à 6. Dernière modification le 13 novembre 2014 à 18:48.

                      Oui il y a de ça, j'ai appris à communiquer avec ma machine avec cette fabuleuse capacité humaine qu'est le langage. Autrement dit, je parle à mon ordinateur.

                      D'ailleurs, pour développer un autre sujet évoqué dans les commentaires de cette dépêche, j'apprécie mon éditeur de texte parce que je peux le contrôler en parlant avec lui.

                      Pointer et grogner est un langage, mais je parle d'un langage plus évolué avec un vocabulaire, une grammaire et une syntaxe.

                      Certains diront "civilisé" plutôt que "évolué" car le langage est bien un marqueur de civilisation. Si on utilise l'écriture pour marquer le début de l'histoire, le début de la civilisation vient certainement avec le langage, c'est juste que le langage sans l'écrit ne laisse pas de trace donc ça ne se mesure pas.

                      ce commentaire est sous licence cc by 4 et précédentes

                    • [^] # Re: Félicitations

                      Posté par  . Évalué à 4.

                      C'est bien, mais il n'y a aucun rapport. Ce n'est pas parce que tu utilise plus d'une fenêtre que tu utilise un dispositif de pointage. Tu peut même arrêter d'utiliser des fenêtres pour utiliser des clients et pouvoir encore plus facilement te passer d'une souris.

                      Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

                      • [^] # Re: Félicitations

                        Posté par  . Évalué à 2.

                        C'est vrai, on peut passer d'une fenêtre à l'autre d'un simple raccourcis clavier.
                        Sauf que, à ce que je sais, c'est plutôt pénible d' "alttaber" jusqu'à tomber sur la bonne fenêtre. Avec un tiling wm, il n'y à pas cette contrainte, mais ça reste une frappe clavier supplémentaire, pour changer de fenêtre.

                        On peut aussi parler du fait que ça permette de ne pas avoir à modifier les dimensions des fenêtres que l'on utilise (je considère le mode fullscreen comme un redimensionnement).

                        Par contre, je n'ai pas compris ta seconde phrase? Utiliser des clients? C'est à dire?

                        • [^] # Re: Félicitations

                          Posté par  . Évalué à 3.

                          Avec un tiling wm, il n'y à pas cette contrainte, mais ça reste une frappe clavier supplémentaire, pour changer de fenêtre.

                          Non, il n'y a rien en plus. Je lance mon gvim comme tu lance ton vim sauf que ça donne le focus à mon vim. Ensuite une fois que j'ai fini soit je fait un :x et c'est identique à ton workflow actuel. Soit j'ajoute un raccourcis parce que j'ai pas envie de fermer mon éditeur, comme toi en fait.

                          On peut aussi parler du fait que ça permette de ne pas avoir à modifier les dimensions des fenêtres que l'on utilise (je considère le mode fullscreen comme un redimensionnement).

                          Je ne sais pas trop de quoi tu parle ça dépend vraiment du gestionnaire de fenêtre que tu utilise et de ce que tu recherche.

                          Par contre, je n'ai pas compris ta seconde phrase? Utiliser des clients? C'est à dire?

                          Les clients c'est la terminologie des principaux gestionnaires de fenêtres pavant pour parler des fenêtres.

                          Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

                  • [^] # Re: Félicitations

                    Posté par  (site web personnel) . Évalué à 4. Dernière modification le 13 novembre 2014 à 18:40.

                    Je veux dire que "pouvoir ouvrir son éditeur dans son terminal" est un argument à part entière et suffisant, pas besoin de "pouvoir ouvrir son éditeur dans son terminal parcequ'un autre argument", comme par exemple "ouvrir son éditeur quand on n'a plus X11" ou je ne sais pas quoi d'autre.

                    Je veux pouvoir ouvrir mon éditeur dans mon terminal puisque c'est ainsi que je travaille. Si je veux ouvrir un autre terminal ou un autre éditeur, j'ouvre un autre terminal. Terminator fait ça très bien par exemple: il m'ouvre un terminal dans le dossier courant du précédent terminal, ce qui signifie que je peux ouvrir une seconde vue de l'éditeur dans le dossier courant. Le terminal fournit un contexte, et je veux ce contexte quand j'ouvre mon éditeur de texte.

                    ce commentaire est sous licence cc by 4 et précédentes

                • [^] # Commentaire supprimé

                  Posté par  . Évalué à 3. Dernière modification le 13 novembre 2014 à 18:05.

                  Ce commentaire a été supprimé par l’équipe de modération.

            • [^] # Re: Félicitations

              Posté par  . Évalué à -2.

              si c'est de moins en moins utile parce qu'il y a de plus en plus de possibilité de faire de l'édition distante

              C'est pas que c'est de moins en moins utile, c'est surtout que c'est une horrible idée de faire ce genre de choses. C'est jamais ok de modifier un fichier a la rache en remote.
              Ton code, tu le modifies pas sur le serveur directement. C'est jamais ok de faire ca. Tu corriges localement, push et redeploies.
              La config de tes serveurs, tu la modifies pas a la rache, un par un. Tu met a jour ton repo chef/puppet/whatever et t'applique ca sur tous a la fois.

              Linuxfr, le portail francais du logiciel libre et du neo nazisme.

              • [^] # Re: Félicitations

                Posté par  . Évalué à 6.

                Ohla, on se calme, tout le monde n'est pas adminsys pro qui utilise puppet ou quoi, on peut parler tout simplement de ne pas être chez soi et d'éditer un truc à la maison, pas de la config mais du code ou du latex (j'ai rédigé la majorité de mes rapports à distance sur mon pc avec un cycle emacs en ssh -> latex sur la machine -> copie du pdf sur un serv web, pour ne pas avoir à installer latex à l'école) ou du nourjal intime.

          • [^] # Re: Félicitations

            Posté par  . Évalué à 4.

            Travailler sur des unix propriétaires sans X mais avec un éditeur digne de ce nom ? Bien sur selon la machine tu as besoins d'avoir une configuration particulière (template etc…). Certaines machines n'ont pas forcément de ssh…

            Avoir des serveurs sans X, appartenant à des propriétaires différents et donc avec paramétrage différents ?

            Sans rire utiliser vim ou emacs uniquement dans un terminal c'est confortable et tellement simple. Il m'arrive d'intervenir à distance depuis une machine qui n'est pas la mienne aussi.

            Mon workflow c'est une config de base identique partout, et des spécificités en plus selon le contexte. L'intervention à distance, le changement de poste (oui parfois la machine du taf est changée et la politique sur les logiciels installable n'est pas très ouverte) sont facile à gérer. Maintenant je me sers pas de vim pour faire du dev autre que du shell (mais beaucoup de scripts, et de l'analyse d'exploitation).

        • [^] # Re: Félicitations

          Posté par  (site web personnel) . Évalué à 9.

          Sublime Text ou Atom peuvent être utilisés dans un terminal ?

          C'est tout de même de moins en moins utile ça.

          Curieux comme remarque, en quoi ça l'était plus avant et moins maintenant ? En tous cas, chez moi, à part ce qui a trait à images/vidéo/pdfs… , tous les logiciels que j'utilise passent par le terminal dans une session tmux, ce qui me fournit un environnement homogène, tous les outils que je connais étant à portée de main; et aussi, j'ai le même environnement à travers ssh qu'en local, ce qui n'est pas mal.

          • [^] # Re: Félicitations

            Posté par  . Évalué à -1.

            En tous cas, chez moi, à part ce qui a trait à images/vidéo/pdfs… , tous les logiciels que j'utilise passent par le terminal dans une session tmux, ce qui me fournit un environnement homogène, tous les outils que je connais étant à portée de main; et aussi, j'ai le même environnement à travers ssh qu'en local, ce qui n'est pas mal.

            Et ça pète joyeusement la moitié de tes raccourcis clavier de tes logiciels. tmux/screen sont vraiment lourdingues à cause de ça. Ils ajoutent encore un niveau de raccourcis qui vient te casser les noisettes. Ils sont utilise surtout pour garder des logiciels ouverts entre différentes sessions.

            Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

            • [^] # Re: Félicitations

              Posté par  . Évalué à 2.

              Donc autre force d'Emacs: images, vidéos et pdf sont lus et accessibles avec les mêmes raccourcis claviers.

              Voyez la qualité de lecture d'un pdf: http://tuhdo.github.io/static/emacs-read-pdf.gif

            • [^] # Re: Félicitations

              Posté par  (site web personnel) . Évalué à 4.

              Et ça pète joyeusement la moitié de tes raccourcis clavier de tes logiciels.

              Tous les raccourcis de tmux passent par un ctrl-b par défaut (que chacun change à sa guise), je ne vois pas comment ça peut casser la moitié des raccourcis… tout au plus un raccourci par logiciel, si on n'a pas de chance. Perso, ça ne m'a cassé aucun des raccourcis que j'utilise avec ctrl-e à la place de ctrl-b ("e" parce qu'en bépo c'est sous l'index).

              Ils ajoutent encore un niveau de raccourcis qui vient te casser les noisettes.

              Je trouve logique que des actions fréquentes soient en accés direct (comme la plupart des actions d'édition typiques), et que des choses moins fréquentes qu'on ne fait pas plusieurs fois par seconde (ouvrir un nouveau onglet), demandent un niveau d'indirection. En tous cas, tmux me sert de gestionnaire de fenêtres pour mon environnement vim+mutt+shell+etc. et je trouve ça très agréable.

              Ils sont utilise surtout pour garder des logiciels ouverts entre différentes sessions.

              En plus des avantages que procurent les sessions, il y a les avantages comme pouvoir copier-coller au clavier facilement du texte d'un pane à un autre, ainsi que pouvoir scripter ce genre de choses (ce qui permet, par exemple depuis vim avec le plugin vim-slime, d'envoyer facilement du texte n'importe où ailleurs).

        • [^] # Re: Félicitations

          Posté par  (site web personnel) . Évalué à 4.

          Sublime Text ou Atom peuvent être utilisés dans un terminal ?

          C'est tout de même de moins en moins utile ça.

          J’utilise quasi-exclusivement vim dans un terminal (terminator en particulier).

          En fait l’éditeur majeur que je n’utilise pas dans un terminal est… l’espace de rédaction de DLFP. /o\

          ce commentaire est sous licence cc by 4 et précédentes

          • [^] # Re: Félicitations

            Posté par  . Évalué à 3.

            Moi j'ai arrêté ça m'embêtait plus qu'autre chose au final et j'utilise gvim depuis longtemps maintenant. Ça me permet d'utiliser des couleurs et polices autre que celle de mon émulateur de terminal, je trouve que c'est plus joli, c'est plus pratique à gérer avec mon gestionnaire de fenêtre (au lieu de devoir lancer un terminal qui lance vim avec un nom particulier, je lance juste vim en mode serveur et j'ai mon raccourcis pour le spawner).

            Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

    • [^] # Re: Félicitations

      Posté par  . Évalué à 7. Dernière modification le 13 novembre 2014 à 11:08.

      On lance ce débat ? :)

      Emacs vaut encore son pesant de cacahuètes. Tout d'abord il est libre, la comparaison pourrait s'arrêter là, ou continuer avec Atom (encore très jeune).
      Emacs est une machine lisp. Il est lui-même éditable avec son propre langage de programmation et ça, c'est puissant.
      Un autre truc incroyable c'est que dans emacs, tout ce qui est affiché est du texte. On peut donc s'en servir pour naviguer, lancer toute sorte de grep, etc (exple: la sortie formatée d'une compilation).
      Et puis, Emacs n'est pas qu'un éditeur de texte, mais un navigateur de fichiers, un terminal (où tout le buffer est du texte !), une interface avec des commandes shell, un navigateur d'images, un lecteur de musique, un client mail,… dans Sublime ou autre, on doit utiliser d'autres outils, externes.
      Emacs possède org-mode.
      Le seul avantage de Sublime, c'est qu'il est facile à utiliser par défaut.

      • [^] # Re: Félicitations

        Posté par  . Évalué à -2.

        Emacs est une machine lisp. Il est lui-même éditable avec son propre langage de programmation et ça, c'est puissant.

        Waw ! Trop badass ! Ils en parlent dans le prochain expendables ?
        Puissant c'est bien, mais ça sert à quoi concrètement ? Après combien d'année d'utilisation ou d'heure de formation on peut s'en servir. Pour couvrir 80~90% des besoins, on met combien de temps avec sublime text ?

        Un autre truc incroyable c'est que dans emacs, tout ce qui est affiché est du texte. On peut donc s'en servir pour naviguer, lancer toute sorte de grep, etc (exple: la sortie formatée d'une compilation).

        C'est un truc sympa, mais j'ai jamais trouvé ça agréable.

        Et puis, Emacs n'est pas qu'un éditeur de texte, mais un navigateur de fichiers, un terminal (où tout le buffer est du texte !), une interface avec des commandes shell, un navigateur d'images, un lecteur de musique, un client mail,… dans Sublime ou autre, on doit utiliser d'autres outils, externes.
        Emacs possède org-mode.

        Mon systemd fait ça aussi.

        Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

        • [^] # Commentaire supprimé

          Posté par  . Évalué à 8.

          Ce commentaire a été supprimé par l’équipe de modération.

          • [^] # Re: Félicitations

            Posté par  . Évalué à 3.

            Après combien d'année d'utilisation ou d'heure de formation on peut s'en servir

            Le temps d'apprendre comment ouvrir un fichier, et comment le sauver… Je connais pas ton rythme, alors je vais dire 2 minutes, pour te laisser du temps :)

            emacs -nw mon_fichier.txt
            C-x C-c
            

            Ce n'est pas vraiment écrire des fonctions elisp pour redéfinir le comportements d'emacs.

            Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

        • [^] # Re: Félicitations

          Posté par  . Évalué à 3.

          machine lisp: prenons l'exemple de changer des raccourcis clavier. Avec Sublime, tu modifies un fichier json. Avec Emacs, tu peux modifier ton fichier de conf, ou tu appelles le prompt de lisp et tu tapes ta fonction pour modifier le raccourci. C'est l'exemple le plus basique. Tu peux écrire une petite fonction qui t'automatise une action d'édition (si une macro ne fait pas l'affaire). Et, ce faisant, tu apprends ton outil de travail, et petit à petit tu le moules à tes besoins. Et t'apprends de nouvelles manières de programmer.

          tout est du texte: t'as jamais trouvé ça agréable ? cool à savoir… Tu reconnais que ça peut être très très pratique ? L'exemple le plus basique est le shell-mode. On peut se ballader dans la sortie standard, copier, chercher du texte, se ballader d'input en input, avec nos commandes de navigation habituelles.
          Avec Sublime, t'as un terminal. Avec un terminal, tu scrolles avec la souris (ou tu te fais chier avec screen).

          Ton systemd ne fait pas navigateur de fichiers comme Emacs (Dired)…

          • [^] # Re: Félicitations

            Posté par  . Évalué à 3.

            machine lisp

            L'apport est assez faible dans la majorité des cas car les besoins sont simples et/ou peuvent être facilement répertoriés. Avoir ta fonction rien qu'à toi qui déchire c'est un fantasme qui est largement pris en compte par l'utilisation de macro par exemple.

            tout est du texte

            En fait ça outre passe un paquet de raccourcis clavier par défaut de readline/zle et pour quelqu'un qui utilise massivement ces raccourcis c'est juste un coup à balancer l'ordinateur par la fenêtre et d'aller le suivre pour lui sauter dessus une fois qu'il sera arrivé au sol. Le fait de devoir lister ces raccourcis clavier et de les supprimer de la conf d'emacs, mais que dans les buffers qui vont bien me semble peu intéressant face au gain, c'est à dire, faire des copier-coller à la mode emacs.

            Ton systemd ne fait pas navigateur de fichiers comme Emacs (Dired)…

            Multiplier les fonctions à l'infini ne sert à rien. On pourrait ajouter un code de calcul nucléaire pour les réacteurs à hautes pressions dans le driver de mon clavier que ça ne rendrait pas mon clavier plus cool.

            Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

            • [^] # Re: Félicitations

              Posté par  . Évalué à 6.

              L'apport est assez faible dans la majorité des cas car les besoins sont simples et/ou peuvent être facilement répertoriés. Avoir ta fonction rien qu'à toi qui déchire c'est un fantasme qui est largement pris en compte par l'utilisation de macro par exemple.

              La majorité des cas c'est une minorité de cas. La majorité des cas on a besoin de faire des trucs « de base », des choses simples, que tous les éditeurs savent faire.
              Plus précisément, la majorité des usages c'est une minorité des cas d'usages.
              Quand on a un truc original à faire, non trivial (et il y en a des tonnes), on est content d'avoir la puissance de turing dans un langage relativement simple pour aider.

              Multiplier les fonctions à l'infini ne sert à rien. On pourrait ajouter un code de calcul nucléaire pour les réacteurs à hautes pressions dans le driver de mon clavier que ça ne rendrait pas mon clavier plus cool.

              Tu dit ça juste parce que t'as pas besoin de faire de calcul nucléaire pour les réacteurs à hautes pressions avec ton clavier.
              Il parait qu'il y a des gens qui utilisent leur téléphones pour regarder la télé, moi j'ai pas besoin de regarder la télé, et il ne me viendrait pas à l'esprit de le faire avec sur écran format timbre poste, mais bon… Ces petites bêtes sont turing complète, et ont un écran couleur, alors on regarde la télé avec.

              Please do not feed the trolls

              • [^] # Re: Félicitations

                Posté par  . Évalué à 3.

                Quand on a un truc original à faire, non trivial (et il y en a des tonnes), on est content d'avoir la puissance de turing dans un langage relativement simple pour aider.

                Non. Les cas où tu aurais à écrire une fonction de manipulation de texte dans un langage généraliste comme lisp pour faire ton action et qui ne soit pas pris en compte par un éditeur un peu sophistiqué est vraiment vraiment vraiment, mais vraiment très très très rare. Et les cas où tu en as suffisamment besoin pour l'inscrire de manière permanente dans ta conf c'est encore plus rares. Mais je suis preneur de tes tonnes d'exemples, qui ne soient pas pris en compte par les macro vim, par sublime text ou carrément par le remplacement structurel d'intellij.

                Tu dit ça juste parce que t'as pas besoin de faire de calcul nucléaire pour les réacteurs à hautes pressions avec ton clavier.

                Quand j'en ai eu besoin, j'ai probablement était un idiot, j'ai utilisé un code de simulation que je suis bête quand je m'y met.

                Il parait qu'il y a des gens qui utilisent leur téléphones pour regarder la télé, moi j'ai pas besoin de regarder la télé, et il ne me viendrait pas à l'esprit de le faire avec sur écran format timbre poste, mais bon… Ces petites bêtes sont turing complète, et ont un écran couleur, alors on regarde la télé avec.

                Je regarde pas la télé, mais youtube avec mon téléphone et devine quoi ? Je le fais via l'application youtube ! Aucun intérêt de tout avoir dans un même logiciel.

                Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

                • [^] # Re: Félicitations

                  Posté par  . Évalué à 4.

                  Aucun intérêt de tout avoir dans un même logiciel.

                  Sauf quand il faut relier l’information. Nous avons eu le cas sur un projet, liste des exigences dans un .doc, code dans plein de .c, et matrice de traçabilité dans un .xls. Objectif : corriger et vérifier l’ensemble :

                  • Chaque fonction doit être relié à au moins une exigence.
                  • Chaque exigence doit être relié à au moins une fonction.

                  Un collègue, maîtrisant la bête, à en 3h, coder une série de fonctions pour vérifier la traçabilité du code avec les exigences. De plus, grâce aux ctag, il pouvait aller de la doc au code… Je ne connais aucun outils permettant de faire ça aussi vite. D’autant que du coup, c’était réutilisable à chaque nouvelle livraison d’un avenant.

                  Certes, pour le faire il faut connaître, mais écrire des plug'in pour différents IDE n’est pas trivial. Dans emacs, tu essayes en live dans ton interpréteur puis, quand ça marche tu le sauvegardes ou pas.

                  • [^] # Re: Félicitations

                    Posté par  . Évalué à 4.

                    Ou alors tu utilise un logiciel de gestion des exigences comme twiki par exemple (tu peut facilement faire l'importation des .doc avec catdoc). C'est peut être moins bien pour votre cas précis, mais je ne vois pas quel est le gros gain par rapport à un outil que tu développe dans le langage que tu veux et qui va générer les ctags qui vont bien. Toujours en 3h parce que tu peut l'écrire en (e)lisp si c'est ce que tu préfère tant que tu fini par générer quelque chose qui est lisible par ton éditeur.

                    Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

                  • [^] # Commentaire supprimé

                    Posté par  . Évalué à 3.

                    Ce commentaire a été supprimé par l’équipe de modération.

                    • [^] # Re: Félicitations

                      Posté par  . Évalué à 3.

                      C'est vrai, t'as raison.
                      Et c'est vraiment confortable comme environnement de travail. Récemment, j'ai voulu scripter de la manipulation de texte en python, et j'étais bien frustré de ne pas pouvoir le faire de manière intégrée comme en elisp.

                • [^] # Re: Félicitations

                  Posté par  . Évalué à 2.

                  Mais je suis preneur de tes tonnes d'exemples, qui ne soient pas pris en compte par les macro vim, par sublime text ou carrément par le remplacement structurel d'intellij.

                  Tu prétend que l'apport de la machine elisp est assez faible, expliquant qu'on peut en faire tout autant avec d'autres éditeurs qui proposent eux aussi leur propre machine vimScript, python, et je sais pas quoi, respectivement ?

                  Je regarde pas la télé, mais youtube avec mon téléphone et devine quoi ? Je le fais via l'application youtube ! Aucun intérêt de tout avoir dans un même logiciel.

                  C'était pas ce que je voulais dire mais bon, c'est intéressant que tu parle de ça.
                  Aucun intérêt de tout avoir dans un même logiciel ?
                  Et pourtant, tu as un téléphone qui te sert à téléphoner, envoyer des mails, regarder des vidéos. Quel intérêt de tout avoir dans le même appareil ?
                  Chacune de ses fonctionnalités serait parfaitement implémentées, et peut être mieux pour certaines, par des appareils dédiés. Mais non, c'est cool le tout en un.

                  • Une seule chose à apprendre
                  • Une seule chose à avoir sur toi (ou lancer sur ton ordinateur)
                  • Tu peux envoyer un lien youtube à qu'un ami t'as demandé par mail super facilement, par sms.

                  Tu dit ça juste parce que t'as pas besoin de faire de calcul nucléaire pour les réacteurs à hautes pressions avec ton clavier.

                  Quand j'en ai eu besoin, j'ai probablement était un idiot, j'ai utilisé un code de simulation que je suis bête quand je m'y met.

                  Évidement si tu veux faire du gros calcul il faut un outil adapté. Mais si c'est juste pour tester viteuf, le clavier c'est très bien. Tu sais déjà t'en servir, il est déjà installé, déjà configuré…

                  Please do not feed the trolls

                  • [^] # Re: Félicitations

                    Posté par  . Évalué à 2.

                    Tu prétend que l'apport de la machine elisp est assez faible, expliquant qu'on peut en faire tout autant avec d'autres éditeurs qui proposent eux aussi leur propre machine vimScript, python, et je sais pas quoi, respectivement ?

                    Non, je dis que pour la quasi totalité des utilisateurs c'est inutile et que pour le reste c'est peu utile. Justement l'évolution montre à mon avis que les usages qui devaient auparavant passer par de la programmation généraliste passent maintenant par des DSL (le langage de commande d'ex/vim, les expressions régulières) voir par des outils spécifiques (comme les multicurseurs, les sélections carrés ou multiples, etc).

                    Pour moi ce qui se passe c'est que l'on crée au fur et à mesure que le temps passe des paradigmes et des modélisation qui permettent d'augmenter les possibilités sans passer par des langages généralistes.

                    C'est justement cette évolution qui me semble bien difficile pour vim/emacs. Ils sont déjà turring complet donc oui il peuvent tout faire et affirmer que les nouveautés n'apportent rien car en effet les nouveautés n'apportent pas de puissance supplémentaires, ils rendent juste tout cela plus facile d'accès.

                    • Une seule chose à apprendre

                    Au prix d'une réduction des fonctionnalités (par exemple pour les gestionnaires de version, on est limité à ce qui est intégré) et une réduction de la souplesse (toutes les alternatives ne sont pas forcément intégrée (dart, monotone, svk ou fossil sont géré par le module vcs ? et pour les extensions de hg ?)) et d'une réduction des sources d'information (il y a bien plus d'informations sur git que sur l'utilisation de git sur l'utilisation de git via emacs).

                    Une seule chose à avoir sur toi (ou lancer sur ton ordinateur)

                    Là si tu en es à compter le nombre de programme que tu lance sur ton ordi, je pense qu'il faut que tu te trouve un bon lanceur d'application. Le parallèle matériel / dématérialisé n'a pas de sens.

                    Tu peux envoyer un lien youtube à qu'un ami t'as demandé par mail super facilement, par sms.

                    L'intéropérabilité entre application c'est fait pour ça.

                    Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

                    • [^] # Re: Félicitations

                      Posté par  . Évalué à 3.

                      Au prix d'une réduction des fonctionnalités (par exemple pour les gestionnaires de version, on est limité à ce qui est intégré)

                      mais non, sacrebleu, car déjà, étant donné tous les hackers qui bossent dessus on n'est pas souvent en manque de fonctionnalité, et si on l'est, il y a plein de moyens d'interagir avec le shell à partir d'Emacs pour appeler la vrai commande. Prenons l'exemple de magit, une interface à git (autre que vc). Elle est super pratique, permet de faire plein de choses rapidement. Oui, elle n'implémente pas toutes les fonctionnalités de git. Donc s'il nous manque qc: on pose une question sur Stack Overflow et elle est implémentée et intégrée dans magit (ça m'est arrivé), si on connait elisp on l'implémente nous-même, sinon on peut interagir avec le shell de multiples façons en restant dans Emacs, ce qui ne casse pas le flux de travail d'un emacsien.

                      Non, je dis que pour la quasi totalité des utilisateurs c'est inutile et que pour le reste c'est peu utile.

                      oui, pour les dév débutants c'est peu utile, pour les autres qui veulent maîtriser leur outil de travail, ça l'est. Exemple ci-dessus.

                      Là si tu en es à compter le nombre de programme que tu lance sur ton ordi, je pense qu'il faut que tu te trouve un bon lanceur d'application.
                      L'intéropérabilité entre application c'est fait pour ça.

                      là tu refuses de comprendre.

                      • [^] # Re: Félicitations

                        Posté par  . Évalué à 2.

                        sinon on peut interagir avec le shell de multiples façons en restant dans Emacs, ce qui ne casse pas le flux de travail d'un emacsien.

                        Donc tu fais une partie des tes actions d'une façon et une partie d'une autre, tout le monde ne trouve pas ça confortable.

                        oui, pour les dév débutants c'est peu utile, pour les autres qui veulent maîtriser leur outil de travail, ça l'est.

                        Non ce que je dis c'est que pouvoir créer un raccourcis clavier qui remplace les "i" minuscules par des "ç" pour tous les identifiants de méthodes récursives du module Tartempion sauf s'il s'agit de la fonction fooibar. N'a pas grand intérêt.

                        là tu refuses de comprendre.

                        J'ai probablement l'esprit trop étroit… :)

                        Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

                        • [^] # Re: Félicitations

                          Posté par  . Évalué à 3.

                          J'ai probablement l'esprit trop étroit… :)

                          mais non mais non, c'est moi qui explique trop mal :)

          • [^] # Re: Félicitations

            Posté par  . Évalué à 10.

            Si je comprend bien, Emacs c'est un peu le Lotus Notes des éditeurs de texte.

            BeOS le faisait il y a 20 ans !

      • [^] # Re: Félicitations

        Posté par  . Évalué à 7.

        Et puis, Emacs n'est pas qu'un éditeur de texte, mais un navigateur de fichiers, un terminal (où tout le buffer est du texte !), une interface avec des commandes shell, un navigateur d'images, un lecteur de musique, un client mail,… dans Sublime ou autre, on doit utiliser d'autres outils, externes.

        Un outil qui fait une chose et qui la fait bien, c'est passé à la trappe ?!

        "Quand certains râlent contre systemd, d'autres s'attaquent aux vrais problèmes." (merci Sinma !)

        • [^] # Re: Félicitations

          Posté par  . Évalué à 1.

          Si tu te dis qu'Emacs n'est pas un éditeur de fichiers, mais un outil pour éditer du texte, alors savoir faire tout ça a du sens.

          Tu vois pas l'intérêt du navigateur de fichiers (Dired) ? C'est pourtant une chose qu'on fait constamment en programmant. On doit trouver un fichier, ou bien renommer des lots de fichiers (alors on peut le faire interactivement, et avec toutes les commandes d'édition habituelles, ce qui est plus sympa et efficace que du bash), ou bien se créer une liste de fichiers spécifique à un projet sur laquelle on travaille, etc.

          L'interface avec le shell est expliqué plus haut. Manipuler des fichiers, naviguer avec le terminal n'est vraiment pas efficace (même avec z, fasd ou autres).

          Le mail, c'est plus gadget, mais quitte à écrire du texte, autant utiliser un éditeur avec de vrais fonctionnalités d'édition (voire utiliser toutes les fonctionnalités d'org-mode !).

          La musique, c'est bien sûr plus gadget, mais quand il faut sélectionner des fichiers, Emacs fait efficacement le job.

          • [^] # Re: Félicitations

            Posté par  (site web personnel) . Évalué à 3.

            Le mail, c'est plus gadget, mais quitte à écrire du texte, autant utiliser un éditeur avec de vrais fonctionnalités d'édition (voire utiliser toutes les fonctionnalités d'org-mode !).

            Je ne trouve pas que ce soit gadget du tout, je suis sûr que si j'écrivais mes mails avec un éditeur de texte ad hoc fait pour l'occasion, je ne me sentirais vraiment pas à l'aise (bon, en l'occurence je fais du mutt+vim, mais c'est la même idée).

            • [^] # Re: Félicitations

              Posté par  (site web personnel) . Évalué à 3.

              Alors c'est vrai, éditer des courriels c'est bien avec ton éditeur préféré, mais il y a deux moyens de le faire :

              • soit ton client mél. te permet de choisir l'éditeur utilisé ;
              • soit l'éditeur doit aussi contenir toute l'infrastructure pour aussi faire client mél.

              La philosophie d'Unix, ou KISS, serait plutôt de partir pour le premier cas, mais Emacs c'est plus le second cas…

              • [^] # Re: Félicitations

                Posté par  (site web personnel) . Évalué à 2. Dernière modification le 13 novembre 2014 à 12:48.

                Je suis d'accord, mais la première méthode n'offre pas toujours une intégration parfaite : si tu prends un client graphique, il t'ouvre ensuite quelque part une autre fenêtre avec ton éditeur, qui n'a pas la même ergonomie ni des raccourcis dans le même esprit, c'est pas idéal non plus. Après, vim+mutt c'est un duo qui marche bien, mais je ne trouve pas l'approche d'emacs si répréhensible, la philosophie Unix j'aime bien, mais des petits écarts de temps en temps ne sont pas forcément mauvais. Le navigateur web intégré ou d'autres trucs du genre, je trouve ça un peu plus limite parce que ça n'a vraiment plus grand chose à voir avec la lecture et édition de texte.

                • [^] # Re: Félicitations

                  Posté par  . Évalué à 3.

                  C'est pas faux ce que vous dites tous les deux.
                  Petite remarque: si on considère l'option de mails mu4e, on est plus proche de la philosophie unix car le boulot est réparti entre plusieurs softs, et emacs n'est que l'interface qui lit des fichiers:

                  • la récupération des mails est externalisée (typiquement avec offlineimap),
                  • l'indexation est faite avec l'outil mu
                  • mu4e est mu for Emacs, une interface.
              • [^] # Re: Félicitations

                Posté par  (site web personnel) . Évalué à 2.

                sur la séparation des tâches : pour parcourir ses mails, le codeur de mu s'est amusé à coder un outil en Gtk (livré avec les sources de mu).

                Là où ce n'est gadget, réside dans l'indexation. notmuch offre un principe similaire (mais je ne connais que mu). Le principe est relativement puissant, on peut si l'on connait la syntaxe trouver tous les mails de bob de plus de deux mégas en 1/2 sec ; si j'écris relativement cependant c'est que du fait de rappatrier les mails dans un premier temps la vitesse est à relativiser (je souffre en particulier de ne pouvoir supprimer un dossier distant, ce qui est tout de même gênant, mais là je pars en H.S.)

                trier ses mails en mode dired avec des regexp pour les sélectionner s'avère plus agréable ; l'idée de coder une fonction pour décider où archiver les mails est séduisante (tout en avouant ne pas l'utiliser à l'heure actuelle, car hormis pour des mailings list ce n'est peut être pas si simple…)

          • [^] # Re: Félicitations

            Posté par  . Évalué à -1.

            Si tu te dis qu'Emacs n'est pas un éditeur de fichiers, mais un outil pour éditer du texte, alors savoir faire tout ça a du sens.

            C'est de la pure rhétorique.

            Tu vois pas l'intérêt du navigateur de fichiers (Dired) ? C'est pourtant une chose qu'on fait constamment en programmant. On doit trouver un fichier, ou bien renommer des lots de fichiers (alors on peut le faire interactivement, et avec toutes les commandes d'édition habituelles, ce qui est plus sympa et efficace que du bash), ou bien se créer une liste de fichiers spécifique à un projet sur laquelle on travaille, etc.

            Face à zsh ? Le gestionnaire de fichier d'emacs est alors trop basique. Pour manipuler des fichiers en fonction de leur taille, de leur type, lancer des appli dessus, le shell seras toujours plus efficace, c'est bien pour ça qu'ils ont intégré un pseudo terminal.

            Le mail, c'est plus gadget, mais quitte à écrire du texte, autant utiliser un éditeur avec de vrais fonctionnalités d'édition

            Ouai mais c'est vraiment anti-unix. C'est ton MUA qui doit lancer ton éditeur de fichier préféré.

            Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

            • [^] # Re: Félicitations

              Posté par  (site web personnel) . Évalué à 6.

              Face à zsh ? Le gestionnaire de fichier d'emacs est alors trop basique. Pour manipuler des fichiers en fonction de leur taille, de leur type, lancer des appli dessus, le shell seras toujours plus efficace, c'est bien pour ça qu'ils ont intégré un pseudo terminal.

              Quand tu travailles sur un projet qui a une grande arborescence, crois moi qu'un terminal c'est vraiment pénible pour t'y retrouver et lancer ton éditeur de texte, tu préfères que ton éditeur garde en mémoire les fichiers de travail qui comptent pour toi.

              Ouai mais c'est vraiment anti-unix. C'est ton MUA qui doit lancer ton éditeur de fichier préféré.

              Arrêtez de dire que X ou Y c'est anti-UNIX, ça n'a aucun sens. Emacs repose une grande partie de ses extensions sur des utilitaires UNIX et ne réimplante pas tout lui même. C'est une autre manière de faire des tâches qui collaborent ensemble.
              En plus, être "anti-unix" n'est pas vraiment un argument, sinon tu vas utiliser Plan 9 pour avoir un système philosophiquement plus cohérent que UNIX lui même ?

              • [^] # Re: Félicitations

                Posté par  . Évalué à 2.

                Quand tu travailles sur un projet qui a une grande arborescence, crois moi qu'un terminal c'est vraiment pénible pour t'y retrouver et lancer ton éditeur de texte, tu préfères que ton éditeur garde en mémoire les fichiers de travail qui comptent pour toi.

                1. Ça ne demande pas un gestionnaire de fichier.
                2. J'ai travaillé sur des projets java avec une foule de fichier et des arborescences assez profondes avec mon zsh et non personne ne le gagne (sauf intellij en fait parce qu'il comprend le java). Une fois que tu as ton arborescence dans le cache, l'utilisation de globbing étendus et la description des chemins par la ou les premières lettres des dossiers est très rapide

                Arrêtez de dire que X ou Y c'est anti-UNIX, ça n'a aucun sens. Emacs repose une grande partie de ses extensions sur des utilitaires UNIX et ne réimplante pas tout lui même. C'est une autre manière de faire des tâches qui collaborent ensemble.

                Le couplage est relativement fort. Si je veux utiliser autre chose que les classiques (genre fetchmail) ça ne marche plus forcément si bien. Et sa augmente la sophistication du logiciel pour un gain faible voir très faible. C'est typiquement le genre de trucs qui est fait avec un concept bien précis en tête : "je ferrais tout via emacs".

                Certains n'adhèrent pas et préfèrent avoir des configurations séparées qu'ils peuvent comprendre indépendamment, debuguer indépendamment et pour les quels ils peuvent changer de crèmerie facilement.

                En plus, être "anti-unix" n'est pas vraiment un argument, sinon tu vas utiliser Plan 9 pour avoir un système philosophiquement plus cohérent que UNIX lui même ?

                Ou utiliser mutt ?

                Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

                • [^] # Re: Félicitations

                  Posté par  . Évalué à 5.

                  Savoir bien utiliser zsh, c'est bien. Mais Emacs est puissant, interacfif, et facilement scriptable.
                  Mais t'as pas l'air de connaître Emacs à fond. Quelques exemples, encore.
                  Comment tu fais, en zsh, pour renommer un lot de fichiers "foo-bar.xx" en "foo_bar.xx" ? C'est qu'un exemple de renommage de fichiers. En zsh, je sais pas comment faire. Je dois écrire un script. Et si je me plante, je suis mort. Avec Emacs, un débutant saurait faire car on utilise les commandes d'édition normales + Emacs est très bien documenté (il y a le menu et l'aide au bout des doigts. Avec zsh, non). Je cherche tous les fichiers concernés avec find-name-dired et je les obtiens dans un buffer Dired (je peux les trier avec s, les regarder, les vérifier, en exclure, en rajouter). Je passe en mode écriture (C-x-q, je regarde le menu si j'ai oublié). Je lance un search&replace comme d'hab, avec confirmation pour chacun/pour tous d'un coup. Tant que j'ai pas validé, je peux les modifier. Je valide. Les fichiers sont renommés. Facile, et sûr.
                  Maintenant, si c'est une action récurrente je vais vouloir en faire un script. Je peux créer une macro, ou passer par du lips et écrire ma fonction. Plus haut t'as décrié l'usage de fonctions. Tu sais, c'est comme ça qu'on apprend à développer et qu'on se retrouve à développer des extensions Emacs.

                  Une fois que tu as ton arborescence dans le cache, l'utilisation de globbing étendus et la description des chemins par la ou les premières lettres des dossiers est très rapide

                  là tu parles de navigation pour retrouver des fichiers ? Tu perds justement bcp de temps à taper une commande, même courte. T'as déjà essayé helm-projectile ? Pas besoin de mise en cache préalable. Sélection interactive et possibilité de lancer plusieurs actions sur les fichiers si tu veux, le tout via le menu ou un raccourci clavier.

                  zsh c'est bien, c'est bien pour du script, mais pour travailler: Emacs ! (c'est sûr que c'est un paradigme différent. J'ai reporté bcp de tâches du terminal dans Emacs. Tout le monde n'aime ou ne comprends pas l'intérêt).

                  • [^] # Re: Félicitations

                    Posté par  . Évalué à 3.

                    Savoir bien utiliser zsh, c'est bien. Mais Emacs est puissant, interacfif, et facilement scriptable.
                    Mais t'as pas l'air de connaître Emacs à fond. Quelques exemples, encore.

                    %s/zsh/zetashell/
                    %s/Emacs/zsh/
                    %s/zetashell/Emacs
                    

                    Comment tu fais, en zsh, pour renommer un lot de fichiers "foo-bar.xx" en "foo_bar.xx" ?

                    zmv '(*)-(*).xx' '$1_$2.xx'

                    Pour faire des essais tu peut utiliser les options -v et -n. Tu peut simplifier encore la syntaxe avec un alias.

                    T'as déjà essayé helm-projectile ?

                    Non.

                    Pas besoin de mise en cache préalable.

                    Pour que ce soit rapide c'est une obligation, sinon tu es dépendant de la vitesse de ton fs. Je parle pas d'une action de ta part pour le mettre en cache. Juste que ton noyau de lui même tout mettre en cache (ce n'est pas la peine que ton éditeur le fasse pour toi. Ensuite ce n'est qu'une partie, il y a tous les raccourcis pour aller chercher un fichier que tu a déjà manipuler dans l'historique.

                    zsh c'est bien, c'est bien pour du script, mais pour travailler: Emacs ! (c'est sûr que c'est un paradigme différent. J'ai reporté bcp de tâches du terminal dans Emacs. Tout le monde n'aime ou ne comprends pas l'intérêt).

                    Je comprends tout à fait l'intérêt, la question ne porte même pas sur les logiciels, mais sur l’environnement de travail.

                    Tu utilise un environnement maximaliste qui repose sur une très forte intégration de tout ce que tu utilise. C'est les principe même des IDE (de ma part ce n'est pas une critique). Utiliser git par exemple se fait normalement via des commandes génériques de vcs.

                    Je préfère utiliser une constellation d'outils qui sont intégrés les uns aux autres par mon shell. C'est une approche minimaliste dont l'intégration est principalement faite par ta connaissance de chaque outil. Utiliser git se fait par en utilisant la commande git brute de décoffrage.

                    Les deux se valent et même si ça n'était pas le cas ça n'a rien de très important. Ton utilisation n'influence en rien la mienne.

                    Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

                  • [^] # Re: Félicitations

                    Posté par  . Évalué à 2.

                    Comment tu fais, en zsh, pour renommer un lot de fichiers "foo-bar.xx" en "foo_bar.xx" ?

                    Tu peux utiliser zmv. Néanmoins, j’imagine que pour des cas plus complexes emacs doit être bien pratique.

                    Écrit en Bépo selon l’orthographe de 1990

                    • [^] # Re: Félicitations

                      Posté par  . Évalué à 2.

                      Il faut quand même aller assez loin dans la complexité pour qu'emacs prenne le pas vu qu'on peut réutiliser tous les modificateurs de variable et au moins une partie des globbings.

                      Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

                      • [^] # Re: Félicitations

                        Posté par  . Évalué à 2.

                        Merci, c'est puissant zmv, excellent pour des scripts et, en effet, nous avons deux approches différentes. Mais il y a bien un avantage à utiliser Emacs (c'est la question initiale, de savoir qu'a Emacs par rapport aux autres, et du coup par rapport au shell), c'est l'interactivité du mode d'édition. Avec zmv, on tape une commande de test, on regarde ce que ça donne. Avec Emacs, il faut sélectionner les fichiers, puis on utilise nos commandes d'édition habituelles, qui peuvent être interactives. Sublime et le shell n'ont pas ça. (je pense qu'on s'est compris mais au cas-ou: je ne parle pas de «puissance» ou de «meilleur» environnement, je souhaite juste montrer l'intérêt de réaliser ces opérations dans Emacs).

                        Lien vers helm-projectile: http://tuhdo.github.io/helm-projectile.html un peu bizarre au premier abord, mais très pratique. Il y a ces sortes de sélection avec vim, mais pas qui permettent de réaliser autant d'acions il me semble.

                        • [^] # Re: Félicitations

                          Posté par  . Évalué à 2.

                          il y a bien un avantage à utiliser Emacs […], c'est l'interactivité du mode d'édition.

                          Avec -p c'est interactif, il te demande de valider ou non le renommage. Le seul cas qui reste c'est si tu parle d'un renommage massif qui n'en est pas un. Si tu as les fichiers a.pdf, b.txt et c.png et que tu les renomme en salut.pdf, toto.txt et coucou.png. Ça me paraît assez tordu, j'aurais pas l'idée de le faire, mais pourquoi pas.

                          Pour helm, c'est une sorte de filtrage, c'est ça ? C'est nettement moins pratique, mais on peut reproduire une partie des cas avec print -l **/*(.) et soit rediriger dans un fichier soit utiliser les pipes. Je connaissais quelqu'un qui ne travaillait que comme ça (fran.b c'est à toi que je pense si tu passe dans le coin). C'est clairement moins pratique, mais ça dépanne très très bien et c'est plus souple (ça me donne l'occasion de montrer un avantage de l'approche découplé), tu peut le faire avec des listes de fichiers qui viennent d'ailleurs (comme la sortie d'une commande git), je suis pas certains que tu puisse travailler avec des copier-coller dans helm (comme quoi l'intégration n'est pas toujours parfaite).

                          Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

                          • [^] # Re: Félicitations

                            Posté par  . Évalué à 2.

                            Quand tu renommes avec cet outil de zsh, tu n'as pas accès à toutes les commandes d'édition d'un éditeur de texte. Le -p interactif n'a rien à voir avec. Là est l'avantage d'emacs par rapport à ta solution.

                            Si si tu peux copier-coller ce que tu veux quand t'utilise helm. (oui, c'est une sorte d'interface pour filtrer des choses, pas forcément des fichiers (des noms de fonction, la table des matières, …) et appliquer des actions dessus).

                            • [^] # Re: Félicitations

                              Posté par  . Évalué à 4.

                              Sinon, perso j’utilise « qmv », mais c’est de la triche, il utilise Vim en dessous.

                              Par contre, je lui trouve toujours un avantage par rapports aux solutions pures zsh ou emacs, c’est que ça me permet d’utiliser mon éditeur pour renommer des fichiers sans déplacer tous mon « workflow » dans l’éditeur de texte (jusqu’au lecteur de PDF ou de films).

                  • [^] # Re: Félicitations

                    Posté par  (site web personnel) . Évalué à 3.

                    Comment tu fais, en zsh, pour renommer un lot de fichiers "foo-bar.xx" en "foo_bar.xx" ?

                    $ rename 's%foo-bar%foo_bar%' *.xx

                    (en tout cas sur une debian avec rename un script perl /usr/bin/rename -> /etc/alternatives/rename -> /usr/bin/file-rename ; c'est différent sur des anciennes Redhat par exemple)

                    • [^] # Re: Félicitations

                      Posté par  (site web personnel) . Évalué à 2.

                      wdired n'est pas seulement interactif. Il est visuel. On édite les noms de fichier comme on édite du texte - d'où le fait qu'il soit utile à ceux qui ont de gros doigts. Bien sur on peut renommer par regexp plutôt que visuellement, mais on peut d'ailleurs aussi le faire en mode visuel.

                  • [^] # Commentaire supprimé

                    Posté par  . Évalué à 2.

                    Ce commentaire a été supprimé par l’équipe de modération.

      • [^] # Re: Félicitations

        Posté par  (site web personnel) . Évalué à 3.

        Ah, comment ai-je fait pour oublier org-mode… Le seul truc chiant, c'est la limitation à emacs/vim, parce que sinon, je préfère franchement ça à Markdown & co.

        • [^] # Re: Félicitations

          Posté par  . Évalué à 1.

          Ouhla, moi aussi ! Heureusement, github ou gitlab le reconnaissent :)

    • [^] # Re: Félicitations

      Posté par  . Évalué à 1.

      je crois que ton commentaire a 13 heures et 33 minutes d'avance.

    • [^] # Re: Félicitations

      Posté par  . Évalué à 10.

      Je ne connais pas sublime text en détails, mais de ce que j'en ai vu, il y a 2 gros arguments en faveur d'Emacs.

      Le premier est l'extensibilité et la cohérence. Un seul langage (elisp) permet de configurer et d'améliorer son editeur de texte. Tout est fait pour pouvoir insérer du code utilisateur partout avec le mécanisme de hook par exemple. Si tu veux envoyer un mail à chaque fois que tu sauvegardes un fichier c'est facile. Et tu as toutes les briques de bases pour te construire ton mode d'édition. Tu veux associer des séquences de touches à une fonction, tu as un object keymap pour ca. Tu veux donner une fonte particulière à zone de texte et si tu écris dans cette zone elle s'étend c'est un overlay qu'il te faut. Et tous ces objects sont des objects lisp que tu peux enrichir si le comportement ne te plait pas.
      Un truc con qui m'a fait définitivement passer de vim à Emacs, par exemple, c'est la zone de saisie de commande. Dans emacs, quand je veux taper une commande, je tape M-x et j'ai un tout petit buffer qui s'ouvre en bas dans lequel je tape ma commande. Mais ca reste un buffer avec les commandes et les mouvements classiques d'emacs. Si je veux avancer d'un mot, M-f par exemple. Dans vim, après avoir taper :, je ne peux pas passer en mode navigation dans la commande. C'est con, ma commande, c'est du texte et si c'est une grosse regexp bien velue, je veux pouvoir l'éditer facilement, chercher un pattern dedans…

      Le deuxième qui rejoint un peu la cohérence, c'est le poids de tous les hackers qui ont amélioré l'outil depuis 30 ans. Alors oui, ca va pouvoir être refait dans sublime text mais pour l'instant c'est pas le cas. Je donne 2 exemples. La sélection en 2 étapes. Ca parait pas pratique vu qu'il faut 2 étapes pour faire une séléction. Mais en fait, c'est une tuerie. Première étape, je démarre la sélection (C-space). Deuxième étape, j'ai les mains libres pour naviguer comme je veux jusqu'à la fin de la sélection. Que se soit en sautant des mots, des lignes, en cherchant un pattern… De ce que j'ai vu, sublime text, c'est à l'ancienne avec shift ou par mots/lignes, sans possibilité de selectionner 1 mot + une ligne…
      Ensuite la recherche de pattern dans un texte. C-s (oui je sais d'habitude c'est sauvegarde, mais bon c'est juste un binding on s'en fout). Donc "C-s toto" je cherche la premiere occurence de toto. C'est pas la bonne mais il me surligne la prochaine et c'est celle la que je veux. Ben C-s de nouveau et pouf je suis à celle d'après. C'est con, c'est rien mais c'est tellement cohérent que quand dans sublime test, C-f m'ouvre une recherche mais après faut faire F3 pour continuer je trouve ca pas pratique…

      Bon, je crois que j'explique trop long la… Je vais ptte ouvrir un site pour libérer mes pulsions de parler d'Emacs :)

      • [^] # Re: Félicitations

        Posté par  . Évalué à 5.

        Mais non, c'était passionnant :) ^ (vas-y, ou un simple journal ?)

      • [^] # Re: Félicitations

        Posté par  . Évalué à 7.

        Sisi on peut le faire dans vim :

        q:i

        Ouvrira la command line en mode edition dans un buffer (avec en prime l'historique des commandes).
        Cela existe aussi pour les recherches.

        Pour mapper ça directement sur le : / ?, à mettre dans le .vimrc

        nnoremap : q:i
        nnoremap / q/i
        nnoremap ? q?i

        • [^] # Re: Félicitations

          Posté par  (site web personnel) . Évalué à 3.

          Alors ça, c'est génial ! Merci beaucoup.

          Il existe deux catégories de gens : ceux qui divisent les gens en deux catégories et les autres.

          • [^] # Re: Félicitations

            Posté par  . Évalué à 1.

            Comment est ce que fait pour refermer ce buffer.

            Si je fais q/itruc il en ressort tout seul (comme si j'avais fait /truc, mais si je veux en sortir en court de frappe, ça donne quoi ? (d'habitude, je fait /tru et il annule la recherche).

            bépo powered

    • [^] # Re: Félicitations

      Posté par  . Évalué à 2.

      Pour info, Zed est un éditeur ressemblant à Atom et un peu trop dans son ombre: http://zedapp.org/

      • [^] # Re: Félicitations

        Posté par  (site web personnel) . Évalué à 2.

        Ça à l'air plus sympa qu'Atom (avec des sortes de buffers, et pas d'onglets).

        Il s'utilise en ligne de commande ?

        • [^] # Re: Félicitations

          Posté par  . Évalué à 1.

          Ah, ça non. Il est construit avec les technos web (htlm, javascript, CSS, etc).

          Les autres avantages comparé à Atom qu'il met en avant sont:
          - on peut l'utiliser comme extension Chrome
          - gestion native d'édition à distance à travers ssh
          - les extensions n'ont pas de dépôt centralisé (comme Sublime ou Atom)
          - effectivement, il utilise des buffers et pas des onglets (avec C-t on peut quand même voir une arborescence de fichiers)

          il existe un mode vim, très basique.

          Pour l'essayer il suffit de télécharger l'archive et double-cliquer sur l'icone.

          • [^] # Commentaire supprimé

            Posté par  . Évalué à 2. Dernière modification le 14 novembre 2014 à 13:08.

            Ce commentaire a été supprimé par l’équipe de modération.

            • [^] # Re: Félicitations

              Posté par  . Évalué à 3.

              Mes collègues développeurs ne savent même pas qu'Emacs24 a un gestionnaire de paquets (et qu'avant on avait el-get)… mais ils lisent linuxfr, donc si tu voulais rédiger un journal pour présenter ça et toutes les bonnes choses qu'on a évoqué, ce serait super :D

              note aux lecteurs: Alt-x list-packages

              • [^] # Commentaire supprimé

                Posté par  . Évalué à 4.

                Ce commentaire a été supprimé par l’équipe de modération.

            • [^] # Re: Félicitations

              Posté par  . Évalué à 2. Dernière modification le 14 novembre 2014 à 20:30.

              Sous vim, nous avons Vundle (et son fork NeoBundle) qui marchent plus ou moins respectivement comme le morceau de code qui installe automatiquement toutes les extensions avec le gestionnaire de paquets emacs et use-package.

  • # Autre chose que seuls Emacs et vim font…

    Posté par  (site web personnel) . Évalué à 2.

    La gestion de la sélection au clavier, c'est bien mais uniquement dans Emacs et vim (visual mode).

    Maintenir shift appuyé et bouger avec les flèches, ce n'est pas bien pratique. Vous connaissez des éditeurs de textes « récents » qui font ça correctement ?

    • [^] # Re: Autre chose que seuls Emacs et vim font…

      Posté par  . Évalué à 3.

      Je sais pas. IntelliJ a un mode intéressant qui consiste à agrandir la sélection de manière incrémentale. Tu te met sur un mot, tu fais Ctrl+w ça sélectionne le mot, encore Ctrl+w et c'est la phrase, puis la ligne, puis le paragraphe, etc

      Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

      • [^] # Re: Autre chose que seuls Emacs et vim font…

        Posté par  (site web personnel) . Évalué à 3.

        Emacs possède une mode similaire (expand-region), et même si on peut sélectionner des bouts de code, ou juste ce qu'il y a entre guillemets, ça reste assez différent.

        L'idée d'Emacs, c'est de poser une marque, et la sélection part de la marque jusqu'au curseur, que tu peux placer absolument n'importe où (genre après une recherche de mot avec regexps, ou 3 mots plus loin, ou en mode rectangulaire, etc.)

        • [^] # Re: Autre chose que seuls Emacs et vim font…

          Posté par  . Évalué à 3.

          Je sais c'est pour ça que je dis que je sais pas.

          Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

        • [^] # Re: Autre chose que seuls Emacs et vim font…

          Posté par  (site web personnel) . Évalué à 2.

          Petite précision : les commandes classiques de recherche (C-s, C-r et leurs variantes travaillant sur les regexps ESC C-s, ESC C-r) ainsi que beginning-of-buffer (C-home) et end-of-buffer (C-end) posent automatiquement une marque là où se trouvait le curseur (« point ») avant leur appel lorsqu'elles se terminent normalement (pas avec C-g). Cela dispense donc souvent de poser la marque comme première étape pour définir une région sélectionnée.

          • [^] # Re: Autre chose que seuls Emacs et vim font…

            Posté par  (site web personnel) . Évalué à 2.

            C'est vrai, mais ce n'est pas spécialement plus rapide, puisqu'il faut faire C-x C-x, histoire d'échanger le point et la marque pour avoir une sélection, ce qui ne me semble pas mieux qu'un C-SPC avant de partir.

            Les marques laissés par ces commandes sont pratiques pour revenir où tu étais (soit après un C-g, et la commande le fait toute seule, soit à la main avec un C-x C-SPC). Après, peut-être que tu y vois quelque chose de plus pratique que je n'ai pas vu.

            • [^] # Re: Autre chose que seuls Emacs et vim font…

              Posté par  (site web personnel) . Évalué à 2.

              Exemple tout simple : supposons que tu souhaites tout couper (« killer ») à partir de la position courante jusqu'à la fin du buffer. Il suffit de taper C-end C-w. Pas besoin de faire C-SPC avant. Pour copier le même texte : C-end M-w. Pour copier entre la position courante et une position quelconque obtenue par recherche incrémentale : C-s ... M-w, etc.

  • # indentation

    Posté par  . Évalué à 4.

    J'aimerais tellement que vim possède une indentation aussi intelligente que celle d'emacs. Malgré la configuration et des recherches je n'arrive décidément pas…Avec emacs je peux tout indenter un uniquement via tab. C'est super notamment en python

  • # Bug dans tramp

    Posté par  . Évalué à 2.

    Je viens de trouver un bug dans le mode tramp de 24.4.1.

    http://debbugs.gnu.org/cgi/bugreport.cgi?bug=19047

    Pour faire simple, lors d'une connection ssh/scp, au lieu de demander 3 fois la passhrase et 3 fois le password, tramp demande 1 fois la passphrase, l'envoit 4 fois (donc 3 fois comme une passphrase puis 1 fois comme un password) puis demande 2 fois le password.

    Si ce bug m'était arrivé sur mon serveur web externe alors je serais blacklisté pour 48h :-(

  • # Menu en mode console

    Posté par  . Évalué à 3.

    Ce n'est pas que j'utilise beaucoup les menus dans emacs mais cela peut dépanner quand on a oublié une commande ou un raccourci clavier. Leur nouveau mode d'affichage en mode console (F10 menu-bar-open) semble prometteur. Cela ne pouvait être pire que le précédent qui ne ressemblait vraiment à rien.

    C'est visuellement agréable mais il y a toutefois encore quelques petits problèmes:
    - quelques erreurs d'affichage quand on se déplace rapidement.
    - la navigation dans les sous-menus n'est pas vraiment intuitive (ENTER pour entrer mais peut on ressortir?)
    - incompatible avec xterm-mouse-mode.

    • [^] # Re: Menu en mode console

      Posté par  . Évalué à 0.

      • la navigation dans les sous-menus n'est pas vraiment intuitive (ENTER pour entrer mais peut on ressortir?)

      Je suppose que tu as essayé ESC pour sortir? Voire CTRL+C, sait-on jamais? 'fin bon, suis pas utilisateur d'emacs, alors je ne sais pas, je suggère :)

  • # Les trolls se perdent...

    Posté par  (site web personnel) . Évalué à 4.

    On a une news sur Emacs présente depuis une trentaine d'heure, qui a dépassé les 120 commentaires, et nous sommes vendredi après-midi.
    Et pourtant, pas un seul troll sur le nombre de doigts nécessaires à une utilisation optimale de cet outil ?
    Non mais franchement, c'est quoi ça ! Les bons vieux trolls ont donc tous disparus ?

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.