On Fri, 23 Jul 2010, Nikolai Weibull wrote:
> Bram Moolenaar wrote:
>
> > Patrick Texier wrote:
>
> >> No, it is the right way to define encoding of a 8-bit file. Vim can not
> >> choose between ISO-8859-1(15), cp1252, cp1250...
>
> > I'm trying to think of a valid reason to change
> > 'fenc' in the modeline. Can't think of one...
>
> Oh, wait, the order is wrong, here, let me fix it:
>
> Patrick Texier wrote:
>
> > Bram Moolenaar wrote:
>
> >> I'm trying to think of a valid reason to change
> >> 'fenc' in the modeline. Can't think of one...
>
> > No, it is the right way to define encoding of a 8-bit file. Vim can not
> > choose between ISO-8859-1(15), cp1252, cp1250...
>
> There, that makes a lot more sense.
>
As Bram asserted, modelines take effect too late to serve this purpose.
The file has already been read by the time the 'set fenc=whatever' takes
place. The only way to do this right is to tell Vim to expect the
encoding you're going to need. One of:
set fenc when opening Vim: vim +'set fenc=cp1252' filename
or tell Vim to always expect CP1252, in RC files: set fencs=utf-8,cp1252
or while opening within Vim: :e ++enc=cp1252 filename
If you want to get fancy, an autocmd to parse some type of metadata in
the file *might* help (but again, I'm not sure of the execution order).
Completely untested:
fun! SetCP1252(file)
let found=system('head -n 100 '.shellescape(a:file).' | grep -i "cp-?1252"')
if strlen(found)
setl fenc=cp1252
endif
endfun
aug HackyDetect
au BufReadPre *.html :call SetCP1252('<amatch>')
aug END
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php