4 ноября 2005 г.

Знакомство с Vim. Настройки

Updated: 14.12.2008

Совсем недавно познакомился с текстовым редактором Vim. Поначалу он показался мне не только неудобным, но и довольно странным. Но за несколько месяцев работы я так привык к нему, что сейчас считаю vim лучшим текстовым редактором в мире :)

Кроме того, что это просто хороший редактор, он еще и совершенно бесплатный — последняя версия Vim всегда может быть скачана с www.vim.org. Окончательно меня покорило наличие версий редактора для разных операционных систем — Unix, Windows, Mac, ...


Для каждой операционной системы редактор vim существует в двух вариантах — консольном и оконном (графическом). Консольная версия обычно называется vim, а графическая — gvim (graphical vim). Эти варианты исполнения по своей функциональности ничем не отличаются, зато отличаются по внешнему виду и способам управления программой (клавиатура, мышь, меню). Например, в оконной версии (gvim) можно задавать шрифт, которыми будет отображаться текст в окне редактора. В Windows вполне логично пользоваться gvim.

Поскольку между консольным и графическим вариантом практически нет разницы по функциональности, я буду просто говорить vim, имея в виду и тот и другой.


Ну да ладно. Установить — установил. А вот сделать так, чтобы было удобно?.. Займемся настройкой vim.

У vim существует стандартный способ задавать настройки пользователя для редактора. Для этого нужно создать специальный конфигурационный файл и записать туда все, что нужно.

Файл этот называется .vimrc (для Windows — _vimrc). Находиться он должен в папке $HOME (в Windows его можно положить еще в папку $VIM, но это неправильно с точки зрения многопользовательской системы).

$HOME и $VIM — это переменные окружения. $HOME указывает на домашнюю папку пользователя, а $VIM — на папку, куда был установлен vim. Проверить наличие этих переменных в среде Windows довольно просто. Нужно ткнуть правой кнопкой мыши в "Мой компьютер" и выбрать "Свойства". В открывшемся диалоговом окне выбрать вкладку "Дополнительно" и нажать кнопку "Переменные среды". После этого на экране возникнет окошко со списком переменных, установленных в системе.


Для Unix-пользователей все достаточно просто — в системе уже должна присутствовать переменная $HOME, которая содержит путь к домашней папке. А вот для Windows дела обстоят немного сложнее — переменной $HOME может и не быть. Если ее нет — нужно создать.

На самом деле, наличие в системе Windows установленной переменной $HOME не так уж и важно. Если этой переменной не существует, то vim на время своей работы сам установит переменную $HOME, по умолчанию указывающую на папку "Мои документы".


Надо сказать, что у редактора vim есть особенность, отличающая его от других текстовых редакторов — режимы. Режимов довольно много, но я пока перечислю только три — нормальный, командный и режим редактирования. Каждый режим предназначен для совершенно конкретных целей и в нем невозможно выполнять действия, которые доступны в других режимах.

Нормальный режим. Это режим в который сразу переходит vim при запуске. В этом режиме нельзя вводить текст, но можно выполнять специфические действия, например, выделение текста, удаление строк, undo и redo, навигация по тексту и многое другое. Этот режим является общим и из него можно переходить в другие режимы нажатием специальных клавиш.

Режим редактирования предназначен для ввода текста и его редактирования. Перейти в него из нормального режима можно нажатием клавиш i или a. При этом изменится вид курсора, а внизу окна редактора появится надпись --ВСТАВКА-- (--INSERT--). В этом режиме можно вводить и удалять текст, а также вставлять текст из буфера обмена.

Для пользователей Windows существует небольшая проблема, связанная со вставкой текста. Дело в том, что vim по умолчанию не поддерживает сочетание клавиш Ctrl+V. Вы можете использовать сочетание Shift+Ins или контекстное меню, доступное по правой кнопке мыши. Есть еще один способ — использовать среднюю кнопку мыши. Для Unix-систем это стандартный способ вставки текста мышью. Нужно просто ткнуть в текст средней кнопкой — если в буфере обмена есть текст, то он будет вставлен.


Командный режим предназначен для выполнения команд. Например, это команды открытия и сохранения файлов, сортировки строк, выполнения поиска и замены текста и многих других. Перейти в этот режим из нормального можно нажатием : (двоеточие). После этого курсор переместится вниз экрана, в область, предназначенную для ввода команд.

Вернуться в нормальный режим из любого другого можно нажатием кнопки ESC.

Итак, вернемся к настройкам. Теперь нужно создать файл настроек. Запускаем vim и вводим команду: ":e $HOME/.vimrc". Эта команда откроет для редактирования файл с настройками. В графической версии можно просто вызвать команду меню "Edit->Startup Settings". Теперь нужно перейти в режим редактирования — нажать i — и можно вписывать настройки...

Мне, например, не нравится, когда vim находится в так называемом режиме совместимости с редактором vi (тоже хорошая штука, но для непосвященных — просто жуть). Поэтому я такой режим обычно отключаю:

set nocp " Переходим в режим nocompatible

Текст после символа " — это комментарий, там сможно писать все, что угодно, лишь бы помогло :)

Еще удобно, когда видно, на какой строке/позиции находится курсор:

set ruler

Эта команда включает показ статусной строки внизу экрана редактора, которая показывает координаты курсора в тексте, а также примерное текущее положение в процентах.

Еще есть полезная опция, хоть я ей обычно и не пользуюсь — нумерация строк:

set number


В Windows я пользуюсь графической версией редактора. И люблю, когда размер окна по умолчанию не какой попало, а такой, как мне нужно:

set lines=45
set columns=80

Тут комментарии излишни. А если что-то нужно изменить в процессе работы, это можно исправить, растянув окно мышкой или вводом команды, например, ":set columns=120".

Еще хорошо бы установить подходящий шрифт в графическом vim (gvim), но тут я не нашел быстрого способа, потому что в разных системах имена и размеры шрифтов различаются. Я делаю обычно так: в gvim с помощью диалога выбора шрифтов "Правка->Выбор шрифтов..." выбираю тот шрифт, который мне больше нравится (вызвать диалоговое окно выбора шрифтов можно также командой vim ":set guifont=*"); потом набираю команду ":set guifont?" — vim выведет имя и размер выбранного шрифта, например, "guifont=Courier_New:h9:cRUSSIAN"; эту строку теперь можно записать в vimrc:

set guifont=Courier_New:h9:cRUSSIAN

Теперь нужно сохранить все, что я записал в .vimrc, и тогда vim будет считывать эти настройки при каждом своем запуске: входим в командный режим (:) и вводим команду wq, что означает "сохранить" (write) и "выйти" (quit).

Запускаем vim снова. Ну, теперь уже похоже на цивилизованный редактор :) Можно начинать работу.

5 комментариев:

  1. Спасибо. То что надо.

    ОтветитьУдалить
  2. А еще, можно поставить очень приятную цветовую схему - "railscats"
    скачать, сохранить в папку "colors"
    далее добавить в конфиг - "colorscheme название_схемы" - без скобок. Сохранить, перезапустить и насладждаться. Очень хорошо, идет под шрифт "Consolans".
    И спасибо за информацию, вот и от меня немного :)

    ОтветитьУдалить