Текстовый редактор vi Linux как пользоваться — список команд и клавиш.

Ранее мы познакомились с текстовым редактором vi и научились выполнять простые действия — как создать и отредактировать, как сохранить файл и как выйти из редактора. Сегодня рассмотрим дополнительные функции и горячие клавиши используемые в данном редакторе.

Начнем с создания нового файла:
vi test.txt
Перед нами открылся пустой файл, на данном этапе текстовый редактор находится в режиме команд. Нажмем i, чтобы перевести редактор в режим ввода. Внизу окна редактора мы увидим — INSERT — , значит можно вводить текст.
Наберем несколько строк текста, с которым потом мы будем работать.
The first line of text.
The second line of text.
Another line of text.
The last line of text.
~

Кроме i перейти в режим ввода можно по нажатию a, либо по клавише o. В случае с o ввод начнется со следующей строки.
Режим ввода самый простой и привычный режим.

Ввод текста осуществляется через клавиатуру или вставку из буфера обмена, перемещение курсора — стрелочками. Если нужно удалить какой-либо символ используем Delete или Backspace. Переход на новую по нажатию Enter, весь тот функционал знакомый нам из других текстовых редакторов.
После того как закончим с вводом текста нажимаем ESC, чтобы вернуться в режим команд.

Основные клавиши в режиме ввода:
i - войти в режим ввода
a - войти в режим ввода
o - войти в режим ввода, начать с новой строки
ESC - выйти из режима ввода

Переместим наш курсор на начало файла, но вместо стрелок используем клавиши h(влево), j(вниз), k(вверх) и l(вправо). Вряд ли вам придется часто их использовать, но знать об их наличие лишнем не будет.

Находясь в начале файла жмем $, курсор перейдет в конец текущей строки. Нажмем 0 — курсор вернется в начало строки. Если у нас большой файл, то можно использовать G чтобы перейти в конец файла или g чтобы переместится в начало.
Если мы хотим перейти на строку номер N достаточно набрать NG например 3N перенесет нас на третью строку
Another line of text.

Чтобы найти в тексте определенное слово, в режиме команд нажмите / и наберите это слово, например /text и нажмите Enter. Курсор перейдет к его следующему вхождению. Не выходя из поиска нажимайте n, чтобы переходить к последующим вхождениям искомого слова.

Поставим курсор на первую букву в слове text в последней строке. Нажмем r, а затем любую букву, например n. Буква под курсором заменилась на новую:
The last line of next.
Не меняя места курсора, жмем R и печатаем слово file и жмем ESC. Мы заменили все буквы от курсора и дальше.
Вернем курсор в начало строки и три раза нажмем ~ в результате все три буквы поменяли свой регистр:
tHE last line of file.

Нажмем клавишу x — удаление текущего символа, тем самым удалив пробел между двумя словами:
tHElast line of file.
Нажмем x еще несколько раз и сотрем полностью слово last:
tHE line of file.
Поставим курсор на начало строки и нажмем dw — удалится все слово целиком:
line of file.
Если дважды нажать d, то удалится полностью строка.
Если вы хотите отменить последние изменения, используйте клавишу u.

Основные клавиши в режиме команд:
g - перейти в начало файла
G - перейти в конец файла
NG - перейти к строке номер N
0 - курсор в начало строки
$ - курсор в конец строки
/ - поиск
n - следующее вхождение в поиске

r - заменить один символ
R - заменить до конца строки
~ - сменить регистр

x - удалить символ
dw - удалить слово
dd - удалить строку

u - отменить изменения

После того как все изменения внесены в файл переходим в режим последней строки. В режиме команд нажимаем двоеточие : В режиме последней строки можно использовать разные команды, но главный это w и q. w используется для сохранения изменений, а q, чтобы закрыть файл. После ввода команды нажмите Enter.

Основные команды в режиме последней строки:
:w - сохранить файл
:q - выйти из файла (если не было изменений)
:wq - сохранить изменения и закрыть файл
:q! - отменить все изменения и закрыть файл