Vim - прекрасный редактор для unix и unix-like систем, однако существует порт и под win32/win64. Естественно, порт не без шероховатостей, уж очень сильно отличается windows от нормальных систем.

Естественно, под windows существует как gui так и консольная вариация на тему vim. И если с gui-версией всё относительно понятно (нужность её под большим вопросом). Ну и как бы GUI для vim - это конечно круто и даже наверняка есть свои фанаты и у этой вариации vim, но я пока её не осилил, каюсь, не было такой необходимости. А вот что касается консольной вариации на тему vim, то тут во всё красе проявляется многокодировочное наследие windows-прошлого и настоящего. То есть (в vim) какбы подразумевается, что мы работаем не в cp866, а наверно в utf-8, но на практике, если мы не сказали chcp utf-8 в консоле до вызова vim, то нас ждёт сюрприз в виде каракозяблей вместо русского языка.

Чтобы предметно говорить на тему vim под windows первым делом надо выяснить, где у него конфиги. Говорим

:version

в командном режиме и выясняем, что первым делом юзерский конфиг ищется в:

%USERPROFILE%\_vimrc

Для того, чтобы починить кодировку закидываем строки в этот конфиг:

set encoding=utf-8
set termencoding=cp866
set fileencodings=cp866,cp1251,utf-8

теперь vim будет внутри себя хранить строки как utf-8, на экран выводить в cp866 и автоматически угадывать кодировку входного файла среди cp866, cp1251, utf-8.

можно добавит ещё немного кодировочного "сахара":

language ctype Russian_Russia.1251
set iskeyword=@,48-57,_,192-255 " добавка рус. симв. к ключевым словам
set iminsert=0                  " но по-умолчанию - английская
set imsearch=0                  " и при поиске — английская

Далее, в режиме редактирования по-умолчанию не работает backspace, это какбэ не сильно приятно, но устраняется просто:

set backspace=indent,eol,start

Иногда, vim ведёт себя странно: если удалить весь текст и попробовать перейти в режим редактирования, редактирование включается попытки с 3-й, чтобы прекратить это безобразие достаточно вписать:

set nostartofline

Ещё полезно довернуть пару удобных ручек - поддержка модлайнов, подсветку синтаксиса и результатов поиска, а также индентацию согласно информации, указанной в файле с подсветкой синтаксиса:

set modeline
syntax enable
set incsearch hlsearch
filetype plugin indent on

На этом подгонку рашпилем vim-а до минимально рабочего состояния вобщем-то можно считать законченной, дальше начинается вкусовщика.

Next Post