Portál AbcLinuxu, 10. května 2025 04:57
; vim: set fenc=cp1250 sw=4 ts=4 sts=4 sta et ai :tak se soubor načte se špatným kódováním. Jakoby se tyhle instruce prováděly až po načtení souboru. Když totiž provedu načtení přímo z vimu, je to ok: :e ++enc=cp1250 soubor.txt Kde je chyba? Zkoušel jsem v tom řádku psát různé kombinace enc/fenc, ale nezabírá níc. Jedině když soubor otevřu přímo z vimu.
:set modeline?
a
:set modelines?
fileencodings
(fencs
)?
Doporučuji k prostudování :help fenc
function GetEncoding(f) let e = system('enca -Pe "' . a:f . '"') let e = substitute(e, '/.*', '', '') if e =~ 'unknown' return 'ascii' endif return e endfunc if has("autocmd") au BufReadPre * exec "set fencs=ucs-bom," . GetEncoding(expand('<afile>')) endif(Fakt už nevím kde jsem tohle splašil.) Nebo já jsem si ještě přidal něco podle extension, třeba pro tex (csplain), gnuplot a tak:
if has("autocmd") au BufReadPre,BufNewFile *.tex set fenc=iso-8859-2 au BufReadPre,BufNewFile *.gnu set fenc=iso-8859-2 au BufReadPre,BufNewFile *.plot set fenc=iso-8859-2 endif
if has("autocmd") au BufReadPre,BufNewFile *.tex set fencs=iso-8859-2 au BufReadPre,BufNewFile *.gnu set fencs=iso-8859-2 au BufReadPre,BufNewFile *.plot set fencs=iso-8859-2 endifDo jednoho příkazu mi to sloučit nejde:
au BufReadPre,BufNewFile *.tex set fencs=iso-8859-2 \set fenc=iso-8859-2 (nefunguje)Pak je tu ještě možnost zkusit
vim a.tex -c "set fileencodings=cp1250" -c "set fileencoding=cp1250"nebo
--cmd
(tam je riziko že to .vimrc
přebije)
vim a.tex --cmd "set fileencodings=cp1250" --cmd "set fileencoding=cp1250"
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.