Этот текст я писал для solarisblog.ru уже достаточно давно. С тех пор я забросил этот блог, с Solaris не работаю, да и Solaris утратил популярность. Однако vi и vim я по-прежнему использую, но теперь в Linux. И описанные 10 команд по-прежнему остаются для меня самыми полезными.

Редактор vi считается очень сложным. Якобы, он требует много времени на изучение и знание большого количества команд, которые нужно вводить с клавиатуры.

На мой взгляд, vi – это очень простой редактор. Если не писать в нем стихи или программы, а использовать для целей администрирования, то нужно знать всего 10 команд. По крайне мере, наизусть я помню именно эти команды, и их мне вполне хватает для решения 99% задач администрирования Unix.

Итак, 10 самых нужных команд vi:

Режим команд:

i - переход в режим редактирования перед текущим символом (вставка, insert).

a - переход в режим редактирования после текущего символа (добавление, append).

r - замена одного символа в текущей позиции курсора (replace).

x - удаление символа в текущей позиции курсора.

dd - удаление всей строки, в которой находиться курсор.

u - отмена предыдущего изменения (undo).

/шаблон - поиск шаблона в файле. Если шаблон встречается несколько раз, то можно использовать команды навигации: n – поиск вперед, N – поиск назад.

yy – копирование текущей строки в буфер обмена (yank). Вставка – p.

Режим последней строки:

:wq! - запись файла и выход из vi.

:q! - выход из vi без записи текущих изменений.

Вот и все 10 самых необходимых команд vi. Ничего сложного, на мой взгляд.

Кроме этих команд, полезно помнить следующие модификаторы.

Регистр команды. Большинство команд работают как в верхнем, так и в нижнем регистре, но выполняют разные действия. Например, i выполняет переход в режим редактирования в текущей позиции курсора, а I – в начале строки. Поэкспериментировав с описанными выше командами, вы быстро найдете различия.

Числа. Действия многих команд можно изменить, набрав перед ними число. Например, команда 10dd выполняет удаление 10 строк. Если команда состоит из 2 букв, то число можно вставлять между ними, например y5y – копирование в буфер обмена 5 строк.

Запомнив эти 10 команд, можно легко работать с vi. Основное достоинство vi в том, что он есть в каждом Unix и работает одинаково в Linux, Solaris, BSD, AIX и HP-UX. Это означает, что если вы разберетесь с vi, то получите знакомый инструмент администратора в любом Unix.