Parlons d'emacs...

This commit is contained in:
george 2003-06-16 13:35:21 +00:00
parent e253a1f6a3
commit 54a54e5ea1

View file

@ -14,7 +14,7 @@
<p>
Nous allons voir ici comment taper de l'Unicode, ce qui recouvre plus ou
moins toutes les langues et tous les alphabets bizarres de la planète, et
êut-être même d'au delà (l'intégration du Tengwar est en discussion).
peut-être même d'au delà (l'intégration du Tengwar est en discussion).
</p>
</div>
@ -39,6 +39,11 @@ et configurer un
caractères qui ne sont pas disponibles sur le clavier.
</p>
<p>
Note : partout dans ce texte, quand il sera question d'un fichier en
Unicode, ça sous-entendra un fichier codé en UTF-8.
</p>
<h3>Choisir un éditeur</h3>
<p>
@ -76,6 +81,21 @@ attendant il est possible de le lancer en affichage distant.
</p>
</div>
<div class="attention">
<h1>&icone.attention; Attention &icone.attention;</h1>
<p>
Un terminal Unicode est un terminal très particulier. Si vous lancez dedans
une application qui ne connaît pas Unicode, il est très probable qu'elle
fasse à peu près n'importe quoi (et le pire c'est que ça peut passer
inaperçu pendant un temps). Donc n'utilisez de terminal Unicode que pour des
applications prévues pour.
</p>
<p>
Ceci concerne en particulier Pine, ainsi que Flrn (Forum ; même si celui-ci
a un semblant d'options pour gérer Unicode).
</p>
</div>
<p>
Si on n'a pas à sa disposition le script uxterm, mais qu'on est sous Unix,
on peut quand même lancer xterm avec les bonnes options :
@ -108,8 +128,19 @@ que ce soit un code qui existe.
</p>
<p>
Il est possible également d'obtenir un terminal en Unicode quand on est
connecté depuis windows ou macos. Mais je ne sais pas comment on fait.
Sous windows, avec
<a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/">PuTTY</a>,
il est possible d'avoir un terminal Unicode : dans les options de la
connexion, dans la rubrique « Window », sous-rubrique « Translation »,
indiquez <code>UTF-8</code> à « Character set translation on received
data ».
</p>
<p>
Sous macos, avec Terminal.app, il est également possible d'avoir un terminal
Unicode : dans le menu « Terminal, Réglages de la fenêtre », sous-menu
« Affichage », sous-sous-menu « Codage du jeu de caractères »,
choisissez « Unicode (UTF-8) ».
</p>
<h3>Un éditeur au courant</h3>
@ -136,7 +167,50 @@ avec l'option <code>fileencoding</code>.
</p>
<p>
<strong>Avec Emacs</strong>, je n'ai aucune idée de comment on procède.
<strong>Avec Emacs</strong>, cela dépend de la version. Nous ne parlerons
que de la <em>version 21.3</em> (qui sera très prochainement&#8482;
installée à l'ENS ; ce sera probablement vrai aussi pour les versions
ultérieures).
</p>
<p>
Si l'on utilise Emacs en mode graphique, il n'arrive pas forcément à trouver
tout seul les bonnes polices (on peut taper correctement, mais tous les
caractères exotiques sont affichés comme des carrés). Une solution est de
mettre la ligne suivante dans votre fichier <code>.Xresource</code> qui se
trouve dans votre répertoire personnel :
</p>
<pre>
Emacs.font: 9x15
</pre>
<p>
Pour qu'Emacs veuille travailler en Unicode, le mieux est de le lancer en
ayant positionné <code>LC_CTYPE</code>. Si ce n'est pas fait, on peut le lui
dire a posteriori avec <kbd>M-x prefer-coding-system</kbd>, puis
<kbd>mule-utf-8</kbd> ; cependant, certaines facilités (comme compose-o-e
pour &oelig; ne seront ainsi pas disponibles.
</p>
<p>
Si on lance Emacs dans un terminal il faut faire une manipulation
supplémentaire : <kbd>M-x set-keyboard-coding-system</kbd> puis
<kbd>mule-utf-8</kbd>.
</p>
<p>
Quand vous ouvrez un fichier qui n'est pas en Unicode, Emacs va peut-être le
détecter correctement. Pour le savoir, regardez en bas à gauche : un
<code>u</code> indique un fichier en Unicode, un <code>1</code> indique un
fichier en latin-1. À la sauvegarde, Emacs tentera de garder le même codage,
et à défaut passera en Unicode).
</p>
<p>
Dans le cas de Vim comme d'Emacs, il est possible d'aider la détection
automatique et le choix du codage d'un fichier. Nous ne nous y attarderons
pas dans cette page : travaillez tout le temps en Unicode quand le latin-1
ne suffit pas et tout se passera bien.
</p>
@ -161,12 +235,12 @@ occidental, il est possible de changer de mode.
</p>
<ul>
<li>Avec <code>Compose-a-a</code>, on passe en <strong>arabe</strong>.</li>
<li>Avec <code>Compose-c-c</code>, on passe en <strong>cyrillique</strong>.</li>
<li>Avec <code>Compose-g-g</code>, on passe en <strong>grec</strong>.</li>
<li>Avec <code>Compose-h-h</code>, on passe en <strong>hébreu</strong>.</li>
<li>Avec <code>Compose-t-t</code>, on passe en <strong>thai</strong>.</li>
<li>Avec <code>Control-espace</code>, on revient en occidental.</li>
<li>Avec <kbd>Compose-a-r</kbd>, on passe en <strong>arabe</strong>.</li>
<li>Avec <kbd>Compose-c-c</kbd>, on passe en <strong>cyrillique</strong>.</li>
<li>Avec <kbd>Compose-g-g</kbd>, on passe en <strong>grec</strong>.</li>
<li>Avec <kbd>Compose-h-h</kbd>, on passe en <strong>hébreu</strong>.</li>
<li>Avec <kbd>Compose-t-t</kbd>, on passe en <strong>thai</strong>.</li>
<li>Avec <kbd>Control-espace</kbd>, on revient en occidental.</li>
</ul>
<p>
@ -177,15 +251,49 @@ mode, mais
PC.
</p>
<p>
Le fonctionnement exact ce ces méthodes d'entrées est décrit dans le fichier
<code>/usr/local/util/packages/xterm/lib/X11/locale/en_US.UTF-8/Compose</code>.
Ce n'est pas très lisible, on en fera peut-être un jour un tableau
récapitulatif. De toutes façons, il ne s'agit que d'une touche compose un
peu enrichie (mode occidental), ou d'un simple changement des touches qu'on
détermine en quelques essais.
</p>
<h3>Les méthodes d'entrée d'Emacs</h3>
<p>
Emacs possède lui-même un nombre assez important de méthodes d'entrée.
Celles-ci sont plus confortables et plus puissantes que celles d'uxterm ;
en particulier elles affichent en bas d'Emacs le caractère en cours de
construction et/ou les différents choix possibles. Le défaut est que ces
méthodes ne sont disponibles que dans Emacs lui-même, donc ni dans un autre
éditeur, ni dans d'autres logiciels.
En plus des méthodes d'entrée fournies par le terminal (s'il est lancé en
mode texte) ou des mêmes méthodes d'entrée qu'uxterm (s'il est lancé en mode
graphique), Emacs propose son propre jeu de méthodes d'entrée. Elles
présentent deux avantages : elles sont locales à un buffer, il n'est donc
pas nécessaire de se soucier de les désactiver avant d'éditer un autre
fichier ou de taper une commande ; et elles affichent dans le minibuffer
des informations intéressantes, comme les différents caractères possibles
pour finir une frappe.
</p>
<p>
On obtient la liste des méthodes disponibles avec <kbd>M-x
list-input-methods</kbd>, et on peut obtenir une description détaillée
d'une méthode particulière avec <kbd>M-x describe-input-method</kbd>. Il
faut faire attention à un point subtil : Emacs ne sait pas bien convertir
entre les différents codages, or beaucoup de ces méthodes d'entrée ne sont
pas prévues pour Unicode, il ne faut donc pas les utiliser. Il vaut mieux se
restreindre aux méthodes explicitement indiquées pour Unicode, ou dont le
nom contient « latin » (Emacs à partir de la version 21.3 sait convertir
entre unicode et les divers codages « latin »).
</p>
<p>
Une fois la méthode choisie, il faut la sélectionner, ce qui se fait avec
<kbd>M-x set-input-method</kbd> (qui se dit aussi <kbd>C-x RET c C-\</kbd>
(<kbd>RET</kbd> signifie « entrée »), Emacs demande alors d'entrer le nom
de la méthode dans le minibuffer (avec bien sur la complétion). Cela
sélectionne et active la méthode pour le buffer courant. On peut la
désactiver puis la réactiver avec <kbd>C-\</kbd> ou <kbd>M-x
toggle-input-method</kbd>. Il est à noter que ces fonctions n'activent la
méthode que dans le buffer courant.
</p>
<h3>Termim</h3>
@ -226,13 +334,14 @@ de changer)
<p>
Pour plus de détails, consulter la page de man de termim, ainsi que les
documentations dans <code>/usr/local/util/packages/termim/doc/</code>.
documentations des diverses méthodes d'entrée dans
<code>/usr/local/util/packages/termim/doc/</code>.
</p>
<div class="metainformation">
Auteur : Nicolas George.
Dernière modification le <date value="$Date: 2003-06-12 14:58:36 $"/>.
Dernière modification le <date value="$Date: 2003-06-16 13:35:21 $"/>.
</div>
</body>