Рассмотрим основные команды работы с текстовым редактором Vim основном на более старом Vi. Если вы нацелены на серьезную дальнейшую работу в качестве системного администратора изучайте этот редактор. Vi универсальный редактор, который есть везде.

Почему выбираем VIM

Долгое время пользовался редактором mcedit, который входит в текстовый редактор Midnight Commander, и он вполне меня устраивал. Периодически видел в сети рекомендации опытных админов использовать редактор vim, но никак не мог понять чем же он так хорошо и почему советуют именно его.

Как оказалось этот редактор имеет смысл использовать исходя из двух основных причин:

  1. Других редакторов нет на других системах по умолчанию (например Solaris), Vi это универсальный редактор, который есть везде с 80-x годов;
  2. При редактировании с mc возможны ошибки, если случайно задел что-то и появился непечатный символ — глазами его не увидеть, а голову потом ломать можно очень долго почему что-то не работает как надо.

Этих причин мне хватило чтобы осознано изучить как работать с редактором Vim.

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

Учебник VIM

Введем в консоли команду и увидим учебник по vim:

vimtutor
= вывод команды =
===============================================================================
= Д о б р о п о ж а л о в а т ь в у ч е б н и к VIM -- версия 1.7 =
===============================================================================

Vim -- это очень мощный редактор, имеющий множество команд, слишком много
 для того, чтобы их все можно было описать в таком учебнике, как этот.
 Этот учебник призван объяснить достаточное число команд для того, чтобы
 вы могли с лёгкостью использовать Vim в качестве редактора общего
 назначения.

Вам потребуется приблизительно 25-30 минут на освоение данного учебника в
 зависимости от того, сколько времени вы потратите на эксперименты.

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

Важно помнить, что этот учебник предназначен для обучения в процессе
 использования. Это означает, что вы должны запускать команды для того,
 чтобы как следует их изучить. Если вы просто прочитаете этот текст, то
 не запомните команды!

Теперь убедитесь в том, что клавиша CapsLock не включена, и нажмите
 клавишу j несколько раз, так, чтобы Урок 1.1 полностью поместился на
 экране.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 Урок 1.1: ПЕРЕМЕЩЕНИЕ КУРСОРА
** Для перемещения курсора нажмите клавиши h,j,k,l так, как показано ниже. **
!!! Остальная часть учебника не показана !!!

На прохождение всех уроков и выписывания всех команд в удобной мне форме у меня ушел день. Советую обязательно пройти эти уроки! Если вам покажется что используемые команды разбросаны по своим функциональным назначения вы можете воспользоватся моим списком команд.

Список основных команд VIM

ESC — снимает все режимы и переводит в Normal mode.

Навигация и Поиск

СТРЕЛКИ — перемещение курсора.
0 — (ноль) перемещение к началу строки.
Ctrl + G — внизу экрана появится статус с именем файла и номером строки.
Shift + G  — перемещение к концу файла.
:№ строки — переход к нужной строке.

/искомая фраза — поиск после курсора.
/искомая фраза\с — игнорировать регистр только для одного поиска.
n — повтор поиска.
Shift + N — поиск в обратном направлении.
?искомая фраза — сразу поиск в обратном направлении.

Опции для поиска:
:set ic — игнорирование регистра при поиске.
:set is — отображение частичных совпадений при поиске.
:set hls — подсветка всех совпадений при поиске.
Для отключения добавляется`no’ перед параметром.

Поиск парных скобок:
Ставим курсор на нужный символ { [ и тд. и знак % перенесет на парную скобку.

Выход и Сохранение

:q! — выйти из редактора БЕЗ СОХРАНЕНИЯ любых сделанных изменений.
:q — закрыть если не делали никаких действий с файлом.
:wq — выход с СОХРАНЕНИЕМ всего что сделано.
:w!q — выход с СОХРАНЕНИЕМ когда у файла есть атрибуты на запрет изменений. Не путать с правами доступа!

Аналоги команд:
w! — это W
q! — это Q

:w test — создаст файл test  в текущей директории.
:w /home/test — создаст файл по указанному пути.

Сохранения части текста в файл:
v — перевод в визуальный режим редактора (выделение стрелками).
:'<,’>w /root/test — параметр ‘<,’> говорит что сохраниться только выделенная часть  файл test.

Редактирование

:noh — убрать выделения.

i — вставка текста под курсором.
a — вставка текста после курсора.
A — добавление текста в конце строки.

yy — копирование строки.
v — переводит в визуальны режим. Стрелками выделяется нужный текст.
y — копирование выделенного текста.
p — вставка последнего удалённого текста или того что было скопировано по команде y.

r — замена символа под курсором.
R — замена нескольких символов.

ce — удаление символов в слове после курсора и переход в режим вставки.
с$ — после курсора в строке всё удалит и перейдет в режим вставки.

Клавиша Backspace может использоваться для исправления при наборе!

o — создание пустой строки ПОД курсором и переход в режим вставки.
O — создание пустой строку НАД курсором и переход в режим вставки.

:r TEST — вставка текст из файла TEST.
:r !ls — прочитает вывод команды ls и вставит его ниже курсора.

u — отмена (откат) предшествующих действий.
U — отмена (откат) предшествующих действий в строке.
CTRL+ R — отмена отмены (если случайно отменили то что не надо было отменять).

:s/было/стало — заменит первое найденное вхождение в строке.
:s/уводю/увожу/g — заменит все найденные в строке вхождения.
:#,#s/было/стало/g — где #,# номера этих строк для замены всех вхождений.
:%s/было/стало/g — замена всех вхождений во всем файле.
:%s/было/стало/gc — поиск всех вхождений во всем файле и запроса подтверждения замены.

x — удаление символа под курсором.
dd — удаление всей строки.
2dd удаление двух строк.
dw — удаление от курсора до конца слова, включая последующий пробел.
de -удаление от курсора до конца слова, НЕ включая последующий пробел.
d$ -удаление от курсора до конца строки.
d^ -удаление от курсора до начала строки.

Выполнение внешних команд

:sh — переход в консоль (для возврата набрать exit).
:!ls — команда добавит список файлов в текущем каталоге.

Вывод

Не так страшен Vim как он кажется при первом знакомстве с ним. Всего несколько дней и уже начинаешь понимать, что кажущаяся сложность использования на самом деле ограждает от случайных действий.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Хотите сказать денежное спасибо? Подарите денежку!