Работа с регистрами Vim
Регистры в Vim — мои “ячейки”, куда попадает текст после y (копирования), d (удаления), c (замены), и откуда я потом вставляю через p/P.
Минимум
"— безымянный регистр. Если ничего не указываю, вставка идёт отсюда.0— последнее копирование (yank). Обновляется командамиy.1..9— история удалений (самое свежее в1).a..z— именованные регистры (я сам выбираю, куда складывать).- Посмотреть всё быстро:
:reg
История удалений ("1..9)
Удалил строку → вернул из истории
dd
"1pЧто помнить:
- После
ddтекст оказывается и в"и в"1. - Следующее удаление сдвигает историю: старое
"1становится"2, и т.д.
Пример:
dd
dd
"2pКопирую в именованный регистр и вставляю оттуда
Скопировать строку в a:
"ayyВставить из a:
"apУдалить строку именно в b (чтобы не потерять то, что мне нужно):
"bdd
"bpЕсли после копирования я что-то удалил: "0 vs "1
Если я скопировал (y), а потом удалил (d), обычное p вставит удалённое.
Чтобы вставить именно последнее копирование:
"0pМакросы + регистры (когда повторяю одно и то же)
База:
- Запись макроса в
q:qq ... q - Запуск:
@q - N раз:
10@q
Пример: беру слово, кладу в a, вставляю в конец строки.
qq
"ayiw
A <Esc>"ap
q