Перекодировка файлов в Vim
После долго мучения с сабжем был найден следующий кусок конфига для vim’а, создающий меню “Encoding”:
" Menu Encoding {{{1
menu Encoding.koi8-r :e ++enc=koi8-r
menu Encoding.windows-1251 :e ++enc=cp1251
menu Encoding.dos :e ++enc=ibm866
menu Encoding.utf-8 :e ++enc=utf-8
В принципе штука удобная, но хотелось бы не лезть лишний раз в меню…
В доках с vim’у была найдена команда autocmd, на её основе удалось замутить автоперекодировщик фалов в зависимости от префикса в имени файла. Затем была добавлена перекодировка в зависимости от имени каталога в котором лежит файл.
" Auto decoding (read) {{{1
autocmd BufReadPost koi.*,*/koi8/* :e ++enc=koi8-r
autocmd BufReadPost win.*,*/win/* :e ++enc=cp1251
autocmd BufReadPost dos.*,*/dos/* :e ++enc=ibm866
autocmd BufReadPost utf.*,*/utf/* :e ++enc=utf8
" Auto decoding (write) {{{1
autocmd BufWritePre koi.*,*/koi8/* :set fileencoding=koi8-r
autocmd BufWritePre win.*,*/win/* :set fileencoding=cp1251
autocmd BufWritePre dos.*,*/dos/* :set fileencoding=ibm866
autocmd BufWritePre utf.*,*/utf/* :set fileencoding=utf8
Можно добавить любую другую кодировку или метод распознавани кодировки по имени файла.

Leave a Reply
You must be logged in to post a comment.