Vim/Kodowanie
Z Wikibooks, biblioteki wolnych podręczników.
[edytuj] Kodowanie
Ustawienia dla polskiej normy kodowania wszystkich otwieranych plików:
set fencs=iso-8859-2
Łatwiejszą do zapamiętania nazwą kodowania iso-8859-2 jest Latin-2:
set fencs=latin2
Jeśli widzisz na ekranie krzaczki, zamiast prawidłowych znaków, możesz przeładować plik w innym kodowaniu:
:e ++enc=<encoding>
To polecenie nie zmieni jednak kodowania już napisanego tekstu. Do tego celu na *nixach jest polecenie iconv
iconv -f ISO-8859-2 -t UTF-8 plik.wejsciowy -o plik.wyjsciowy
[edytuj] Przydatne polecenia
:help ++opt :help mbyte-encoding :help encoding-values :help 'fileencodings' /"ucs-bom" :help 'bomb'
szczególnie ostatni paragraf:
:help :set^=
[edytuj] Wyjaśnienie kodowania
'termencoding' jest zestawem znaków dla klawiatury, oraz (tylko w konsolowym Vimie) dla ekranu.
'printencoding' jest zestawem znaków dla drukarki, jeśli oba +printer i +postscript są wkompilowane.
Konwersja przebiega następująco, jeśli zestawy znaków różnią się a metoda konwersji jest znana:
- 'fileencoding' na 'encoding' podczas czytania z dysku
- 'termencoding' na 'encoding' podczas wpisywania z klawiatury
- (tylko w konsolowym Vimie): 'encoding' na 'termencoding' podczas wyświetlania
- 'encoding' na 'printencoding' podczas drukowania przez PostScript
- 'encoding' na 'fileencoding' podczas zapisu na dysk
Użycie ":w ++enc=XXX" nie zmienia zachowania domyślnego (ang. ulterior?) zapisu.
Użycie 'fileencoding' (które lepiej zmieniać przez ":setlocal" niż ":set") zmienia zachowanie zapisu.
fileencodings różni się od fileencoding tym, że ustawia domyślny zapis dla wszystkich plików.