Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

GNU emacs & Unicode

9 réponses
Avatar
FAb
Bonjour,
Je me bagarre avec emacs pour le support de l'unicode... Ce que j'ai lu des
archives de ce ng me laisse craintif.
En ayant mis les instructions ci-dessous dans mon .emacs j'arrive à avoir un
rendu correct de fichiers encodé en UTF-8. Par contre je n'ai plus la saisie des
lettres accentuées (en direct ou avec les dead-accent de X).

Je ne vois pas d'autre param input/lang/keyboard...

;;; utf-8 .emacs
(setq locale-coding-system 'utf-8)
(set-terminal-coding-system 'utf-8)
(set-keyboard-coding-system 'utf-8)
(set-selection-coding-system 'utf-8)
(prefer-coding-system 'utf-8)
(set-language-environment 'utf-8)

% emacs --version
GNU Emacs 21.4.1
Copyright (C) 2002 Free Software Foundation, Inc.


Des idées ??? (Cela me permettrait de concurrencer un collègue VI-intégriste).
Merci.

Fabrice

9 réponses

Avatar
Bastien
Sébastien Kirche writes:

Quand on sait comment ça fonctionne on arrive généralement à ce
qu'on veut. Les seuls problèmes que je n'ai pas su encore résoudre
c'est pour mixer utf-8 et latin-9 dans le même canal irc avec erc.



(Pourquoi mixer les deux sur un même canal?)

J'utilise ça pour associer un canal à un encodage:

(setq erc-default-coding-system 'utf-8)
(setq erc-encoding-coding-alist '(("#bitlbee" . iso-8859-1)))

,----[ erc-encoding-coding-alist ]
| Alist of target regexp and coding-system pairs to use.
| This overrides `erc-default-coding-system' depending on the current target
| as returned by `erc-default-target'.
|
| Example: If you know that the channel #linux-ru uses the coding-system
| `cyrillic-koi8', then add '("#linux-ru" . cyrillic-koi8) to the
| alist.
`----

--
Bastien
Avatar
Sébastien Kirche
Le 20 décembre 2005 à 10:12, FAb s'est exprimé ainsi :

Bonjour,



Bonjour,

Je me bagarre avec emacs pour le support de l'unicode... Ce
que j'ai lu des archives de ce ng me laisse craintif.



Quand on sait comment ça fonctionne on arrive généralement à ce qu'on
veut. Les seuls problèmes que je n'ai pas su encore résoudre c'est pour
mixer utf-8 et latin-9 dans le même canal irc avec erc.

En ayant mis les instructions ci-dessous dans mon .emacs



En vérifiant la documentation des variables ?

j'arrive à avoir un rendu correct de fichiers encodé en UTF-8. Par
contre je n'ai plus la saisie des lettres accentuées (en direct ou
avec les dead-accent de X).



Quels sont les symptômes ? Un carré vide à la place du symbole ? Rien ?
Un bip ?

Quelle utilisation d'Emacs ? En terminal, via ssh, en mode graphique ?


Je ne vois pas d'autre param input/lang/keyboard...



Il ne s'agit pas seulement de mettre utf-8 pour utiliser unicode, il
faut comprendre ce que ces réglages impliquent.

Par exemple là je suis sur un mac avec le keyboard-coding-system en
mac-roman bien que j'utilise un encodage latin-9.

Quels sont les locales utilisées sur le poste ? Est-ce qu'elles sont
compatibles ? Par exemple si les locales sont en iso-8859-1/15 ça risque
de coincer avec locale-coding-system ou keyboard-coding-system...

;;; utf-8 .emacs
(setq locale-coding-system 'utf-8)
(set-terminal-coding-system 'utf-8)
(set-keyboard-coding-system 'utf-8)



Pourquoi pas, faut voir si ça concorde avec le poste.

(set-selection-coding-system 'utf-8)



Celui-là il sert à la communication inter appli X pour le
copier-scotcher.


(prefer-coding-system 'utf-8)



Celui-là sert à utiliser en priorité utf-8 lors de l'auto-détection à
l'ouverture d'un fichier et pour l'encodage par défaut d'un fichier
qu'on crée.

(set-language-environment 'utf-8)



Personnellement je l'aurais laissé sur 'french en ajoutant un
prefer-coding-system sur utf-8... le language-environment ne positionne
pas que le codage des caractères.

% emacs --version
GNU Emacs 21.4.1
Copyright (C) 2002 Free Software Foundation, Inc.



Emacs 21.3/21.4 supporte utf mais ça peut valoir le coup d'utiliser la
version cvs (facilitée avec emacs-snapshot sous Debian).

Des idées ??? (Cela me permettrait de concurrencer un collègue
VI-intégriste). Merci.



Non aux guerres de religion :)


--
Sébastien Kirche
Avatar
Sébastien Kirche
Le 20 décembre 2005 à 13:12, Bastien vraute :

> Quand on sait comment ça fonctionne on arrive généralement à ce
> qu'on veut. Les seuls problèmes que je n'ai pas su encore résoudre
> c'est pour mixer utf-8 et latin-9 dans le même canal irc avec erc.

(Pourquoi mixer les deux sur un même canal?)

J'utilise ça pour associer un canal à un encodage:

(setq erc-default-coding-system 'utf-8)
(setq erc-encoding-coding-alist '(("#bitlbee" . iso-8859-1)))



Ça coince avec erc quand on est réglé en latin-9 (par exemple pour
#emacsfr) et qu'un intervenant envoie de l'utf-8. Erc ne "voit" pas que
c'est de l'utf ce qui cause les à habituels.

Faudrait un peu d'heuristique pour l'affichage du texte reçu.
--
Sébastien Kirche
Avatar
FAb
Sébastien Kirche writes:

Le 20 décembre 2005 à 10:12, FAb s'est exprimé ainsi :

> Bonjour,

Bonjour,



Re-bonjour,

> Je me bagarre avec emacs pour le support de l'unicode... Ce
> que j'ai lu des archives de ce ng me laisse craintif.

Quand on sait comment ça fonctionne on arrive généralement à ce qu'on
veut. Les seuls problèmes que je n'ai pas su encore résoudre c'est pour
mixer utf-8 et latin-9 dans le même canal irc avec erc.



boudiou !!! Moi je veux juste faire faire pousser un champs de lignes de code en
utf-8...

Merci grâce à ces infos j'ai trouvé :


Quels sont les symptômes ? Un carré vide à la place du symbole ? Rien ?
Un bip ?



Vide, emacs pipait mot (ou lettre) C-h k toujours en attente, il ne percevait
pas le é.

Quelle utilisation d'Emacs ? En terminal, via ssh, en mode graphique ?



Fedora Core 4, en X clavier azerty FR configuré normalement.


> Je ne vois pas d'autre param input/lang/keyboard...

Il ne s'agit pas seulement de mettre utf-8 pour utiliser unicode, il
faut comprendre ce que ces réglages impliquent.

Par exemple là je suis sur un mac avec le keyboard-coding-system en
mac-roman bien que j'utilise un encodage latin-9.



Diantre, euh par curiosité personnelle, pourquoi latin9 ?

[...]
> (set-language-environment 'utf-8)



Merci pour toutes ces infos. Va falloir que j'y regarde de plus près.

Personnellement je l'aurais laissé sur 'french en ajoutant un



Bin un ordi qui m'insultre en français ça m'a toujours fait froid dans le
dos. Souvent je ne comprends même de quoi il parle alors cela me vexe...

J'ai passé LC_ALL à en_US.utf8 et miracle ça passe.

Emacs 21.3/21.4 supporte utf mais ça peut valoir le coup d'utiliser la
version cvs (facilitée avec emacs-snapshot sous Debian).



Du coup je me demande si cela vaut la peine, les apports ont l'air mineur.

> Des idées ??? (Cela me permettrait de concurrencer un collègue
> VI-intégriste). Merci.

Non aux guerres de religion :)



Il a craqué il est plus là. Julien si tu me lis un jour...

Merci beaucoup.

FAb
Avatar
Sébastien Kirche
Le 20 décembre 2005 à 15:12, FAb a dit :

> Quels sont les symptômes ? Un carré vide à la place du symbole ?
> Rien ? Un bip ?

Vide, emacs pipait mot (ou lettre) C-h k toujours en attente, il ne
percevait pas le é.



Problème de réglage sur set-terminal-coding-system ou
set-keyboard-coding-system je dirais (à vue de nez)

> Quelle utilisation d'Emacs ? En terminal, via ssh, en mode graphique
> ?

Fedora Core 4, en X clavier azerty FR configuré normalement.



Normalement pour les autres applis ? Donc le

> Par exemple là je suis sur un mac avec le keyboard-coding-system en
> mac-roman bien que j'utilise un encodage latin-9.

Diantre, euh par curiosité personnelle, pourquoi latin9 ?



Parce que je n'apprécie pas tellement UTF (par problème
d'interopérabilité avec d'autres applications), parce que je n'y suis
pas absolument obligé et parce que c'est prohibé sur les newsgroups que
je suis habituellement.

[...]
> > (set-language-environment 'utf-8)

Merci pour toutes ces infos. Va falloir que j'y regarde de plus près.

> Personnellement je l'aurais laissé sur 'french en ajoutant un

Bin un ordi qui m'insultre en français ça m'a toujours fait froid dans
le dos. Souvent je ne comprends même de quoi il parle alors cela me
vexe...



En ce qui concerne Emacs, ça ne change rien aux messages. Par contre ça
positionne d'autres variables qui conviennet tout à fait à mon
utilisation d'Emacs (extrait de language-info-alist) :

("French"
(documentation . "This language environment is almost the same as
Latin-1,nbut it selects the French tutorial and input method.")
(sample-text . "French (Français) Bonjour, Salut")
(input-method . "latin-1-prefix")
(unibyte-display . iso-latin-1)
(unibyte-syntax . "latin-1")
(nonascii-translation . latin-iso8859-1)
(coding-priority iso-latin-1)
(coding-system iso-latin-1 iso-latin-9)
(charset ascii latin-iso8859-1)
(tutorial . "TUTORIAL.fr"))

J'ai passé LC_ALL à en_US.utf8 et miracle ça passe.



Ça a mis en phase les réglages de toute la machine avec les réglages
d'Emacs, mais je pense que ce n'était pas nécessaire absolument pour
simplement lire et écrire de l'utf-8 avec Emacs.

Bon, ça ne peut faire de mal non plus puisqu'il faudra bien y passer un
jour, hein.

> Emacs 21.3/21.4 supporte utf mais ça peut valoir le coup d'utiliser
> la version cvs (facilitée avec emacs-snapshot sous Debian).

Du coup je me demande si cela vaut la peine, les apports ont l'air
mineur.



Non, il y a entre autres beaucoup d'améliorations sur la gestion interne
des charsets, justement avec l'intégration d'UCS.

Et le support d'OSX ce qui est un point capital pour moi (forcément,
c'est la version que j'utilise en ce moment).

Merci beaucoup.



Pour le peu que j'ai fait :)
--
Sébastien Kirche
Avatar
Pascal Bourguignon
Sébastien Kirche writes:

Le 20 décembre 2005 à 13:12, Bastien vraute :

> Quand on sait comment ça fonctionne on arrive généralement à ce
> qu'on veut. Les seuls problèmes que je n'ai pas su encore résoudre
> c'est pour mixer utf-8 et latin-9 dans le même canal irc avec erc.

(Pourquoi mixer les deux sur un même canal?)

J'utilise ça pour associer un canal à un encodage:

(setq erc-default-coding-system 'utf-8)
(setq erc-encoding-coding-alist '(("#bitlbee" . iso-8859-1)))



Ça coince avec erc quand on est réglé en latin-9 (par exemple pour
#emacsfr) et qu'un intervenant envoie de l'utf-8. Erc ne "voit" pas que
c'est de l'utf ce qui cause les à habituels.

Faudrait un peu d'heuristique pour l'affichage du texte reçu.



Non, dans ce cas, il faut taper sur le mec qui envoie de l'utf-8 sur
un canal latin-9!

http://thalassa.informatimago.com/images/dear-lord-punch-over-tcpip.gif


Sinon, il faut changer l'algorithme de decodage utilisé par erc, et le
remplacer par une heuristique déterminant automatiquement l'encodage
(par exemple, avec l'aide d'un vérificateur orthographique).

--
__Pascal Bourguignon__ http://www.informatimago.com/

In a World without Walls and Fences,
who needs Windows and Gates?
Avatar
Sébastien Kirche
Le 20 décembre 2005 à 18:12, Pascal Bourguignon a formulé :

> Faudrait un peu d'heuristique pour l'affichage du texte reçu.

Non, dans ce cas, il faut taper sur le mec qui envoie de l'utf-8 sur
un canal latin-9!

http://thalassa.informatimago.com/images/dear-lord-punch-over-tcpip.gif



Si seulement :o)
--
Sébastien Kirche
Avatar
FAb
Sébastien Kirche writes:

> J'ai passé LC_ALL à en_US.utf8 et miracle ça passe.

Ça a mis en phase les réglages de toute la machine avec les réglages
d'Emacs, mais je pense que ce n'était pas nécessaire absolument pour
simplement lire et écrire de l'utf-8 avec Emacs.

Bon, ça ne peut faire de mal non plus puisqu'il faudra bien y passer un
jour, hein.



Ouaip. Comme je reprends un projet qui n'utilise que de l'unicode, autant se
forcer et franchir le pas. (Si je ne me force pas brutalement...)

Non, il y a entre autres beaucoup d'améliorations sur la gestion interne
des charsets, justement avec l'intégration d'UCS.



J'vais voir...

Fabrice
Avatar
Sébastien Kirche
Le 21 décembre 2005 à 10:12, FAb a dit :

> Non, il y a entre autres beaucoup d'améliorations sur la gestion
> interne des charsets, justement avec l'intégration d'UCS.

J'vais voir...



Sans forcément l'installer tu peux consulter le fichier etc/NEWS pour te
faire une idée.

La version à jour au moment où j'écris est visible là :
http://cvs.savannah.gnu.org/viewcvs/emacs/etc/NEWS?rev=1.1299&root=emacs&only_with_tag=HEAD&view=markup

HTH.
--
Sébastien Kirche