Recherche de site Web

Pourquoi j'aime Emacs


Emacs n'est pas un simple éditeur de texte ; il vous donne le contrôle et vous permet de résoudre presque tous les problèmes que vous rencontrez.

Je suis un utilisateur habituel d'Emacs. Je n'ai pas autant choisi Emacs que lui m'a choisi. À l’époque où j’ai découvert Unix, je suis tombé sur une fonctionnalité peu connue d’une étrange application appelée Emacs, qui était apparemment cachée sur mon ordinateur. La légende raconte (et s'est avérée vraie) que si vous tapiez emacs dans un terminal, appuyiez sur Alt+X et tapiez tetris , vous pourriez jouer à un jeu de blocs qui tombent.

C'était mon introduction à GNU Emacs. Même si c'était frivole, c'était aussi une indication précise de ce qu'est Emacs : l'idée que les utilisateurs peuvent reprogrammer leurs mondes (virtuels) et faire tout qu'ils veulent avec une application. Jouer à Tetris dans votre éditeur de texte n'est probablement pas votre objectif principal au quotidien, mais cela montre qu'Emacs est fièrement une plateforme de programmation. En fait, vous pourriez le considérer comme une sorte de précurseur de Jupyter, combinant un langage de programmation puissant (appelé elisp, pour être exact) avec son propre environnement live. En conséquence, Emacs est un éditeur de texte flexible, personnalisable et puissant.

Elisp (et Common Lisp, par extension) ne sont pas nécessairement les langages les plus faciles à utiliser si vous êtes habitué à Bash ou Python ou à des langages similaires. Mais les dialectes LISP sont puissants, et comme Emacs est un interpréteur LISP, vous pouvez créer des applications, qu'il s'agisse de plugins Emacs ou de prototypes de quelque chose que vous souhaitez développer dans un projet autonome. Le projet org-mode très populaire n'est qu'un exemple : il s'agit d'un plugin Emacs ainsi que d'une syntaxe markdown avec des applications mobiles pour interpréter et étendre ses capacités. Il existe de nombreux exemples d'applications tout aussi utiles dans Emacs, notamment un client de messagerie, une visionneuse PDF, un navigateur Web, un shell et un gestionnaire de fichiers.

Deux interfaces

GNU Emacs possède au moins deux interfaces utilisateur : une interface utilisateur graphique (GUI) et une interface utilisateur de terminal (TUI). Cela surprend parfois les gens car Emacs est souvent opposé à Vi, qui s'exécute dans un terminal (bien que gVim fournisse une interface graphique pour une implémentation moderne de Vi). Si vous souhaitez exécuter GNU Emacs en tant qu'application de terminal, vous pouvez le lancer avec l'option -nw :

$ emacs -nw

Avec une interface graphique, vous pouvez simplement lancer Emacs depuis le menu de votre application ou un terminal.

Vous pourriez penser qu'une interface graphique rend Emacs moins efficace, comme si « de vrais éditeurs de texte s'exécutaient dans un terminal », mais une interface graphique peut rendre Emacs plus facile à apprendre car son interface graphique suit certaines conventions typiques (une barre de menus, des widgets réglables, une interaction avec la souris, et ainsi de suite).

En fait, si vous exécutez Emacs en tant qu'application GUI, vous pouvez probablement passer la journée sans remarquer que vous êtes dans Emacs. La plupart des conventions habituelles s'appliquent, à condition d'utiliser l'interface graphique. Par exemple, vous pouvez sélectionner du texte avec votre souris, accéder au menu Édition, sélectionner Copier, puis placer votre curseur ailleurs et sélectionner Coller. . Pour enregistrer un document, vous pouvez accéder à Fichier et Enregistrer ou Enregistrer sous. Vous pouvez appuyer sur Ctrl et faire défiler vers le haut pour agrandir la police de votre écran, vous pouvez utiliser la barre de défilement pour naviguer dans votre document, etc.

