Portál AbcLinuxu, 12. července 2025 13:35
Zdravím,
mám jeden soubor, do kterého chci vepsat informaci tak, aby ho Vim (popř. i Emacs) bezpodmínečně bral jako kódovaný v UTF-8. Je to z důvodu, aby i lidi, kteří nemají nastavené utf8 jako default, viděli při otevření toho souboru správně všechny znaky.
Zkoušel jsem na první řádek dát ("%" je znak pro komentář v daném jazyce):
% vim: set fileencoding=utf8
a obdobně i s "encoding", ale bez úspěchu. Zatímco když dám Vimu přímo příkaz ":set encoding=utf-8", tak se české znaky zobrazí správně (ale ":set fileencoding=utf8 nefunguje).
Jak se dá Vimu (a popř. i Emacsu) takhle přímo v souboru říct, v jakém je kódování?
Dík, Boris
vim ~/.emacs
set
% vim: fileencoding=utf8ja osobne mam paticku v souborech obvykle takovouto
// vim: et sts=4 sw=4 fdm=marker cms=\ //\ %s
% vim: foo=boo bar=baznebo
% vim: set foo=boo bar=baz :A fenc v nich z principu nebude to fungovat, protože je potřeba jej nastavit dřív, než se načte soubor (ve kterém je ovšem ta modeline).
Díky, bez toho set, a s nastavováním "encoding" místo "fileencoding" to funguje!
vim ~/.emacs
iconv
) do utf-8. Což vždycky nemusí být to co potřebujete.
~/.vimrc
, pro utf-8 např.:
if has("autocmd") au BufReadPre *.utf8 set fencs=utf-8 au BufReadPre *.utf8 set fenc=utf-8 endifdíky čemuž se vnutí kódování ještě před otevřením souboru (BufRead), ale vyžaduje to úpravu
~/.vimrc
. Že by bylo nějaké univerzální řešení které by to vynutilo dané kódování i někde "u klienta" o tom nevím, záleží dost na tom jak to má ošéfované ten klient, žejo...
Na univerzální řešení si budeme asi muset počkat, až to budou filesystémy uchovávat v atributech souboru, a všude se ta informace bude předávat.
vim ~/.emacs
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.