Как добавить строки в регистр vim, не перезаписывая его

Я хотел бы выдернуть строку в регистре: "{register}y, но без перезаписи того, что было ранее в регистре. Мне часто нужно копировать несмежные строки в регистре, и я хотел бы иногда использовать регистры как стек.

Пример:

line1
line2
line3

Я хочу скопировать line1, поместив на него курсор и введя "ay, затем перейдя на line3 и сделав "ay. Затем, когда я сделаю "ap, будут вставлены ОБЕ line1 И line3.

Возможно ли это без плагинов? с плагинами?

Отлично подходит для создания быстрого списка определений в верхней части файла.

Joe McGrath 24.11.2011 10:40
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
88
1
15 705
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Если вы хотите добавить в именованный регистр, используйте соответствующий символ верхнего регистра. т.е. в вашем примере:

"ayy
"Ayy
"ap

Есть ли способ добавить в безымянный регистр? (основной)

Zaffy 24.03.2013 16:28

@Zaffy stackoverflow.com/questions/18536511/…

PonyEars 28.09.2013 12:58

Чтобы сэкономить людям посещение страницы ^^, ИМО проще использовать именованный регистр. Когда вы набираете «думать, используя регистр а ...», добавляя «А», чтобы зарегистрировать »

Rob Kielty 25.09.2020 11:28

Просто чтобы расширить ответ MarkB, знаете ли вы, что вы также можете использовать маркеры, чтобы выбрать блок текста для вашего рывка?

Перейдите к первой строке блока, который вы хотите восстановить, и введите команду пометки после выбора буквы в качестве маркера, например.

ma  (entered in command mode, i.e. no colon)

затем перейдите к нижней части блока, который вы хотите восстановить, и введите команду:

:'a,.ya A

эта команда означает, что взять блок текста из строки, содержащей мой маркер, называемый a, до текущей строки, и скопировать его в буфер a. Применяются те же правила, что и упомянутый MarkB, используйте имя буфера в нижнем регистре для перезаписи буфера. Используйте имя буфера в верхнем регистре для добавления в буфер. Таким образом, в этом случае это будет добавлено к содержимому буфера a.

N.B. «А», используемое для вашего маркера, не имеет ничего общего с «а», используемым для выбора вашего регистра. (AFAIK, но YMMV)

BTW 'a (апостроф a) относится к строке, содержащей маркер a. `a (обратная кавычка a) относится к символу под курсором, когда вы вводили ma.

`ad`b (also entered in command mode)

полезен, потому что он удалит текст между символом, отмеченным маркером a, до символа прямо перед, символа, который вы отметили маркером b.

'a, .ya A работает, но когда я пытаюсь поставить галочку перед a -> `a, он говорит: E492: Не команда редактора:` a, .ya A. Помогло бы просто не использовать букву other чем маркер в примере, чтобы было понятно, какая буква какая есть :)

justin w 19.09.2013 08:37

Другие вопросы по теме