Keyboard HOWTO pl 13 (2)


The Linux Keyboard HOWTO: Jak zmusić inne programy do działania ze znakami spoza ASCII Następna strona Poprzednia strona Spis treści 13. Jak zmusić inne programy do działania ze znakami spoza ASCII W dawnych złych czasach było to wcale nużące. Każdy program z osobna musiał być indywidualnie przekonywany do zostawienia twoich bitów w spokoju. Nie żeby dzisiaj wszystko było łatwe, ale ostatnio wiele narzędzi GNU nauczyło się reagować na LC_CTYPE=iso_8859_1 lub LC_CTYPE=iso-8859-1. Spróbuj najpierw tego; jeśli nie pomoże, spójrz na podpowiedzi poniżej. Zauważ że w nowszych wersjach libc procedura setlocale() działa tylko jeżeli zainstalowałeś pliki locale (tj. w /usr/lib/locale). Przede wszystkim ósmy bit powinien przetrwać przetwarzanie danych wejściowych w jądrze, więc upewnij się że ustawiłeś stty cs8 -istrip -parenb A. Dla emacsa szczegóły w dużym stopniu zależą od wersji. Informacja poniżej dotyczy wersji 19.34. Wstaw linie: (set-input-mode nil nil 1) (standard-display-european t) (require 'iso-syntax) do swojego $HOME/.emacs. Pierwsza linia (mówiąc ściślej - końcowe 1) mówi emacsowi żeby nie obcinał ósmego bitu ze wprowadzanych znaków. Druga linia mówi emacsowi żeby nie wyświetlał znaków spoza ASCII jako wartości ósemkowych. Trzecia linia wyszczególnia właściwości składni i tablicę konwersji małych/dużych liter dla zestawu znaków Latin-1. Dwie ostatnie linie są zbędne jeżeli masz coś podobnego do LC_TYPE=ISO-8859-1 w swoim środowisku (zmienna ta może też nazywać się LC_ALL albo po prostu LANG. Jej wartość może być czymkolwiek co zawiera ciąg znaków 88591, 8859-1 lub 8859_1). To już dobry początek. Na terminalach które nie potrafią wyświetlać symboli ISO-8859-1 spoza ASCII, komenda (load-library "iso-ascii") spowoduje że znaki akcentowane wyświetlane będą jako {,c}a. Jeśli twoja klawiatura nie daje łatwego sposobu wprowadzania znaków spoza ASCII, to (load-library "iso-transl") uczyni dwuznakową sekwencję ^X8 znakiem składania [Compose], tak że czteroznakowa sekwencja ^X8,c daje c-cedilla. Bardzo niewygodne. Komenda (iso-accents-mode) włączy lub wyłączy tryb akcentów ISO-8859-1, w którym sześc klawiszy: `, ', ", ^,  , / są klawiszami diakrytyk które modyfikują następujący po nich symbol. Kombinacje specjalne:  c daje c z cedillą,  d daje islandzkie eth,  t daje islandzkie thorn, "s daje niemieckie scharfes-s, /a daje a z kółeczkiem, /e daje ligaturę ae,  < i  > dają guillemoty,  ! daje odwrócony wykrzyknik,  ? odwrócony pytajnik. '' daje akcent acute. Jest to układ domyślny. Zmienna iso-languages jest listą par (nazwa języka, układ akcentów), a układ niedomyślny wybrać można poprzez (iso-accents-customize LANGUAGE) Tutaj LANGUAGE może być jednym z "portuguese", "irish", "french", "latin-2", "latin-1". Ponieważ domyślnym klawiszem Compose w Linuxie jest Ctrl-., może być wygodniej używać tego wszędzie. Spróbuj (load-library "iso-insert.el") (define-key global-map [?\C-.] 8859-1-map) (Ta ostatnia linia nie będzie działać pod xterm, jeśli używasz emacs -nw, ale w tym wypadku możesz wstawić) XTerm*VT100.Translations: #override\n\ Ctrl <KeyPress> . : string("\0308") do swojego .Xresources.) B. Dla less, ustaw zmienną środowiskową LESSCHARSET=latin1 Zrób to również jeśli widzisz <255> lub <AD> w tym co wypisuje man; niektóre wersje less będą oddawać "miękki" myślnik (ósemkowo 0255, szesnastkowo 0xAD) w ten sposób, jeśli nie pozwoli im się wypisywać Latin-1. [jeśli to nie pomoże, wywołuj less z opcją -r, bądź ustaw alias. Jeśli nawet to nie pomoże, albo masz powłokę która nie obsługuje aliasów, ustaw zmienną LESSCHARDEF na wartość 32.224c - przyp. tłum.] C. Dla ls, podaj opcję -N (być może zechcesz ustawić alias) D. Dla bash (wersja 1.13.*), wstaw set meta-flag on set convert-meta off i, według Danish HOWTO, set output-meta on do swojego $HOME/.inputrc. E. dla tcsh, użyj setenv LANG US_en setenv LC_CTYPE iso_8859_1 Jeśli masz w swoim systemie nls, używane są odpowiednie algorytmy. W przeciwnym razie tcsh założy iso_8859_1, niezależnie od wartości podanych w zmiennych LANG i LC_TYPE. Patrz sekcja NATIVE LANGUAGE SYSTEM w tcsh(1). Danish HOWTO twierdzi: setenv LC_CTYPE ISO-8859-1; stty pass8) F. Dla flex, podaj opcję -8, jeśli program przetwarzający który ono tworzy ma operować na ośmiobitowych danych wejściowych (oczywiście że ma). G. Dla elm, ustaw displaycharset na ISO-8859-1. (Danish HOWTO: LANG=C i LC_CTYPE=ISO-8859-1) H. Dla programów używających curses (takich jak lynx David Sibley donosi: "Zwykły pakiet curses używa ósmego bitu dla odwrócenia kolorów tła i ekranu (patrz flaga _STANDOUT zdefiniowana w /usr/include/curses.h). Niemniej ncurses zdaje się być czyste ośmiobitowo i wyświetla iso-latin-8859-1 poprawnie. I. Dla programów używających groff (takich jak man), upewnij się że używasz -Tlatin zamiast -Tascii. Stare wersje programu man używają również col, więc następny punkt stosuje się odpowiednio. J. Dla col, upewnij się że 1) ustawiony jest tak żeby wykonywać setlocale(LC_CTYPE,""); i 2) ustawiłeś zmienną środowiskową LC_CTYPE=ISO-8859-1. K. Dla rlogin, użyj opcji -8. L. Dla joe, sunsite.unc.edu:/pub/Linux/apps/editors/joe-1.0.8-linux.tar.gz działa podobno po wyedytowaniu pliku konfiguracyjnego. Ktoś inny powiedział: "joe: wstaw opcję -asis do /isr/lib/joerc, w pierwszej kolumnie. M. Dla LaTeX: \documentstyle[isolatin]{article}. Dla LaTeX2e: \documentclass{article}\usepackage{isolatin} gdzie isolatin.sty jest dostępny z ftp://ftp.vlsivie.tuwien.ac.at/pub/8bit. Ładna dyskusja na temat ISO-8859-1 i tego jak zarządzać ośmiobitowymi znakami zawarta jest w pliku grasp.insa-lyon.fr:/pub/faq/fr/accents (po francusku). Inną ładną dyskusję (po angielsku) można znależć w rtfm.mit.edu:pub/usenet-by-group/comp.answers/character-sets/iso-8859-1-faq. A jeszcze jedną (?), w ftp.vlsivie.tuwien.ac.at:/pub/8bit/FAQ-ISO-8859-1. Jeśli chcesz poprawić program który żle zachowuje się ze znakami ośmiobitowymi, musisz pamiętać o tym że jeśli używasz w nim typu "signed char", znaki mogą mieć wartości ujemne, a używanie ich jako indeksu tablicy nie uda się. Niektóre programy można poprawić dodając rozsądnie rzutowania na typ unsigned char. Następna strona Poprzednia strona Spis treści

Wyszukiwarka

Podobne podstrony:
Keyboard HOWTO pl 23 (2)
Keyboard HOWTO pl (2)
Keyboard HOWTO pl 7 (2)
Keyboard HOWTO pl 21 (2)
Keyboard HOWTO pl 14 (2)
Keyboard HOWTO pl 15 (2)
Keyboard HOWTO pl (3)
bootdisk howto pl 13
Keyboard HOWTO pl 5 (2)
Keyboard HOWTO pl 19 (2)
ax25 howto pl 13
Keyboard HOWTO pl 6 (2)
net 3 howto pl 13
Keyboard HOWTO pl 16 (2)
Module HOWTO pl 13 (2)
Keyboard HOWTO pl 17 (2)
ppp howto pl 13
printing howto pl 13
Serial HOWTO pl 13 (2)

więcej podobnych podstron