Рассмотрим основные команды работы с текстовым редактором 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.

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

Похожие по теме записи