Ранее мы познакомились с текстовым редактором 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! - отменить все изменения и закрыть файл