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
----------------------------------------------------------------------

Odpowiedź listem elektroniczym