Ответ 1
Если вы хотите добавить к именованному регистру, используйте соответствующий символ верхнего регистра. т.е. в вашем примере:
"ayy "Ayy "ap
Я хотел бы выровнять строку в регистре: "{register}y
, но без перезаписи того, что было ранее в регистре. Мне часто приходится копировать несмежные строки в регистр, и я бы хотел иногда использовать регистры, например, стек.
Пример:
line1
line2
line3
Я хочу скопировать line1
, поместив курсор на него и введя "ay
, затем перейдем к line3
и сделаем "ay
. Затем, когда я сделаю "ap
, BOTH line1
AND line3
будет вставлен.
Возможно ли это без плагинов? с плагинами?
Если вы хотите добавить к именованному регистру, используйте соответствующий символ верхнего регистра. т.е. в вашем примере:
"ayy "Ayy "ap
Просто чтобы расширить ответ MarkB, знаете ли вы, что вы также можете использовать маркеры для выбора блока текста для вашего yank?
Перейдите в первую строку блока, который хотите вынуть, и введите команду метки после выбора буквы в качестве маркера, например
ma (entered in command mode, i.e. no colon)
затем перейдите в нижнюю часть блока, который вы хотите выдернуть, и введите команду:
:'a,.ya A
эта команда означает, что блок текста из строки, содержащей мой маркер, называется до текущей строки и вытаскивает его в буфер a. Те же правила, что и MarkB, применимы, используйте имя нижнего регистра для перезаписывания буфера. Используйте имя буфера верхнего регистра для добавления в буфер. Поэтому в этом случае это будет добавлено к содержимому буфера a.
N.B. "A", используемый для вашего маркера, не имеет ничего общего с "a", используемым для выбора вашего регистра. (AFAIK, но YMMV)
BTW 'a (апостроф a) относится к строке, содержащей маркер a. `a (backquote a) относится к символу под курсором при вводе ma.
`ad`b (also entered in command mode)
полезен, потому что он удалит текст между символом, помеченным маркером а, до символа непосредственно перед символом, отмеченным маркером b.