Автоопределение кодировок в vim
Когда я жил в идеальном мире фриланса на европейцев и собственных проектов исключительно с UTF-8 в исходниках, я был счастлив. Запускал vim - и всегда получал читаемый код с читаемыми комментариями. Никаких проблем с кодировками. И не думал даже о них.
А потом приспичило мне поработать в офисе. Где кондиционер и живые люди. И кот не отрывает каждые пять минут от работы, чтобы потребовать очередную банку консервов. И началось. Весь код здесь писался под виндой. В CP1251 и с виндовыми переводами строк. Иногда приходится исследовать или даже править скрипты клиентов – и там чаще всего то же самое. Нет, ничего плохого в виндовой кодировке нет (кроме того, что она виндовая, конечно, но из красноглазия я вроде вырос), но работать-то? Дайте ответ! Не дают. Сам нашёл. К тому же ничего сложного в чтении :help нет.
Так вот: достаточно дописать в .vimrc две строки. Одну для кодировки и одну для концов строк:
set fencs=utf8,cp1251
set ffs=dos,unix
UTF перед CP1251 – это существенно. В противном случае всё будет определяться как CP1251, и получатся более потивные кракозябры, чем раньше.
Можно ещё добавить информацию о текущей кодировке в статусную строку. У меня это сделано так (первые две строки – на самом деле одна, я разбил, чтобы она на сайдбар не налезла):
set statusline=%<%f%h%m%r%=[%{&fileformat}]
[%{&fileencoding}]\ enc=%{&encoding}\ 0x%B\ %l,%c%V\ %P
set laststatus=2
Фев. 10, 5720 // 12:18 | Комментарии (4)
![[rss]](images/rss.gif)