Olivier Web Garden

Tout faire avec linux...

Accueil > Articles > Linux > Emacs > Dompter Emacs #1 Retrouvailles

Dompter Emacs #1 Retrouvailles

mardi 19 février 2019, par Olivier K.

Dompter Emacs raconte sous forme de feuilleton mon retour à cet éditeur de texte et ma tentative d’aller le plus loin possible dans sa compréhension pour faire deux choses : écrire du texte (documentation, nouvelle, roman) et coder en python. Deux choses qui paraissent incompatibles puisque l’on a des IDE pour le code et des traitements de texte pour les écrits.

Objectif

L’objectif est de voir si je peux considérer Emacs comme l’éditeur universel.

Il ne s’agit pas de singer un traitement de texte ou un IDE mais de voir si Emacs a les capacités pour permettre d’écrire des textes ou de coder en python.

Pour la partie écriture, j’aimerai me rapprocher de ce que fait un traitement de texte : écrire du texte, insérer des images, corriger les fautes, mettre en forme un texte en respectant les normes typographiques françaises.

Mais également, s’il peut m’aider à organiser mes écrits jusqu’à produire un document au format désiré (OpenDocumenT, epub, pdf ou html)

Au moment où j’écris ces lignes (19 février 2019), je ne sais pas si je vais y arriver.

Pour pouvoir avancer dans l’utilisation d’Emacs pour écrire, je dois écrire quelque chose de spécifique. Ce sera la production d’un ouvrage au format epub (et sans doute pdf) à partir de cette série d’articles.

Redécouvrir Emacs

J’ai installé Emacs le plus simplement possible sous Ubuntu 18.10 : sudo apt install emacs.
J’ai ajouté le paquet emacs-common-non-dfsg pour pouvoir avoir la documentation complète installée. Cela peut paraître curieux mais c’est un problème de licence qui fait que la documentation complète n’est pas installée par défaut.

Gnu Emacs est un logiciel ancien (35 ans) mais qui est mis à jour et amélioré régulièrement (la version 26.1 est sortie en 2018). Ubuntu 18.10 propose la version 25.2.

Emacs s’utilise de plusieurs façon : en mode application ou en mode serveur sur lequel on se connecte à l’aide d’un client.

Pour commencer, je vais utiliser la version application.

Emacs s’utilise en mode graphique ou en mode texte. Je vais utiliser le mode graphique en premier pour bénéficier de la souris et de la barre de menu.

Comment utiliser Emacs ?

Dompter Emacs n’a pas vocation a réécrire la documentation. C’est juste une expérience sur un projet.

Pour faire ses premiers pas, je vous conseille fortement de faire le tutoriel intégré à Emacs. Il est en français et à la fin, vous aurez de bonnes bases pour utiliser Emacs. Ensuite, il y a la très importante documentation intégré tout en anglais.

La meilleure école pour connaître tous les bons raccourcis est de pratiquer Emacs en les utilisant (ce conseil est d’ailleurs valable pour toutes les applications).

Les touches spécifiques d’Emacs

Après avoir pratiqué le tutoriel, on est armé de nouveaux raccourcis clavier mais il y en a quelques uns supplémentaires que je trouve très utile :

- M-h M-q  : combinaison de deux raccourcis qui fonctionnent déjà séparément.
M-h sélectionne le paragraphe sous le curseur (un paragraphe est séparé par deux lignes vides) et M-q le remet en forme en fonction de l’indentation choisie : par défaut justifié à gauche.
- C-t : inverse les deux caractères autour du curseur (ex. ne devient en)
- g : en vue dired (dossier ou répertoire) : permet de rafraichir l’affichage d’une liste de répertoire.

Rappel des touches selon Emacs :

C : Ctrl ; M : Alt ou Esc ; SPC : barre Espace ; RET : Entrée ; Del : Retour Arrière (et pas Suppr !)

Couper / Copier / Coller : C - w / M - w / C - y

Si vous avez fait le tuto, vous savez que C- x / C - c / C - v servent à autre chose.

M - x + texte est l’entrée universelle pour trouver une commande, activer un mode mineur etc.

Les modes

Pour bien comprendre le fonctionnement d’Emacs, il faut s’arrêter sur les modes. Quand on lance Emacs, on arrive sur le mode fondamental qui n’a pas de spécificité particulière. Quand on lance Emacs avec ouverture d’un fichier alors Emacs se positionne dans un des modes
majeurs. Ce mode est déterminé par l’extension du fichier (Si vous ouvrez un fichier sans extension ce sera le mode fondamental).

Pour écrire, on a les modes majeurs suivant :

- Text mode ;
- HTML mode ;
- SGML mode ;
- TeX mode ;
- Outline mode.

Il y a également des modes majeurs pour les langages de programmation (C, lisp etc.)

En réalité un mode est lié à un type de buffer. Quand on ouvre un fichier texte, on créé un buffer et à celui ci est associé le mode Text.

La barre de menus d’Emacs s’adapte automatiquement au mode majeur du buffer.

Il existe également des modes majeurs qui ne sont pas liés à des extensions de fichiers. Ainsi quand on tape la commande M- ! on ouvre un buffer de type terminal qui permet de lancer une commande comme python3 main.py pour exécuter un script python.

Un mode majeur peut être complété par l’utilisation d’un mode mineur qui permet de faire des actions spécifiques sur le contenu du buffer.

Changer de thème

Emacs est hautement configurable. Par défaut, Emacs affiche un thème clair. En 2019, un thème clair, c’est le mal...

Il est possible de le modifier en deux clics de souris. Aller dans le menu Options > Customize Emacs > Custom Theme

Choisir un thème dans la liste : exemple de thème sombre pas trop agressif pour mes yeux : wombat.

Il est également possible d’importer un thème ou de créer son propre thème. Ce n’est pas mon propos pour l’instant...

La configuration d’Emacs est également un gros morceau que je verrai petit à petit en fonction des besoins du projet.

Naviguer sur internet

Il est possible de parcourir des site internet avec Emacs. Aller dans le menu Tools > Browse the Web

Ensuite taper l’url du site à visiter (attention par défaut http) : ex. https://www.olivierwebgarden.fr

Le site s’affiche dans Emacs et il est pleinement consultable...

Vous pouvez mettre un signet (bookmark) en tapant b.

Si vous tapez seulement Entrée, sans mettre d’Url alors vous arrivez sur le moteur de recherche DuckDuckGo.

C’était l’exemple d’un truc possible sous Emacs mais pas sous LibreOffice...


Voir en ligne : https://www.gnu.org/software/emacs/