Перекодировка файлов в 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

Можно добавить любую другую кодировку или метод распознавани кодировки по имени файла.

~ by webcoder on July 3, 2006.

Leave a Reply

You must be logged in to post a comment.