Здесь собраны удобные команды, или подходы к работе в Vim которые могут быть полезны не только мне. Соответственно можно использовать описанные команды напрямую, или адаптировав под свою ситуацию.
Отступы
Достаточно часто различные проекты используют разные стили кодирования и одним из условий может быть использование определенного стиля отступов. Например, в стандартной библиотеке Python для кода Python используются отступы 4-мя пробелами, а для кода C - отступы табуляцией равной 8-ми пробелам. Для изменения отступов в Vim используются следующие опции:
- tabstop - количество пробелов которое используются для табуляции;
- shiftwidth - количество пробелов которое используется в командах отступа, например >>, или <<;
- expandtab - определяет нужно ли заменять табуляцию на соответствующее количество пробелов;
Что бы совсем упростить себе жизнь я определил пару команд в своем файле конфигурации ~/.vimrc:
com SpaceIndent :set tabstop=4| set shiftwidth=4| set expandtab com TabIndent :set tabstop=8| set shiftwidth=8| set noexpandtab
Теперь если мне нужны отступы 4-мя пробелами, я ввожу :SpaceIndent. А если нужно использовать стандартную табуляцию - :TabIndent. Для еще большей автоматизации можно пойти дальше и определить автоматические команды, с помощью команды :autocmd, которые будут включать необходимый тип отступов в зависимости от имени, или пути к открываемому файлу.
Строка статуса
Мне нравится когда информация о файле всегда на экране и поэтому в файле конфигурации ~/.vimrc я использую следующие команды:
set wildmenu set laststatus=2 set statusline=%<%f\ [%Y%R%W]%1*%{(&modified)?'\ [+]\ ':''}%*%=%c%V,%l\ %P\ [%n]
Рассмотрим каждую строчку подробнее:
- wildmenu - при использовании авто-дополнения в командной строке показывать доступные варианты над командной строкой. При этом доступны дополнительные команды выбора варианта дополнения. Подробности смотрите командой :help 'wildmenu';
- laststatus - определяет, имеет ли единственное окно на экране строку статуса. Значение 2 указывает, что строка статуса всегда должна показываться;
- statusline - задает формат строки статуса. У меня показываются: имя файла, тип файла и режим в котором он открыт, подробное положение в файле и номер буфера;
Графический интерфейс
В повседневной работе очень часто использую графический интерфейс через GVim. Вот несколько команд из моей конфигурации ~/.vimrc:
if has("gui") set guioptions+=b set guioptions-=T set columns=80 set lines=50 endif
Здесь:
- guioptions - определяет какие компоненты и опции графического интерфейса должны использоваться. Значение +=b добавляет нижнюю горизонтальную полоску прокрутки, что удобно в случае текста с длинными строчками. Значение -=T убирает панель инструментов - я очень редко пользуюсь даже верхним меню, так что панель инструментов только занимает место на экране;
- colums - задает количество колонок текста в окне. 80 - это классическое количество символов в строке, которое будет хорошо читаться, не "вылезая за экран", на подавляющем большинстве терминалов;
- lines - задает количество строк текста в окне. Здесь мне нравится число побольше и 50 - оптимальное количество строк помещающихся на экране при оптимальном для меня размере шрифта;
Проверка орфографии
Постоянно забываю как подключить проверку русской орфографии, поэтому здесь этот раздел.
С FTP сервера Vim нужно забрать два файла с расширениями .spl и .sug для нужного языка и кодировки. Для русского языка в моем случае это: ru.utf-8.spl и ru.utf-8.sug. После этого эти файлы нужно положить в директорию ~/.vim/spell/ и для включения проверки выполнять следующую команду:
:setlocal spell spelllang=ru
Пример полной конфигурации
Мой файл конфигурации для Vim, в том числе включающий некоторые примеры выше:
- vimrc Версия 0.2 (30.12.2008)