Команды vi: Краткая справка по командам редактора vi
Несколько слов об этом руководстве. При его создании я руководствовался следующими целями: На первом месте должна быть компактность. Руководство описывает только суть команд. Детали можно прочитать в полном руководстве или просто попробовать, запустив vi. Во-вторых, руководство должно быть полным. Это не краткое руководство «как выйти из vi», а полное описание всех возможностей. Пока описано не всё, но те аспекты работы в vi, которые затронуты в этом руководстве, освещены с максимальной детальностью.
Пока это сырая альфа-версия, её надо ещё причесать. Многие её недостатки для меня очевидны, но я всё равно принимаю любые комментарии, советы и замечания.
Команды vi
Информация
Ctrl-G — информация (синоним :f)
Перемещения по файлу
Ctrl-D — pageDown
Ctrl-U — pageUp
Ctrl-E — вниз на одну строку (рядом c D)
Ctrl-Y — вверх на одну строку (рядом с U)
Ctrl-F — вперёд на одну строку (forward)
Ctrl-B — назад на одну строку (backward)
Перемещения к заданной строке
G — в конец файла
NumG — к строке Num
Перемещения: поиск подстроки
/String — поиск подстроки String
?String — поиск подстроки String назад
n — повторить последний поиск
N — повторить последний поиск в противоположном направлении
Перемещения по экрану
h — влево (можно предварять числом; та же Ctrl-H, но Ctrl-H работает ещё и как BS в режиме ввода)
j — вниз (можно предварять числом)
k — вверх (можно предварять числом)
l — вправо (можно предварять числом; оно же SPACE)
+ — к первому не-пробелу следующей строки
Ctrl-M — тоже самое, что и + (он же RETURN)
— — к первому не-пробелу предыдущей строки
H — к первой строке на экране
NumH — к Num-ой строке на экране
M — к средней строке на экране
L — к последней строке на экране
NumL — к Num-ой строке снизу
Перемещение по высокоуровневой разметке
( — по предложениям вверх
) — по предложениям вниз
{ — по параграфам вверх
} — по параграфам вниз
[[ — по секциям вверх
]] — по секциям вниз
Перемещения по строке
w — к началу следующего слова
b — к началу предыдущего слова
W — аналог w, но включает пунктуацию в слово
B — аналог b, но включает пунктуацию в слово
e — к концу следующего слова
fChar — переместиться вперёд к символу Char (можно предварить числом)
FChar — переместиться назад к символу Char (можно предварить числом)
tChar — аналогична f, но не включает найденный символ
TChar — аналогична F
; — повторить последний поиск f/F/t/T
, — повторить последний поиск f/F/t/T в обратном направлении
$ — в конец строки
^ — к первому не-пробелу в строке
0 — (ноль) к первому символу в строке
| — к первому символу в строке
Num| — к Num-ому символу в строке
Перемещения: метки
» — к предыдущему положению в режиме строк
« — к предыдущему положению в терминах символов
mChar — поставить метку с именем Char
‘Char — перейти к стоке с меткой Char
`Char — перейти к метке Char
Правка
i — режим вставки (ESC или Ctrl-[ — выход из режима вставки)
I — вставка в начале строки (^i)
a — режим добавления (подобен i)
A — добавлять в конец строки ($a)
C — заменить остаток строки (c$)
D — удалить всё до конца строки (d$)
o — добавить строку ниже и перейти в режим ввода
O — добавить строку сверху и перейти в режим ввода
R — режим замены
J — объединить строки (можно предварять числом)
Правка: мелкая корректировка
rChar — заменить символ на Char
s — заменить один символ введённой строкой
Nums — заменить Num символов введённой строкой
cMotion — заменить символы, заданные перемещением Motion
cc — заменить строку (аналог S)
` — изменить регистр
Правка: отступы
>> — сдвинуть текущую строку вправо
Num>> — сдвинуть вправо Num строк ниже текущей
>Motion — сдвинуть вправо строки, заданные перемещением Motion
<< - сдвинуть текущую строку влево
Num<< - сдвинуть влево Num строк ниже текущей
dMotion — удаление всех символов, покрываемых перемещением Motion
dd — удаление строки
dNumd — удаление Num строк (оно же Numdd)
x — удалить символ после курсора
X — удалить символ перед курсором
Правка в режиме ввода
Ctrl-H — backspace
Ctrl-U — удалить введённую строку
Ctrl-W — удалить слово
Ctrl-VChar — символ Char вставляется в текст как есть, даже если он управляющий
Правка: отмена
u — отменить последние изменения
U — отменить все изменения в текущей строке
Правка: дублирование
yMotion — помещает в неименованый буфер текст, покрываемый перемещением Motion
"CharyMotion — помещает текст в буфер Char
p — вставить из неименованного буфера после
"Charp — аналог p, но из буфера Char
P — вставить из неименованного буфера до
"CharP — аналог P, но из буфера Char
yy — копировать в буфер текущую строку (синоним — Y)
Numyy — копировать в буфер Num строк
. — повторить последнюю команду работающую с буфером (в том числе удаление)