вівторок, 8 липня 2008 р.

Настройка проверки орфографии в vim 7.0

Более подробно мне бы хотелось остановиться на такой очень полезной фиче

Vim 7 как проверка орфографии. Так как у меня с этим проблемы, то ужа

довольно давно я нагородил кучу костылей, чтобы научить vim проверять

орфографию. Теперь же все эти костыли были с радостью удалены. Ведь vim

7 имеет встроенную поддержку орфографии!


Теперь я расскажу как ее включить/настроить. Все не просто, а очень

просто. Словари можно скачать с сайта ftp://ftp.vim.org/pub/vim/runtime/spell/

и положить в папочку ~/.vim/spell, если хотите использовать этот словарь только

для одного пользователя, либо в общую директорию (обычно /usr/share/vim/vim70/spell).


Для тех же, кто хочет создать свой словарь для начала нужно найти

исходный словарь словарь. Можно использовать два формата словарей, aff и

dic. Разработчики vim предлагают воспользоваться словарями OpenOffice

что я и сделал. Скачать их можно по адресу.


Так как для русского языка уже существует целый набор словарей, я не

стал искать разницу и скачал их все, и все добавил в словарь vim. Как

это сделать я покажу чуть ниже. Итак у нас есть словари и есть исходные

тексты vim 7. Копируем наши словари в директорию vim70/runtime/spell/ru.


Затем накладываете патчик


        patch < ru_RU.diff


, а после запускаете из vim


        :mkspell ru <путь_к_словарю_1> <путь_к_словарю_2> <и_так_сколько_хотите_словарей>


Таким образом вы генерируете словарь с именем ru. Конечно это не очень

хорошее имя. Лучше если вы выберете нечто типа ru_ваша_кодировка. Будте

внимательны, словарь генерируется для вашей локали. Для каждой локали

словарь надо генерировать заново.


Теперь полученные словари копируете в вышеуказанные директории и

наслаждаетесь жизнью ;)


Все, теперь наш vim умеет проверять правописание. Для большего удобства

я набросал маленькую функцию, которая позволяет быстро переключать язык,

или вообще выключать проверку орфографии. Вот он.


if version >= 700
" По умолчанию проверка орфографии выключена.
setlocal spell spelllang=
setlocal nospell
function ChangeSpellLang()
if &spelllang =~ "en_us"
setlocal spell spelllang=ru
echo "spelllang: ru"
elseif &spelllang =~ "ru"
setlocal spell spelllang=
setlocal nospell
echo "spelllang: off"
else
setlocal spell spelllang=en_us
echo "spelllang: en"
endif
endfunc

" map spell on/off for English/Russian
map :call ChangeSpellLang()
endif


Эту небольшую функцию можно вставить в свой .vimrc и все. По нажатию

F11 будут попеременно включаться Русский, Английски, или вообще

выключаться проверка орфографии. Все неправильно написанные слова будут

подсвечены. Теперь при наведении на это слово курсора и нажатии z=

выпадет менюшка, с возможными правильными вариантами. Как и везде слово

можно добавить к словарю (zG), перейти к следующей (]z), предыдущей ([z)

ошибке, пометить слово как ошибочное - zW. Надеюсь теперь грамотность в

Рунете существенно возрастет ;-)


Успехов в освоении vim :-)


Джерело http://howtoforge.org.ua/?q=node/353




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