Основные команды
Основные команды редактора vi представлены в табл. 22.
Таблица 22. Сводка основных команд редактора vi
Перемещение курсора | |
H (Ctrl-h) | курсор влево |
J (Ctrl-n) | курсор вниз |
K (Ctrl-p) | курсор вверх |
L (Space) | курсор право |
Ctrl-u | Переход вверх на половину экрана |
Ctrl-d | Переход вниз на половину экрана |
Ctrl-f | На страницу вперед (PageDn) |
Ctrl-b | На страницу назад (PageUp) |
0 | Переход в начало текущей строки |
$ | Переход в конец текущей строки |
nG | Переход на строку с номером n |
Добавление текста | |
a | Добавить текст после курсора |
A | Добавить текст в конце текущей строки |
i | Вставить текст перед курсором |
I | Вставить текст в начале текущей строки |
o | Образовать новую строку под текущей |
O | Образовать новую строку над текущей |
Изменение текста | |
~ | Изменить регистр символа над курсором |
r | Замена одного символа |
R | Замена символов |
Удаление текста | |
x | Удаление символа |
dd | Удаление строки |
Ndd | Удаление N строк |
Поиск и замена | |
/str | Поиск строки str вперед. str может быть регулярным выражением |
?/str | Поиск строки str назад |
n | Повторить поиск в том же направлении |
N | Повторить поиск в обратном направлении |
:[range]s/old/new/[g] | Заменить old на new в указанном диапазоне строк range. new и old могут быть регулярными выражениями, а range задается аналогично диапазону строк в редакторе ed. Суффикс g означает заменить во всем файле. |
Копирование текста | |
yy | Копирование строки в целом |
Nyy | Копирование N строк |
p | Вставить из буфера после (курсора, текущей строки) |
P | Вставить из буфера перед (курсором, текущей строкой) |
Выход из редактора | |
:wq ENTER | Запись и выход. Записать текст из буфера в файл и выйти из редактора. |
:x ENTER | Условная запись и выход. Записать текст из буфера только при наличии изменений и выйти из редактора. |
:q! ENTER | Закончить редактирование без записи изменений. |
Другие команды | |
! | Выполнить одну команду интерпретатора |
. | Повторить последнюю команду |
u | Отменить действие последней команды |
J | Соединить строки |
Ctrl-G | Показать номер текущей строки |
Курсор можно перемещать и клавишами перемещения курсора или клавишами PageUp, PageDn, но эти возможности, в отличие от описанных в таблице, поддерживаются не на всех терминалах.