Staszek Wawrykiewicz pisze:
> > P.S. Na początku NTEmacs pokazuje polskie litery jako kwadraciki.
> > Wystarczy jednak wybrać font (Shift-Klawisz myszy lub prawy klawisz myszy,
>
> To jest straszne!!! Font już określono w .emacs.el, a tu jeszcze trzeba
> przy każdym uruchomieniu klikać, lub wybierać z menu Mule->SetFont
> i tylko zatwierdzać OK :-(
Ja mam coś takiego w .emacs:
(setq default-frame-alist
(append
'(
(width . 80) ; domyślna szerokość okienka w znakach
(height . 40) ; wysokość :-}
(font . "fontset-standard") ; a tu pies pogrzebany
)
default-frame-alist))
> > P.P.S. Informacje o kodowaniu wyświetlane są w wierszu statusu (modeline).
>
> Dla wykluczenia dodatków usunąłem site-lisp/site-start.el|elc i tylko mam
> ~/_emacs.el jak w liście p. Jakuba `Encoded-kbd' w modeline to żadna
> informacja o kodowaniu. Być może trzeba dodać jakieś zaklęcie w .emacs.el,
> aby kodowanie trafiło do modeline.
Kodowanie jest w postaci _mocno_ skróconej w pierwszych 5 znakach
linii statusu. Dla Latin-2 jest to -2: , dla cp1250 -D: .
> Zresztą to całe przełączanie kodowania
> też jakoś nie chce działać (nie mówię tu o klawiaturze, pozostając przy
> standardowym Right-Alt).
Podstawowa rzecz, którą trzeba zrozumieć z Mule'a to to, że bufor w
Emacsie nie jest ani w Latin-2, ani w cp1250, tylko zawsze w pewnym
dziwacznym kodowaniu, o którym wystarczy wiedzieć tyle, że jest
jednoznaczne. Że pozwala zakodować jednoznacznie dowolny znak i że
zawsze jest takie samo. Można sobie wyobrażać, że znaki wewnątrz
bufora mają jednoznaczne nazwy (np. aogonek), a nie jakieś kretyńskie
numery.
> Eksperyment: włączone cp1250, piszemy ąćęłńóśźż,
> zapisujemy plik, przełączamy na latin-2 i znów piszemy ąćęłńóśźż.
> W zapisanym pliku ASCII oba ciągi mają kodowanie cp8859-2 (latin-2).
Co innego tekst w pliku. Ten już jest w jakimś kodowaniu.
Więc jeżeli użyłeś funkcji set-buffer-file-coding-system to
zadeklarowałeś kodowanie dla pliku i nic dziwnego, że gdy zrobiłeś to
dwa razy to zostało ostatnie.
> Jest w tym jakaś logika, ale... w takim ustawieniu czytam z dysku inny plik
> kodowany w latin-2 (taki sam ciąg znaków, bez dodatkowych informacji)
> i wyświetla śmieci ;-(
Nie da się ,,czytać pliku w takim ustawieniu''. To znaczy jeżeli
używałeś set-buffer-file-coding-system. Bo to jest lokalne dla
bufora.
Twój Emacs jest nauczony, że domyślnym kodem dla plików jest cp1250
(patrz (prefer-coding-system 'cp1250)). Więc każdy otwierany plik
będzie traktował jako cp1250 i jeżeli plik jest w czym innym, to
zobaczysz krzaki.
Żeby mu powiedzieć, że pewien konkretny plik ma być władowany w innym
kodzie musisz _bezpośrednio przed_ otwarciem pliku użyć polecenia
Mule->Set Coding System->Next Command (C-x RET c) i podać nazwę kodu.
To polecenie ustanawia system kodowania dla _jednego_ następnego
polecenia.
Kiedy plik już załadowałeś i widzisz krzaki, to nic Ci nie pomoże.
Kod z wejścia został (niepoprawnie) odwzorowany w Absolutną
Uniwersalną Ostateczną Notację Wewnętrzną, a na nią już nie masz
wpływu.
> Chyba to taka uroda mule...
Taaa, bardzo to przypomina Worda. Tylko we Wordzie nie ma polecenia
C-x RET c ani żadnego innego sposobu na wskazanie kodowania
otwieranego pliku.
Pozdrawiam,
M.
----------------------------------------------------------------------
Marcin Woli\'nski mailto:[EMAIL PROTECTED]
http://www.mimuw.edu.pl/~wolinski
----------------------------------------------------------------------