J'edite un fichier en utf-8. Emacs m'affiche des \220 (code octal) pour
certains octets, c'est bien (bien mieux que vim et ses ^@). Mais parfois,
il trouve le caractere et m'affiche un point d'exclamation renverse, un 1
en exposant ou un autre caractere exotique au lieu du code octal. C'est
difficile a lire.
Comment lui dire d'afficher directement les caracteres ASCII et d'afficher
le code (octal ou, mieux, hexadecimal) des caracteres non-ASCII ?
J'utilise GNU Emacs 21.4.1 (i386-pc-linux-gnu, X toolkit, Xaw3d scroll
bars) of 2005-03-17 on trouble, modified by Debian
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Sébastien Kirche
Le 31 Mar 2005, Daniel Déchelotte s'est exprimé ainsi :
Comment lui dire d'afficher directement les caracteres ASCII et d'afficher le code (octal ou, mieux, hexadecimal) des caracteres non-ASCII ?
Si tu lui dis d'ouvrir ton fichier en utf-8 directement c'est pas plus simple ? C-x RET c utf-8 avant le C-x C-f
Sinon en ce qui concerne l'affichage des caractères non affichables dans l'encodage ou la fonte courante, j'ai ceci chez moi :
;; Afficher les caractères de contrôle sous la forme d'un caractère ;; « ^ » suivi de la lettre correspondante au lieu de la forme octale. (setq-default ctl-arrow 'latin-9)
Autrement la base octale n'est pas modifiable simplement. Sur emacs-devel on m'avait indiqué le truc suivant qui consiste à modifier la buffer-display-table qui permet de configurer la correspondance entre les caractères et leur représentation dans le buffer.
Mais ce code ne fonctionne pas et je n'ai pas approfondi. Je l'indique pour donner l'idée générale. Je ne sais pas débugger ce truc.
(let ((n 128)) (while (< n 256) (aset buffer-display-table n (format "x%2x" n)) (setq n (1+ n))))
-- Sébastien Kirche
Le 31 Mar 2005, Daniel Déchelotte s'est exprimé ainsi :
Comment lui dire d'afficher directement les caracteres ASCII et d'afficher
le code (octal ou, mieux, hexadecimal) des caracteres non-ASCII ?
Si tu lui dis d'ouvrir ton fichier en utf-8 directement c'est pas plus
simple ? C-x RET c utf-8 avant le C-x C-f
Sinon en ce qui concerne l'affichage des caractères non affichables dans
l'encodage ou la fonte courante, j'ai ceci chez moi :
;; Afficher les caractères de contrôle sous la forme d'un caractère
;; « ^ » suivi de la lettre correspondante au lieu de la forme octale.
(setq-default ctl-arrow 'latin-9)
Autrement la base octale n'est pas modifiable simplement. Sur emacs-devel on
m'avait indiqué le truc suivant qui consiste à modifier la
buffer-display-table qui permet de configurer la correspondance entre les
caractères et leur représentation dans le buffer.
Mais ce code ne fonctionne pas et je n'ai pas approfondi. Je l'indique pour
donner l'idée générale. Je ne sais pas débugger ce truc.
(let ((n 128))
(while (< n 256)
(aset buffer-display-table n (format "\x%2x" n))
(setq n (1+ n))))
Le 31 Mar 2005, Daniel Déchelotte s'est exprimé ainsi :
Comment lui dire d'afficher directement les caracteres ASCII et d'afficher le code (octal ou, mieux, hexadecimal) des caracteres non-ASCII ?
Si tu lui dis d'ouvrir ton fichier en utf-8 directement c'est pas plus simple ? C-x RET c utf-8 avant le C-x C-f
Sinon en ce qui concerne l'affichage des caractères non affichables dans l'encodage ou la fonte courante, j'ai ceci chez moi :
;; Afficher les caractères de contrôle sous la forme d'un caractère ;; « ^ » suivi de la lettre correspondante au lieu de la forme octale. (setq-default ctl-arrow 'latin-9)
Autrement la base octale n'est pas modifiable simplement. Sur emacs-devel on m'avait indiqué le truc suivant qui consiste à modifier la buffer-display-table qui permet de configurer la correspondance entre les caractères et leur représentation dans le buffer.
Mais ce code ne fonctionne pas et je n'ai pas approfondi. Je l'indique pour donner l'idée générale. Je ne sais pas débugger ce truc.
(let ((n 128)) (while (< n 256) (aset buffer-display-table n (format "x%2x" n)) (setq n (1+ n))))
-- Sébastien Kirche
Matthieu Moy
Sébastien Kirche writes:
Le 31 Mar 2005, Daniel Déchelotte s'est exprimé ainsi :
Comment lui dire d'afficher directement les caracteres ASCII et d'afficher le code (octal ou, mieux, hexadecimal) des caracteres non-ASCII ?
Si tu lui dis d'ouvrir ton fichier en utf-8 directement c'est pas plus simple ? C-x RET c utf-8 avant le C-x C-f
-*- coding: utf-8 -*-
en début de fichier pour ne pas avoir a le faire a chaque fois.
-- Matthieu
Sébastien Kirche <sebastien.kirche.no@spam.free.fr.invalid> writes:
Le 31 Mar 2005, Daniel Déchelotte s'est exprimé ainsi :
Comment lui dire d'afficher directement les caracteres ASCII et d'afficher
le code (octal ou, mieux, hexadecimal) des caracteres non-ASCII ?
Si tu lui dis d'ouvrir ton fichier en utf-8 directement c'est pas plus
simple ? C-x RET c utf-8 avant le C-x C-f
-*- coding: utf-8 -*-
en début de fichier pour ne pas avoir a le faire a chaque fois.
Le 31 Mar 2005, Daniel Déchelotte s'est exprimé ainsi :
Comment lui dire d'afficher directement les caracteres ASCII et d'afficher le code (octal ou, mieux, hexadecimal) des caracteres non-ASCII ?
Si tu lui dis d'ouvrir ton fichier en utf-8 directement c'est pas plus simple ? C-x RET c utf-8 avant le C-x C-f
-*- coding: utf-8 -*-
en début de fichier pour ne pas avoir a le faire a chaque fois.
-- Matthieu
Daniel Déchelotte
Sébastien Kirche a écrit :
| Le 31 Mar 2005, Daniel Déchelotte s'est exprimé ainsi : | | > Comment lui dire d'afficher directement les caracteres ASCII et | > d'afficher le code (octal ou, mieux, hexadecimal) des caracteres | > non-ASCII ? | | Si tu lui dis d'ouvrir ton fichier en utf-8 directement c'est pas | plus simple ?
C'est ou ce serait bien, a ceci pres que je n'ai pas les polices adequates, visiblement.
A l'inverse, j'ai essaye de specifier un codage qui contenait "7bit" dans son nom, mais j'ai toujours mes "a tilde majuscule" et mes points d'exclamation renverses.
| ;; Afficher les caractères de contrôle sous la forme d'un caractère | ;; « ^ » suivi de la lettre correspondante au lieu de la forme octale. | (setq-default ctl-arrow 'latin-9)
Surtout pas ! :)
| Autrement la base octale n'est pas modifiable simplement.
J'esperais quelque chose de parallele a read-quoted-char-radix.
| on m'avait indiqué le truc suivant qui consiste à | modifier la buffer-display-table qui permet de configurer la | correspondance entre les caractères et leur représentation dans le | buffer. | | Mais ce code ne fonctionne pas et je n'ai pas approfondi. Je l'indique | pour donner l'idée générale. Je ne sais pas débugger ce truc. | | (let ((n 128)) | (while (< n 256) | (aset buffer-display-table n (format "x%2x" n)) | (setq n (1+ n))))
C'est prometteur, mais meme en initialisant avec (setq buffer-display-table standard-display-table) ou (setq buffer-display-table (make-display-table)) aucun changement a l'affichage du buffer.
En fait, meme le (aset buffer-display-table ?X ?Y) propose dans la doc n'a aucune consequence sur les X (ou les Y) deja presents ou futurs.
(set-window-display-table (selected-window) buffer-display-table) ne change rien non plus. C'est rageant : la solution a vraiment l'air d'etre a deux doigts...
-- Daniel Déchelotte http://yo.dan.free.fr/
Sébastien Kirche a écrit :
| Le 31 Mar 2005, Daniel Déchelotte s'est exprimé ainsi :
|
| > Comment lui dire d'afficher directement les caracteres ASCII et
| > d'afficher le code (octal ou, mieux, hexadecimal) des caracteres
| > non-ASCII ?
|
| Si tu lui dis d'ouvrir ton fichier en utf-8 directement c'est pas
| plus simple ?
C'est ou ce serait bien, a ceci pres que je n'ai pas les polices adequates,
visiblement.
A l'inverse, j'ai essaye de specifier un codage qui contenait "7bit" dans
son nom, mais j'ai toujours mes "a tilde majuscule" et mes points
d'exclamation renverses.
| ;; Afficher les caractères de contrôle sous la forme d'un caractère
| ;; « ^ » suivi de la lettre correspondante au lieu de la forme octale.
| (setq-default ctl-arrow 'latin-9)
Surtout pas ! :)
| Autrement la base octale n'est pas modifiable simplement.
J'esperais quelque chose de parallele a read-quoted-char-radix.
| on m'avait indiqué le truc suivant qui consiste à
| modifier la buffer-display-table qui permet de configurer la
| correspondance entre les caractères et leur représentation dans le
| buffer.
|
| Mais ce code ne fonctionne pas et je n'ai pas approfondi. Je l'indique
| pour donner l'idée générale. Je ne sais pas débugger ce truc.
|
| (let ((n 128))
| (while (< n 256)
| (aset buffer-display-table n (format "\x%2x" n))
| (setq n (1+ n))))
C'est prometteur, mais meme en initialisant avec
(setq buffer-display-table standard-display-table)
ou
(setq buffer-display-table (make-display-table))
aucun changement a l'affichage du buffer.
En fait, meme le (aset buffer-display-table ?X ?Y) propose dans la doc n'a
aucune consequence sur les X (ou les Y) deja presents ou futurs.
(set-window-display-table (selected-window) buffer-display-table)
ne change rien non plus. C'est rageant : la solution a vraiment l'air
d'etre a deux doigts...
| Le 31 Mar 2005, Daniel Déchelotte s'est exprimé ainsi : | | > Comment lui dire d'afficher directement les caracteres ASCII et | > d'afficher le code (octal ou, mieux, hexadecimal) des caracteres | > non-ASCII ? | | Si tu lui dis d'ouvrir ton fichier en utf-8 directement c'est pas | plus simple ?
C'est ou ce serait bien, a ceci pres que je n'ai pas les polices adequates, visiblement.
A l'inverse, j'ai essaye de specifier un codage qui contenait "7bit" dans son nom, mais j'ai toujours mes "a tilde majuscule" et mes points d'exclamation renverses.
| ;; Afficher les caractères de contrôle sous la forme d'un caractère | ;; « ^ » suivi de la lettre correspondante au lieu de la forme octale. | (setq-default ctl-arrow 'latin-9)
Surtout pas ! :)
| Autrement la base octale n'est pas modifiable simplement.
J'esperais quelque chose de parallele a read-quoted-char-radix.
| on m'avait indiqué le truc suivant qui consiste à | modifier la buffer-display-table qui permet de configurer la | correspondance entre les caractères et leur représentation dans le | buffer. | | Mais ce code ne fonctionne pas et je n'ai pas approfondi. Je l'indique | pour donner l'idée générale. Je ne sais pas débugger ce truc. | | (let ((n 128)) | (while (< n 256) | (aset buffer-display-table n (format "x%2x" n)) | (setq n (1+ n))))
C'est prometteur, mais meme en initialisant avec (setq buffer-display-table standard-display-table) ou (setq buffer-display-table (make-display-table)) aucun changement a l'affichage du buffer.
En fait, meme le (aset buffer-display-table ?X ?Y) propose dans la doc n'a aucune consequence sur les X (ou les Y) deja presents ou futurs.
(set-window-display-table (selected-window) buffer-display-table) ne change rien non plus. C'est rageant : la solution a vraiment l'air d'etre a deux doigts...
-- Daniel Déchelotte http://yo.dan.free.fr/
Sébastien Kirche
Le 31 mar 2005, Daniel Déchelotte vraute :
Sébastien Kirche a écrit :
> Le 31 Mar 2005, Daniel Déchelotte s'est exprimé ainsi : > > > Comment lui dire d'afficher directement les caracteres ASCII et > > d'afficher le code (octal ou, mieux, hexadecimal) des caracteres > > non-ASCII ? > > Si tu lui dis d'ouvrir ton fichier en utf-8 directement c'est pas > plus simple ?
C'est ou ce serait bien, a ceci pres que je n'ai pas les polices adequates, visiblement.
Tu es bien en Debian ? Avec l'unifont (voir paquet du même nom) ça peut t'aider ? Ici mon Emacs a un fontset qui affiche l'utf avec cette fonte sans que j'y touche.
A l'inverse, j'ai essaye de specifier un codage qui contenait "7bit" dans son nom, mais j'ai toujours mes "a tilde majuscule" et mes points d'exclamation renverses.
utf-7 bits ? Ben si tu as de l'utf-8 ça me paraît normal de ne pas marcher... Tu es sûr de l'encodage de ton fichier ?
> Autrement la base octale n'est pas modifiable simplement.
J'esperais quelque chose de parallele a read-quoted-char-radix.
C'est exactement comme cela que j'avais tourné ma question :) Les dieux du code m'ont répondu qu'ils ne comptaient pas compliquer le code plus que nécessaire ;)
Ils m'ont quand même filé le petit bout de code pour me dépanner, mais débuggage à ma charge...
> on m'avait indiqué le truc suivant qui consiste à > modifier la buffer-display-table qui permet de configurer la > correspondance entre les caractères et leur représentation dans le > buffer. > > Mais ce code ne fonctionne pas et je n'ai pas approfondi. Je l'indique > pour donner l'idée générale. Je ne sais pas débugger ce truc. > > (let ((n 128)) > (while (< n 256) > (aset buffer-display-table n (format "x%2x" n)) > (setq n (1+ n))))
C'est prometteur, mais meme en initialisant avec (setq buffer-display-table standard-display-table) ou (setq buffer-display-table (make-display-table)) aucun changement a l'affichage du buffer.
En fait, meme le (aset buffer-display-table ?X ?Y) propose dans la doc n'a aucune consequence sur les X (ou les Y) deja presents ou futurs.
(set-window-display-table (selected-window) buffer-display-table) ne change rien non plus. C'est rageant : la solution a vraiment l'air d'etre a deux doigts...
Là je ne sais pas.
Perso mon lisp est trop limite pour que je puisse sortir la soluce comme ça. Je suis en train de me familiariser avec en retouchant mon .emacs et j'expérimente let en ce moment...
-- Sébastien Kirche
Le 31 mar 2005, Daniel Déchelotte vraute :
Sébastien Kirche a écrit :
> Le 31 Mar 2005, Daniel Déchelotte s'est exprimé ainsi :
>
> > Comment lui dire d'afficher directement les caracteres ASCII et
> > d'afficher le code (octal ou, mieux, hexadecimal) des caracteres
> > non-ASCII ?
>
> Si tu lui dis d'ouvrir ton fichier en utf-8 directement c'est pas
> plus simple ?
C'est ou ce serait bien, a ceci pres que je n'ai pas les polices
adequates, visiblement.
Tu es bien en Debian ? Avec l'unifont (voir paquet du même nom) ça peut
t'aider ? Ici mon Emacs a un fontset qui affiche l'utf avec cette fonte sans
que j'y touche.
A l'inverse, j'ai essaye de specifier un codage qui contenait "7bit" dans
son nom, mais j'ai toujours mes "a tilde majuscule" et mes points
d'exclamation renverses.
utf-7 bits ? Ben si tu as de l'utf-8 ça me paraît normal de ne pas marcher...
Tu es sûr de l'encodage de ton fichier ?
> Autrement la base octale n'est pas modifiable simplement.
J'esperais quelque chose de parallele a read-quoted-char-radix.
C'est exactement comme cela que j'avais tourné ma question :)
Les dieux du code m'ont répondu qu'ils ne comptaient pas compliquer le code
plus que nécessaire ;)
Ils m'ont quand même filé le petit bout de code pour me dépanner, mais
débuggage à ma charge...
> on m'avait indiqué le truc suivant qui consiste à
> modifier la buffer-display-table qui permet de configurer la
> correspondance entre les caractères et leur représentation dans le
> buffer.
>
> Mais ce code ne fonctionne pas et je n'ai pas approfondi. Je l'indique
> pour donner l'idée générale. Je ne sais pas débugger ce truc.
>
> (let ((n 128))
> (while (< n 256)
> (aset buffer-display-table n (format "\x%2x" n))
> (setq n (1+ n))))
C'est prometteur, mais meme en initialisant avec
(setq buffer-display-table standard-display-table)
ou
(setq buffer-display-table (make-display-table))
aucun changement a l'affichage du buffer.
En fait, meme le (aset buffer-display-table ?X ?Y) propose dans la doc n'a
aucune consequence sur les X (ou les Y) deja presents ou futurs.
(set-window-display-table (selected-window) buffer-display-table)
ne change rien non plus. C'est rageant : la solution a vraiment l'air
d'etre a deux doigts...
Là je ne sais pas.
Perso mon lisp est trop limite pour que je puisse sortir la soluce comme ça.
Je suis en train de me familiariser avec en retouchant mon .emacs et
j'expérimente let en ce moment...
> Le 31 Mar 2005, Daniel Déchelotte s'est exprimé ainsi : > > > Comment lui dire d'afficher directement les caracteres ASCII et > > d'afficher le code (octal ou, mieux, hexadecimal) des caracteres > > non-ASCII ? > > Si tu lui dis d'ouvrir ton fichier en utf-8 directement c'est pas > plus simple ?
C'est ou ce serait bien, a ceci pres que je n'ai pas les polices adequates, visiblement.
Tu es bien en Debian ? Avec l'unifont (voir paquet du même nom) ça peut t'aider ? Ici mon Emacs a un fontset qui affiche l'utf avec cette fonte sans que j'y touche.
A l'inverse, j'ai essaye de specifier un codage qui contenait "7bit" dans son nom, mais j'ai toujours mes "a tilde majuscule" et mes points d'exclamation renverses.
utf-7 bits ? Ben si tu as de l'utf-8 ça me paraît normal de ne pas marcher... Tu es sûr de l'encodage de ton fichier ?
> Autrement la base octale n'est pas modifiable simplement.
J'esperais quelque chose de parallele a read-quoted-char-radix.
C'est exactement comme cela que j'avais tourné ma question :) Les dieux du code m'ont répondu qu'ils ne comptaient pas compliquer le code plus que nécessaire ;)
Ils m'ont quand même filé le petit bout de code pour me dépanner, mais débuggage à ma charge...
> on m'avait indiqué le truc suivant qui consiste à > modifier la buffer-display-table qui permet de configurer la > correspondance entre les caractères et leur représentation dans le > buffer. > > Mais ce code ne fonctionne pas et je n'ai pas approfondi. Je l'indique > pour donner l'idée générale. Je ne sais pas débugger ce truc. > > (let ((n 128)) > (while (< n 256) > (aset buffer-display-table n (format "x%2x" n)) > (setq n (1+ n))))
C'est prometteur, mais meme en initialisant avec (setq buffer-display-table standard-display-table) ou (setq buffer-display-table (make-display-table)) aucun changement a l'affichage du buffer.
En fait, meme le (aset buffer-display-table ?X ?Y) propose dans la doc n'a aucune consequence sur les X (ou les Y) deja presents ou futurs.
(set-window-display-table (selected-window) buffer-display-table) ne change rien non plus. C'est rageant : la solution a vraiment l'air d'etre a deux doigts...
Là je ne sais pas.
Perso mon lisp est trop limite pour que je puisse sortir la soluce comme ça. Je suis en train de me familiariser avec en retouchant mon .emacs et j'expérimente let en ce moment...
-- Sébastien Kirche
Sébastien Kirche
Le 31 Mar 2005, Sébastien Kirche a dit :
> A l'inverse, j'ai essaye de specifier un codage qui contenait "7bit" > dans son nom, mais j'ai toujours mes "a tilde majuscule" et mes points > d'exclamation renverses.
utf-7 bits ?
Peut-être iso-2022-7bit. C'est l'encodage uilisé par la démo multi-langues d'Emacs : C-h h
-- Sébastien Kirche
Le 31 Mar 2005, Sébastien Kirche a dit :
> A l'inverse, j'ai essaye de specifier un codage qui contenait "7bit"
> dans son nom, mais j'ai toujours mes "a tilde majuscule" et mes points
> d'exclamation renverses.
utf-7 bits ?
Peut-être iso-2022-7bit.
C'est l'encodage uilisé par la démo multi-langues d'Emacs : C-h h
> A l'inverse, j'ai essaye de specifier un codage qui contenait "7bit" > dans son nom, mais j'ai toujours mes "a tilde majuscule" et mes points > d'exclamation renverses.
utf-7 bits ?
Peut-être iso-2022-7bit. C'est l'encodage uilisé par la démo multi-langues d'Emacs : C-h h
-- Sébastien Kirche
Matthieu Moy
Sébastien Kirche writes:
Le 31 Mar 2005, Sébastien Kirche a dit :
> A l'inverse, j'ai essaye de specifier un codage qui contenait "7bit" > dans son nom, mais j'ai toujours mes "a tilde majuscule" et mes points > d'exclamation renverses.
utf-7 bits ?
Peut-être iso-2022-7bit.
T'as essayé UTF-9 ?
http://www.faqs.org/rfcs/rfc4042.html
-- Matthieu
Sébastien Kirche <sebastien.kirche.no@spam.free.fr.invalid> writes:
Le 31 Mar 2005, Sébastien Kirche a dit :
> A l'inverse, j'ai essaye de specifier un codage qui contenait "7bit"
> dans son nom, mais j'ai toujours mes "a tilde majuscule" et mes points
> d'exclamation renverses.
> A l'inverse, j'ai essaye de specifier un codage qui contenait "7bit" > dans son nom, mais j'ai toujours mes "a tilde majuscule" et mes points > d'exclamation renverses.