AllInfo
Main: Info Blog Temp Mail


unix 2020-06-07 00-20-11

Основные команды vi - шпаргалка


img

Режимы
Vi имеет два режима: режим вставки и режим команд. Редактор начинает работать в командном режиме, когда происходит перемещение курсора и удаление и копирование текста. Режим вставки начинается после ввода команд вставки и изменения. [ESC] возвращает редактор в режим команд (где вы можете выйти из редактора, например, напечатав :q!). Большинство команд выполняется как только вы их напечатаете, кроме команд с двоеточием, которые выполняются, когда вы нажмете клавишу Enter.


Выход

:х Выход с сохранением изменений
:q Выход, если не было изменений
ZZ Выход с сохранением изменений, если они были
:q! Выход с игнорирование изменений


Вставка текста

i Вставка после курсора


I Вставка перед текущей строкой
a Добавление после курсора
A Добавление после текущей строки
o Открытие новой строки после текущей строк
O Открытие новой строки перед текущей строкой
r Замена одного символа
R Замена нескольких символов


Перемещение

h Перемещение влево
j Перемещение вправо
k Перемещение вверх
l Перемещение вниз
w Перемещение к следующему слову
W Перемещение к следующему пробелу – ограничителю слова
b Перемещение к началу слова
B Перемещение к начальному пробелу – ограничителю слова
e Перемещение к концу слова
E Перемещение к конечному пробелу – ограничителю слова
( Перемещение на предложение назад
) Перемещение на предложение вперед
{ Перемещение на параграф назад
} Перемещение на параграф вперед
0 Перемещение На начало строки
$ Перемещение на конец строки
1G Перемещение на первую строку файла
G Перемещение на последнюю строку файла
nG Перемещение на n-ю строку файла
:n Перемещение на n-ю строку файла
fc Перемещение впреред на c
Fc Перемещение назад на c
H Перемещение в начало экрана
M Перемещение в конец экрана
L Перемещение to botton of screen
% Перемещение to associated ( ), { }, [ ]


Удаление текста

Почти все команды удаления выполняются печатаньем d, а затем – команды перемещения. Например, dw удаляет слово. Несколько других команд удаления:
x Удаление символа справа от курсора
X Удаление символа слева от курсора
D Удаление текста до конца строки
dd Удаление текущей строки
:d Удаление текущей строки


Сохранение текста в буфере

Как и команды удаления, большинство команд буферизации выполняются печатаньем y, а затем – команды перемещения. Например, y$ сохраняет в буфере текст до конца строки. Две другие команды сохранения в буфере:
yy Сохраняет в буфере текущую строку
:y Сохраняет в буфере текущую строку


Изменение текста

Команды изменения являются командами удаления, которые переводят редактор в режим вставки. Они выполняются печатаньем c, а затем – команды перемещения. Например, cw изменяет слово. Несколько других команд изменения:
C Изменение до конца строки
cc Изменение всей строки


Вставка текста из буфера

p Вставка после позиции или после строки
P Вставка перед позицией или перед строкой


Буферы

Перед любой командой удаления, изменения, сохранения в буфере или вставки из буфера могут быть созданы именованные буферы. Общий префикс имеет форму «c, где c – любой символ нижнего регистра. Например, «adw удаляет слово в буфер a. Его можно впоследствие вернуть в текс соответствующей командой «ap.


Markers

На любую строку в файле могут быть установлены именованные маркеры. Именем маркера может быть любой символ нижнего регистра. Markers may also be used as limits for ranges.
mc Установка для строки маркер c.
`c Переход на начало строки с маркером c.
‘c Переход на первый непробельный символ строки с маркером c.


Поиск строк

/строка Поиск вперед строки строка
?строка Поиск вперед строки строка
n Поиск следующего вхождения строки строка
N Поиск предыдущего вхождения строки строка


Замена

Функуии поиска и замены выполняются командой :s. Она обычно комбинируется с областью действия или с комендой :g (см.ниже).
:s/шаблон/строка/флаги Замена шаблон на строка в соответствии с флаги.
g Флаг – замена всех вхождений шаблона.
c Флаг – подтверждение замен.
& Повторение последней команды :s.


Регулярные выражения

. (точка) Один любой символ, кроме символа конца строки.
* Ноль или более любых символов.
[...] Один любой символ, определенный в наборе.
[^...] Один любой символ, не определенный в наборе.
^ Начало строки.
$ Конец строки.
\< Начало слова.
\> Конец слова.
\(…\) Группировка – обычно используется для группирования условий.
\n Содержимок n-й группировки.
[...] – примеры наборов

[A-Z] От заглавной буквы A до заглавной буквы Z.
[a-z] От строчной буквы a до строчной буквы z.
[0-9] От 0 до 9 (все цифры)
[./=+] Набор, содержащий . (точка), / (слеш), =, и +.
[-A-F] Набор от заглавной буквы A до заглавной буквы F и тире (тире д.б. указано первым).
[0-9 A-Z] Набор, содержащий все заглавные буквы и цифры и пробел
[A-Z][a-zA-Z] Первая позиция содержит заглавную букву от A до Z.
Вторая позиция содержит любую букву.


Примеры регулярных выражений

/Hello/ Соответствует строке, содержащей значение Hello.
/^TEST$/ Соответствует строке, содержащей только текст TEST.
/^[a-zA-Z]/ Соответствует строке, начинающейся с любой буквы.
/^[a-z].*/ Соответствует строке, в которой первый символ – из набора a-z, а за ним следует еще, как минимум, один символ.
/2134$/ Соответствует строке, заканчивающейся 2134.
/\(21|35\)/ Соответствует строке, содержащей 21 или 35.
Обратите внимание на использование ( ) с вертикальной чертой, задающей условие «или».
/[0-9]*/ Соответствует строке, содержащей ноль или более цифр.
/^[^#]/ Соответствует строке, в которой первый символ – не #.

Примечания:
1. Регулярные выражения чувствительны к решистру.
2. Регулярные выражения используются, когда задается pattern.


Счетчики

Каждой командое может быть предшествовать число, которое задает, сколько раз она должна быть выполнена. Например, 5dw удалит 5 слов, а 3fe переместит курсор вперед на 3-е вхождение буквы e. даже вставка может повторяться в соответствии с этим методом, например, вставить одну и ту же строку 100 раз.
Области действия

Области действия могут предшествовать большинству команд с двоеточием и приводят к тому, что команда будет выполняться для строки или строк. Например, :3,7d удалит строки 3-7. Области действия обычно комбинируются с командой :s для выполнения замены на нескольких строках и с :.,$s/шаблон/строка/g для выполнения замены от текцщей строки до конца файла.
:n,m Область действия – Строки n-m
:. Область действия – Текущая строка.
:$ Область действия – Последняя строка.
:’c Область действия – Маркер c
:% Область действия – Все строки файла.
:g/шаблон/ Область действия – Все строки, содержащие шаблон.


Файлы

:w файл Запись в файл.
:r файл Чтение из файл.
:n Переход к следующему файлу.
:p Переход к предыдущему файлу.
:e файл Редактирование файла файл
!!программа Замена строки выводом программы программа.


Другое

~ Переключение регистра.
J Соединение строк.
. Повторение последней команды изменения текста.
u Отмена последнего изменения.
U Отмена всех изменений в строке.

18.116.37.200 / 2024-12-22_20-40-47 UTC.