Apprendre à connaître Emacs sous sa forme GUI est un excellent moyen d'aplatir la courbe d'apprentissage.

Raccourcis clavier d'Emacs

GNU Emacs est tristement célèbre pour ses combinaisons de clavier complexes. Non seulement ils ne sont pas familiers (Alt+W pour copier ? Ctrl+Y pour coller ?), mais ils sont également notés avec une terminologie obscure ("Alt" est appelé "Meta"), et parfois ils viennent par paires (Ctrl+X suivi de Ctrl+S pour enregistrer) et d'autres fois seul (Ctrl+S pour rechercher). Pourquoi quelqu’un choisirait-il délibérément d’utiliser cela ?

Eh bien, certains ne le font pas. Mais ceux qui le font sont fans de la façon dont ces combinaisons s'intègrent facilement au rythme de la frappe quotidienne (et font souvent office de touche Caps Lock de touche Ctrl). Ceux qui préfèrent quelque chose de différent ont cependant plusieurs options.

  • Le mode evil vous permet d'utiliser les raccourcis clavier Vim dans Emacs. C'est aussi simple que cela : vous conservez les combinaisons de touches que vous avez affectées à la mémoire musculaire et vous héritez de l'éditeur de texte le plus puissant disponible.
  • Les touches d'accès utilisateur commun (CUA) conservent toutes les combinaisons de touches Emacs habituelles, mais les plus choquantes (copier, couper, coller et annuler) sont toutes mappées à leurs liaisons modernes (Ctrl+ C, Ctrl+X, Ctrl+V et Ctrl +Z, respectivement).
  • La fonction global-set-key, qui fait partie du côté programmation d'Emacs, vous permet de définir vos propres raccourcis clavier. Traditionnellement, les raccourcis définis par l'utilisateur commencent par Ctrl+C, mais rien ne vous empêche d'inventer votre propre schéma. Emacs n'est pas précieux pour sa propre identité. Vous pouvez le plier à votre guise.

Apprendre Emacs

Il faut du temps pour devenir très bon avec Emacs. Pour moi, cela signifiait imprimer une aide-mémoire et la garder à côté de mon clavier toute la journée, tous les jours. Quand j'oubliais une combinaison de touches, je la cherchais sur mon aide-mémoire. Si ce n'était pas sur mon aide-mémoire, j'ai appris la combinaison de touches, soit en exécutant la fonction et en notant comment Emacs m'a dit que je pouvais y accéder plus rapidement, soit en utilisant describe-function :

M-x describe-function: save-buffer

save-buffer is an interactive compiled Lisp function in ‘files.el’.

It is bound to C-x C-s, <menu-bar> <file> <save-buffer>.
[...]

Au fur et à mesure que vous l'utilisez, vous l'apprenez. Et plus vous en apprenez, plus vous devenez habilité à l’améliorer et à vous l’approprier.

Essayez Emacs

C'est une plaisanterie courante de dire qu'Emacs est un système d'exploitation avec un éditeur de texte inclus. Cela vise peut-être à insinuer qu'Emacs est volumineux et trop complexe, et il y a certainement un argument selon lequel un éditeur de texte ne devrait pas nécessiter libpoppler selon sa configuration par défaut (vous pouvez compiler Emacs sans lui).

Mais il y a une plus grande vérité qui se cache derrière cette blague, et elle révèle beaucoup de choses sur ce qui rend Emacs si amusant. Cela n'a pas de sens de comparer Emacs à d'autres éditeurs de texte, comme Vim, Nano ou même VSCodium, car la partie vraiment importante d'Emacs n'est pas l'idée que vous pouvez taper des éléments dans une fenêtre et les enregistrer. C'est une fonctionnalité de base fournie même par Bash. La véritable signification d'Emacs est de savoir comment il vous donne le contrôle et comment, grâce à Emacs Lisp (Elisp), presque tous les problèmes peuvent être résolus.

Articles connexes: