Slrn et utf8

Message-ID: <slrnfkca15.hvl.hugolino@deborah.rock-n-roll.org>
From: Hugolino <hugolino@free.fr>
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

C'est parti le HOWTO dlmkt

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
<cut>
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<tulavu@moncul>. Précisez bien que vous
voulez une photo du visage.   

Voilà, c'est tout pour aujourd'hui, vous pouvez retourner somnoler devant votre activitée normale. Si il y a du nouveau, je vous préviendrais peut-être.