Как переместить 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
.