Как переместить yanked текст в конкретный регистр в vim?

При редактировании в vim достаточно часто я останавливаюсь, когда собираюсь удалить текст, и замечаю, что ранее сделанный текст станет удобным для следующих операций.

Итак - как переместить уже выдернутый текст в конкретный регистр (например, под a)?

Ответ 1

Вы можете использовать что-то вроде:

noremap <leader>ma :let @[email protected]<CR>

Теперь, когда вы нажимаете \ma в нормальном режиме, ваш последний выдернутый текст переходит к регистру "a".
Примечание. Предполагая, что лидером является "\"

Ответ 2

Чтобы переместить регистр 0 в регистр a:

:let @[email protected]

Ответ 3

Вы также можете использовать регистр 0, если вам это нужно только на короткий промежуток времени. От :help quote_number (чуть ниже :help registers):

2. Numbered registers "0 to "9         

Vim fills these registers with text from yank and delete commands.
   Numbered register 0 contains the text from the most recent yank command, 
unless the command specified another register with ["x].

(ссылка на остальных)

Ответ 4

В качестве альтернативы вы можете удалить текст в реестре devnull с помощью "_d (на самом деле он называется реестром черной дыры). См. :help quote_. Нет необходимости переместить регистры, ваш ранее дернутый текст по-прежнему будет доступен с помощью p.