неділя, 26 серпня 2007 р.

Работа с различными кодировками в Vim

Часто, работая с текстами, приходится сталкиваться с тем, что кодировка системы одна, а текст создан в совсем другой. В моем случае это особенно досадно проявилось, когда нужно было редактировать файлы списков контента поддерживаемого мною сайта, или же добавлять новые документы. Все бы нормально, но действующая кодировка в моей системе - UTF-8, а сайт создавался под cp-1251... и это не приятно.
Есть множество вариантов решения этой проблемы. Например, использовать iconv, но это не удобно, так тогда прийдется перегонять сначала из 1251 в utf, а потом обратно каждый файл. Можно было бы перевести весь сайт на utf, но это слишком радикальный шаг. А можно было бы использовать оффис: редактировать в нем и записывать сразу в нужной кодировке. Но оффис - тяжелый... тоже не кошерно, тем более, что есть такой замечательный редактор, как Vim.
Итак, находим файл .vimrc и добавляем в него следующие строки:

set encoding=utf8
set termencoding=utf8
set wildmenu set wcm=
menu Enc.koi8-u :e +enc=koi8-u
menu Enc.windows-1251 :e ++enc=cp1251
menu Enc.ibm-866 :e +enc=ibm866
menu Enc.866 :e ++enc=cp866
menu Enc.utf-8 :e ++enc=utf-8
map :emenu Enc.


Что нам это дает?
Открывая файл посредством Vim, или еще лучше GVim (Vim с gui интерфейсом), мы находим новое меню Enc. В котором позиции переключаются посредством клавиши F7. Теперь, можем править любой текст в его родной кодировке не заморачивая себе мозги лишними действиями.




























Вот так это выглядит

Немає коментарів: