vi шпоргалки

vi шпоргалки



Режимы


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


Выход


:x Выход с сохранением изменений
: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 Отмена всех изменений в строке.
Поделиться ссылкой:
ВКонтакт Facebook Одноклассники Twitter Mail.Ru

Популярное

phpStorm горячие клавиши
BASH: Сортировка папок по размеру. | Linux, awk, sort, du
Рекурсивный поиск grep/sed замена текста в файлах из консоли в linux

Возврат к списку