VIM, xterm i UTF-8 czyli jak pisać po rosyjsku

Posted on Wed 13 December 2006 in Tips 4 VIM • 2 min read

Dostałem do zrobienia formularz w języku rosyjskim. "Ho, ho, ho!" - ucieszyłem się bo wreszcie mogłem zawodowo zrealizować swoje marzenie czyli użycie xterma do wyświetlenia znaków z zestawu UTF-8. Ku mojej uciesze okazało się, że mój difoltowy xterm już to potrafi, a przecież parę lat temu jak się znakami narodowymi (i nie tylko) bawiłem to musiałem kompilować jakieś specjalne wersje lub jakiegoś mlterma czy cuś. A teraz? Teraz wystarczyło:

paczor@gustlik:~$ export LC_CTYPE=pl_PL.UTF-8
paczor@gustlik:~$  xterm -sb -sl 700 -j -ls -r \
-fn '-Misc-Fixed-medium-r-*-*-18-*-*-*-*-*-ISO10646-1'
paczor@gustlik:~$  cat UTF-8-demo.txt
Działa.
Czas mnie naglił więc nie grzebałem w ustawieniach konsoli tylko na chama odpaliłem VMWare w nim WXP oraz OpenOffice i mozolnie wklepałem cały tekst. Na koniec zapisałem dokument w postaci pliku tekstowego z kodowaniem UTF-8. I zaczęła się jazda!
W mojej zUTFionej konsoli uruchomiłem VIM-a i otworzyłem w nim dokument. Pft! Zamiast ładnych bukw były tam oczywiście jakieś śmieszne robaczki. Poczytałem help i wydałem dwa magiczne zaklęcia:
:language pl_PL.UTF-8
:set encoding=utf-8

Zadziałało, ale jak się potem dowiedziałem tylko dzięki temu, że mam VIM-a (z paczki w Slacku 11) skompilowanego z opcją +multi_byte (można się o tym przekonać wydając polecenie: :version). Zamiast robaczków miałem już bukwy. Nadeszła pora przekopiowywania rosyjskiego tekstu do formularza.

Po 10 minutach pracy zachowałem nowy, rosyjski formularz do pliku ale nie zauważyłem, że podczas zapisu na dole okna VIM-a pojawił się komunikat "CONVERTION FAILED". Wylazłem z VIM-a, przekopiowałem formularz na serwer i... zamiast rosyjskich liter na stronie z formularzem ujrzałem kłębiące się tłumy literek "ż". Totalna porażka!
Okazało się, że zabrakło jeszcze jednego zaklęcia w VIM-ie:
:set fenc=utf-8

dzięki któremu VIM prawidłowo przekodowuje plik na UTF-8. Straciłem całą pracę bezpowrotnie ale nauczyłem się już chyba do końca życia wpisywać to świństwo. Cieszę się, że nie była to książka życia.