Message-ID: From: Hugolino Newsgroups: fr.comp.usenet.lecteurs-de-news,fr.comp.os.linux.configuration Subject: [HOWTO] slrn et utf-8 Date: Fri, 23 Nov 2007 02:08:53 +0100 Lines: 148 Organization: Guilde des Gardiens de la Foi Debianiste 8<-----------8<---------8<----------8<----------8<----------8<----------8< Publication croisée sur fr.comp.usenet.lecteurs-de-news et fr.comp.os.linux.configuration. Suivi positionné sur fr.comp.usenet.lecteurs-de-news 8<-----------8<---------8<----------8<----------8<----------8<----------8< Salut, Sur ma ubuntu 7.10 gutsy gibbon fraichement installée, j'ai réussi à configurer slrn pour qu'il fasse semblant de gérer l'utf-8 qui est l'encodage par défaut de ubuntu. Jusqu'à maintenant, après chaque nouvelle installation d'une ubuntu, j'étais obligé de la reconfigurer en iso-8859-15, juste parce que slrn ne parle pas utf-8 (et que j'adore perdre mon temps son usenet :) Mes remerciements à Matthieu Moy qui sur fr.comp.os.unix m'a précisé le fonctionnement de luit et l'erreur que je faisais. -=- slrn et l'utf-8 -=- slrn roulaize grave (plus que gnus en tout cas), mais slrn est toujours allergique à l'utf-8. Il paraît que la prise en compte de l'utf-8 par slrn est en cours de développement, mais pour l'instant le slrn (version 0.9.8.1pl1-28) livré avec la dernière ubuntu ne le gère pas, transformant le moindre caractère accentué en signe cabalistique. Donc il faut utiliser un autre encodage de caractère, à savoir l'iso-8859-15 ou fr_FR@euro. (Des contribruiteurs pinailleurs diront sans doute qu'il ne s'agit pas de la même chose, que l'un est un encodage et l'autre une locale. Qu'ils se sentent libres d'apporter les précisions qu'ils jugeront nécessaires si cela permet de clarifier mon exposé). -=- la locale fr_FR@euro -=- Par défaut, la distribution ubuntu ne comporte pas l'encodage iso-8859-15, il faut donc générer la locale correspondante par la commande: locale-gen fr_FR@euro locale-gen est un programme du paquet belocs-locales-bin normalement installé par défaut. S'il manque sur votre disque, installez-le avec 'aptitude install belocs-locales-bin' -=- luit -=- la commande 'apt-cache show luit' raconte: 8<-----------8<---------8<----------8<----------8<----------8<----------8< Package: luit Description: X client - luit Luit is a filter that can be run between an arbitrary application and a UTF-8 terminal emulator. It will convert application output from the locale's encoding into UTF-8, and convert terminal input from UTF-8 into the locale's encoding. 8<-----------8<---------8<----------8<----------8<----------8<----------8< Il s'agit donc d'un traducteur d'encodage entre un programme et le terminal qui affiche ce programme. Puisque slrn réclame de l'iso-8859-15 (ou du fr_FR@euro) et qu'on veut l'utiliser dans un terminal qui sert aussi à autre chose et qui est donc configuré par défaut en fr_FR.UTF-8, on lance son exécution par la commande 'LANG=fr_FR@euro luit slrn'. Ainsi chaque fois que slrn voudra afficher un accent ou plus généralement un caractère graphique, luit recevra ce caractère et le transcrira en UTF-8 afin qu'il soit correctement affiché par le terminal. -=- vim -=- L'éditeur que j'utilise pour éditer les posts qui font de moi le phénomène de foire le plus connu de usenet et de sa proche banlieue (coté numéros pairs) est bien évidement vi ("VIVE VI Vaincra Emacs") Il est appelé par slrn d'après la ligne suivante du fichier de configuration ~/.slrnrc: 8<-----------8<---------8<----------8<----------8<----------8<----------8< set post_editor_command "vim -c 'set tw=72' -f %s +%d" 8<-----------8<---------8<----------8<----------8<----------8<----------8< Il faut cependant vérifier que le .vimrc ne contient *PAS* de ligne pour régler l'encoding et surtout pas "set encoding=utf8". Sinon, pendant l'édition, vim va envoyer de l'UTF-8 à luit qui croit recevoir du fr_FR@euro et effectue donc une espèce de double encodage en UTF-8. Les caratères accentués présents dans le fichier temporaire ~/.followup que slrn a créé vont être mal affichés par le terminal et mal envoyés sur le nain ternet. Si l'option "set encoding=utf8" vous est indispensable quand vous utilisez vim pour autre chose que la rédaction de posts sur usenet, alors un petit tour dans la page de man vous appendra qu'il suffit d'appeler vim avec l'option -u {vimrc} ou {vimrc} sera le nom d'un fichier de configuration de vim que vous n'utiliserez que pour rédiger vos posts avec slrn. La ligne de ~/.slrnrc serait donc : 8<-----------8<---------8<----------8<----------8<----------8<----------8< set post_editor_command "vim -c 'set tw=72' -u .vimrc-slrn -f %s +%d" 8<-----------8<---------8<----------8<----------8<----------8<----------8< Le fichier ~/.vimrc-slrn serait une copie de votre .~/.vimrc mais *sans* le "set encoding=utf8". (Solution non testée) -=- troubleshootings -=- Pendant mes tests, vim s'est mis à faire swapper mon PC comme un fou car il occupait plus de la moitié de ma RAM. Le lancement de vim prenait 10 secondes et à la fermeture de l'éditeur, je devais patienter 22 secondes pour récupérer la main. Il a suffit de lancer vim avec l'option -V pour voir que c'était pendant l'accès au fichier ~/.viminfo que le ralentissement avait lieu. Un simple ls a montré que la taille de ce fichier dépassait 260 Mo. 'rm -f ~/.viminfo' a réglé le problème. -=- disclêmeur -=- L'intégralité de cet article est sous «Demerden Sie Sich Licence», vous pouvez faire fumer votre écran ou suicider votre mulot avec, et vous pouvez essayer de m'en rendre responsable. Il est libre de droits. Hugues Fertin aka Hugolino -- > Vous pouvez toujours nous publier votre photo, que je puisse dire si vous > représentez l'esthétique que l'étranger imagine de l'homme français Vous parlez là à SM/Doom/Chibre. Précisez bien que vous voulez une photo du visage.