VIM - Шаг за шагом

Когда-то, когда я в первые увидел Линуксовую консоль на своем десктопе, VIM казался мне монстром, которым вообще невозможно пользоваться. Первый мой вход в редактор закончился перезагрузкой, т.к. я просто не знал как из него выйти. Данная статья опишет возможности (далеко не все) редактора в том порядке, в котором познавал их я.

Итак приступим. Первое что нужно знать, и с чего начинаются все руководства по VIM - это режимы.

Да, да в vim есть несколько режимов работы:

  • Коммандный режим
  • Режим редактирования
  • Визуальный режим

Начнем с самого важного действия: как выйти из редактора.

Для этого нужно перейти в коммандный режим - нажмите клавишу <esc> (пару раз для верности :) ) затем наберите :q и нажмите Enter.

Набираемая вами комманда должна отображаться в самом низу экрана.

Если же вы уже успели сделать изменения в файле редактор не даст вам выйти, сообщив о том, что файл изменен. Чтобы выйти без сохранения нужно добавить в конце комманды восклицательный знак :q!.

Если же вам нужно сохранить изменения наберите :w затем повторите комманду выхода из редактора. Можно сделать это в одно действие: :wq или :x .


Итак, выходить из редактора мы научились. Теперь перезагрузка не потребуется :). Идем дальше. Если вы открыли редактор, то для чего-то…. Конечно - изменить файл. Самое простое действие здесь - при помощи клавиш со стрелками на клавиатуре поместит курсор в то место, где вы собираетесь начать редактирование.

Если же ваша клавиатура не имеет таких клавиш - вам помогут аналоги:

  • j - вниз
  • k - вверх
  • h - влево
  • l - вправо

Как начать редактирование? нажать клавишу <i> - при этом в нижней части экрана появится надпись – INSERT – или – ВСТАВКА --.

Теперь вы можете редактировать содержимое файла. для удаления символа - клавиша <delete> , переход в командный режим <esc>


На этом базовые возможности заканчиваются. С этим знанием уже можно работать - так я и поступал, пока мне не надоело выполнять рутинные операции. Зная, что VIM может больше я начал читать руководства, и следующим, что я усвоил была комманда dd

Находясь в коммандном режиме перейдите на нужную строку и два раза нажмите клавишу <d> - строка исчезнет.

Если нажать D - исчезнеть часть строки от курсора, до ее конца. Чувствуете насколько стало удобней?


Однажды меня достало безумная долбежка клавиши d при удалении сотни строк. Оказалось перед любой коммандой можно ввести числовой модификатор, который укажет сколко раз выполнить комманду.

Итак: 5dd - удалит 5 строк начиная с текущей.


Дальше - больше. Понадобилось копировать и вырезать строки для последующей вставки, оказалось, что dd не удаляет строку, а вырезает ее.

Есть еще комманда yy, которая копирует строку целиком.

Вырезанное или копируемое нужно как-то вставить в место назначения - нет ничего проще p вставит строки, находящиеся в буфере после текущей строки, а P - перед текущей строкой.

В коммандном режиме можно удалять символ под курсором клавишей <delete> или x - тут так же применимы числовые модификаторы.

Для полноценного редактирования не хватает операций отмены изменений и повтора. Они есть: в коммандном режиме u и Ctrl+r - соответственно. И снова не забываем про числовые модификаторы.


В последнее время я начал редактировать в VIM исходные тексты программ. Вот тут появилась необходимость видеть номера строк. :set number - включит отображение номеров, а :set nonumber - выключит.

Но тут у меня появилось несколько бед сразу, во первых, если скопировать что-то из другого редактора и попытаться при помощи средней кнопки вставить в VIM в режиме редактирования - приходится править отступы. От этой беды спасает режим вклейки: :set paste / :set nopaste.

Следующая беда - если во вставленный текст попадают номера строк. Приходится по несколько раз нажимать на каждой строке x или delete оказалось и от этой беды есть панацея - визуальный режим.

Переходим в визуальный режим нажатием Ctrl+v, двигаем курсор по экрану, чем выделяем определенную прямоугольную область, затем нажимаем x, и выделенной области - как не бывало.

Так же может потребоваться групповая вставка - например нужно закомментировать блок кода, вставив в начале каждой строки »«. Снова на помощь приходит визуальный режим: Выделяем область шириной в один символ и нужной высоты, нажимаем клавишу I (заметьте в верхнем регистре) и пишем нужный текст, который отображается только в верхней строке. Далее, чтобы выйти из режима редактирования жмем <esc>**, и …. О чудо!!! Текст появляется в начале каждой строки, что были выделены в визуальном режиме.

Последние изменения: %2010/%03/%22 %01:%Mar