Emacs (prononcer imacs) est un logiciel à part dans le monde du libre : c'est un puissant logiciel, qui a comme principal tâche d'éditer des textes, comme le fait Vi(m). Mais il sait également lire son courrier éléctronique, bavarder sur IRC, regarder ses images... En un mot, Emacs sait tout faire, il se limite juste à votre imagination ! Il y a une grande rivalité entre les utilisateurs d'Emacs et de Vi. Emacs est critiqué par ses détracteurs pour être une usine à gaz, d'être complexe...(ce qui n'est pas vrai) Pourquoi Emacs alors ? Simplement parce que une seule et unique application vous permet de tout faire ! A vous d'essayer et de choisir.
Emacs est différent des autres éditeurs de textes parce qu'il est à la fois un éditeur, et aussi un interpréteur de LISP. Sous ce nom, se cache un puissant langage qui permet de faire ce que l'on veut avec le programme. Vous pouvez programmer vous même vos propre fonctions pour Emacs !
Ensuite, mettons les fichiers de configuation d'Emacs :
%tar zxvf ~/config/emacs.tar.gz ~/
ou si vous n'avez pas suivi la formation depuis le début :
%wget http://formation-debian.via.ecp.fr/fichiers-config/emacs.tar.gz%tar zxvf emacs.tar.gz ~/
On peut enfin lancer Emacs :
%emacs&
RET : frappe de la touche ENTREE
DEL : frappe de la touche Suppr
SPC : frappe de la touche Espace
C-x : frappe de la touche Ctrl et de la touche x simultanément
M-x : frappe de la touche Shift puis de la touche x
M-x commande : frappe de la toucheShift puis de la touche x, puis tapper commande>
Si vous voyez qu'Emacs n'en fait qu'a sa tête, appuyez sur C-g, ce qui remet à zéro l'opération en cours.
Quitter Emacs : C-x C-c
Ouvrir (Créer) un fichier : C-x C-f
Insérer un fichier au niveau du curseur : C-x i
Suspendre Emacs : C-z
Ouvrir un autre fichier à la place : C-x C-v
Sauvegarder un fichier : C-x C-s
Sauvegarder sous un autre nom : C-x C-w
Avancer d'un caractère : C-f
Reculer d'un caractère : C-b
Monter d'une ligne : C-p
Descendre d'une ligne : C-n
Avancer d'un mot : M-f
Reculer d'un mot : ESC b
Aller au début de la ligne : C-a
Aller en fin de ligne : C-e
Avancer d'un écran : C-v
Reculer d'un ecran : M-v
Aller au début d'un fichier : M-<
Aller à la fin du fichier : M->
Supprimer un caractère : C-d
Supprimer le caractère après : Suppr
Supprimer un mot : M-d
Supprimer une ligne : C-k
Sous Emacs, vous devez marquer dans une région le texte que vous voulez supprimer/copier/coller. Une région est entre ce que vous voulez supprimer/copier/coller, et la fin de ce que vous voulez supprimer/copier/coller.
Marquer une région : C-SPC
Supprimer la région de texte : C-w
Couper une région : C-y
Coller une région : M-w
Annuler le dernier changement : C-x u
Annuler tous les changements depuis la dernière fois que vous avez enregistré : M-x revert-buffer RET
Fixe la région autour du paragraphe courant (déplace le point au début, et la marque à la fin) : M-h
Fixe la région autour du buffer entier : C-x h
Les registres d'Emacs sont des espaces mémoires où l'utilisateur peut enregistrer du texte ou une position de texte, et les rappeler plus tard. Un registre est reconnu suivant une lettre.
Sauvegarder la position du point dans le registre m : C-x r SPC m
Déplace le point à la position du registrer m : C-x r j m
Copie la région dans le registre m : C-x r s m
Insère le texte du registre m : C-x r i m
Recherche en avant : C-s
Recherche en arrière : C-r
Arrêt de la recherche: RET
Rechercher et remplacer par : M-%
Remplacer et aller à l'autre occurence SPC
Ne pas remplacer et aller à l'autre occurence : n
Remplacer et en arrêter là : .
Les buffers sont une zone mémoire où Emacs stocke les fichiers édités. Ils permettent la manipulation de plusieurs fichiers avec un seul et unique Emacs.
Aller à un buffer spécifié : C-x b
Afficher la liste des buffers : C-x C-b
Supprimer le buffer spécifié : C-x k
Sous Emacs, on peut diviser son écran pour afficher plusieurs buffers. On peut ainsi travailler, naviguer entre les buffers sous une seule et unique fenêtre.
Ferme la fenêtre actuelle : C-x 0
Supprimer toutes les fenêtres, sauf sur laquelle on est : C-x 1
Créer deux fenêtres, horizontalement : C-x 2
Créer deux fenêtres, verticalament : C-x 3
Passer d'une fenêtre à une autre : C-x o
Emacs n'est pas juste un simple éditeur de texte. Il est capable aussi d'afficher vos images, de jouer de la musique, de bavarder sur IRC, d'être un excellent client de mails et de news, un complement idéal à vos document LaTeX ...
En un mot, Emacs peut tout faire !
Sous Emacs, tout est configurable, et les couleurs n'échappent pas à la règle. Heureusement, pour éviter d'avoir à redéfinir les couleurs de chaque élément ou mot-clef à la main (il y en a énormément !), vous pouvez utiliser des thèmes. Vous pouvez vous faire une idée des thèmes disponibles à cette adresse.
Dans le fichier de configuration d'Emacs : ~/.emacs, le choix du thème se trouve des lignes 101 à 106. Il suffit de décommenter la ligne correspondante au color-theme que vous désirez comme ceci :
;; Theme ;;(color-theme-rotor) ;;(color-theme-arjen) (color-theme-blue-mood) ;;(color-theme-andreas)
Dans ce cas, le thème utilisé sera blue-mood.
#apt-get install emacsclient
Emacs est très puissant, mais cette puissance a un inconvénient : il prend plusieurs secondes à se lancer. Il n'est donc pas très agréable de le lancer à chaque fois que l'on souhaite éditer un fichier. D'autre part, souvent, vous travaillez en console, et ça vous embête de devoir réécrire le chemin absolu du fichier que vous souhaitez éditer alors qu'il est dans le répertoire courant dans votre console.
Heureusement, il y a une solution : Emacsclient. Ce programme permet d'ouvrir un fichier dans Emacs depuis un terminal. Pour l'utiliser, vous devez décommenter la ligne 64 du fichier de configuration .emacs comme ceci :
(server-start)
Ensuite, dans une console, il suffit juste de taper :
%emacsclient -n fichier
et le fichier « fichier » sera ouvert dans Emacs. Si vous vous servez régulièrement de Emacsclient, il peut etre plus pratique d'ajouter dans votre .zshrc l'alias :
# emacsclientalias e='emacsclient -n'
et il suffira alors de taper :
%e fichier
pour ouvrir le fichier « fichier » dans emacs.
Emacs permet aussi de naviguer dans ses répertoires d'images. Pour pouvoir l'utiliser pleinement, il faut tout d'abord installer le paquet imagemagick :
#apt-get install imagemagick
Puis taper la commande suivante : M-x thumbs-show-all-from-dir
Vous pouvez tabulez pour automatiser la saisie, comme en console.
Spécifiez le répertoire que vous voulez naviguer, et validez par RET
#apt-get install mpg123-el
Pour que vous puissiez utiliser mpg123 sous Emacs, il faut décommenter la ligne 40 du fichier de configuration ~/.emacs comme ci-dessous :
;; Mode mpg123-el(require 'mpg123)
puis lancer mpg123 par la combinaison : M-x mpg123
Spécifier le répertoire que vous voulez naviguer, et valider par RET. Donner le réportoire où est stockée votre musique, et valider par RET. Emacs joue pour vous !
#apt-get install erc
Pour que vous puissiez utiliser erc, il faut décommenter la ligne 36 du fichier de configuration ~/.emacs comme ci-dessous :
;; Mode IRC pour emacs(require 'erc)(require 'erc-nick-colors)
Maintenant, imaginons que vous vouliez rejoindre le chan #test sur Freenode. Sous Emacs, il faut faire :
M-x erc-select
rentrer « irc.freenode.net » dans le champ « IRC server »,
rentrer « ircd » dans le champ « IRC port »,
rentrer votre nick (pseudo) dans le champ « Nickname »,
et enfin, si vous vous êtes déjà enregistrés sur freenode, rentrez votre mot de passe, sinon, appuyez juste sur RET
Vous êtes maintenant connectés sur Freenode. Pour rejoindre le chan #test, vous avez le choix :
soit à la main, en tapant :
ERC>/join #test
soit avec le raccourci clavier C-c C-j puis en rentrant « #test » dans le champ « Join channel ».
Pour quitter le chan, le raccourci est C-c C-p, ce qui est équivalent à :
ERC>/part
Chaque fois que vous voulez rejoindre un nouveau chan, un nouveau buffer est ouvert. Pour changer de chan, il suffit donc juste de changer de buffer avec le raccourci C-c b. Pour que la liste des buffers ne contienne que les buffers concernant erc, il faut taper C-c C-b.
Astuce : Avec le raccourci C-c SPC, vous rejoignez le buffer dont l'activité non constatée est la plus ancienne (typiquement, les chans où on a parlé que vous n'avez pas lu). C'est extrêmement pratique !
Voici quelques lignes à ajouter dans le fichier .emacs pour automatiser certaines actions :
Pour rejoindre les chans #test et #test2 de Freenode ainsi que le chan #test de irc.netrusk.net automatiquement lorsque l'on se connecte au serveur irc, il suffit d'ajouter dans le .emacs :
(require 'erc-autojoin)
(erc-autojoin-mode 1)
(setq erc-autojoin-channels-alist
'(("irc.freenode.net" "#test" "#test2")
("irc.netrusk.net" "#test")))
Pour beeper sur les mots « debian » et « emacs » :
(require 'erc-match)
(setq erc-keywords '("debian" "emacs"))
(erc-match-mode)
Que tout le monde ait le plaisir de savoir qui vous êtes :
(setq erc-user-full-name "Prénom Nom") (setq erc-email-userid "pseudo@machine")
Pour enregistrer les logs des conversations dans le fichier ~/.irclogs
(setq erc-log-insert-log-on-open nil) (setq erc-log-channels t) (setq erc-log-channels-directory "~/.irclogs/") (setq erc-save-buffer-on-part t) (setq erc-hide-timestamps nil)
Même si Emacs dispose d'un mode LaTeX par défaut, celui-ci est extrêmement rudimentaire. Au contraire, grâce au module AucTeX, Emacs devient l'environnement idéal pour faire du LaTeX. À chaque ouverture d'un nouveau fichier .tex, Emacs vous demande interactivement la classe de votre document, les packages que vous souhaitez utiliser ainsi que leurs options.
Pour les gros projets, il est souvent nécessaire de découper le fichier source en un fichier maître et plusieurs petits fichiers esclaves. Grâce à AucTeX, vous pouvez dire pour chaque fichier esclave qui est son maître, et lorsque vous lancerez sa compilation, ce sera le fichier maître qui sera compilé.
Il y a également un bon nombre de raccourcis clavier. En voici certains :
pour ouvrir un nouvel environnenent : C-c C-e,
pour fermer l'environnement en cours : C-c ],
pour ajouter un nouvel \item : C-c C-j,
pour lancer la compilation/visualisation/conversion du fichier maître : C-c C-c,
pour commenter/décommenter une région : C-c ;,
pour insérer une macro : C-c RET,
pour accéder à la documentation d'AucTeX : C-c TAB,
pour accéder à Texdoc : C-c ?.