Я хочу выдернуть строку в регистре: "{register}y
но без перезаписи того, что было ранее в регистре. Мне часто нужно копировать несмежные строки в регистр, и я хотел бы иногда использовать регистры как стек.
Пример:
line1
line2
line3
Я хочу скопировать line1
, поместив на него курсор и введя "ay
, затем продолжаю line3
и делаю "ay
. Потом, когда сделаю "ap
, ОБА line1
И line3
буду наклеена.
Возможно ли это без плагинов? с плагинами?
vim
keyboard-shortcuts
Mapad
источник
источник
Ответы:
Если вы хотите добавить в именованный регистр, используйте соответствующий символ верхнего регистра. т.е. в вашем примере:
источник
Просто чтобы расширить ответ MarkB, знаете ли вы, что вы также можете использовать маркеры, чтобы выбрать блок текста для восстановления?
Перейдите к первой строке блока, который вы хотите восстановить, и введите команду отметки после выбора буквы в качестве маркера, например
затем перейдите к нижней части блока, который вы хотите восстановить, и введите команду:
эта команда означает, что взять блок текста из строки, содержащей мой маркер, называемый a, до текущей строки, и скопировать его в буфер a. Применяются те же правила, что и упомянутый MarkB, используйте имя буфера в нижнем регистре для перезаписи буфера. Используйте имя буфера в верхнем регистре для добавления в буфер. Таким образом, в этом случае это будет добавлено к содержимому буфера a.
NB. «А», используемое для вашего маркера, не имеет ничего общего с «а», используемым для выбора вашего регистра. (AFAIK, но YMMV)
BTW 'a (апостроф a) относится к строке, содержащей маркер a. `a (обратная кавычка a) относится к символу под курсором при вводе ma.
полезен, потому что он удалит текст между символом, отмеченным маркером a, до символа непосредственно перед символом, который вы отметили маркером b.
источник