#vim
#vim
Вопрос:
При редактировании в vim я довольно часто останавливаюсь, когда собираюсь удалить текст, и замечаю, что ранее извлеченный текст станет удобным для следующих операций.
Итак, как переместить уже извлеченный текст в определенный регистр (например, под a)?
Комментарии:
1. Не ответ на ваш конкретный вопрос, но знаете ли вы о YankRing ( vim.org/scripts/script.php?script_id=1234 )? Это может быть полезно.
Ответ №1:
Переместить регистр 0
в register a
:
:let @a=@0
Комментарии:
1.
:let @a=@"
у меня работает. Есть идеи (сопоставления?) как сделать это более удобным? Немного лень каждый раз писать команду. Требуется меньше времени, чтобы вставить и удалить еще раз с указанным регистром.2. @Arnis привязать его к ключу? что-то вроде
:map <F3> :let @a=@"<CR>
3. После первого раза вы можете просто нажать
:l
, а затем стрелку вверх, чтобы отозвать эту команду. Ну, предположим, что с тех пор вы не запускали другую команду, которая начинается сl
.
Ответ №2:
Вы можете использовать что-то вроде:
noremap <leader>ma :let @a=@<CR>
Теперь, когда вы нажимаете ma
в обычном режиме, ваш последний извлеченный текст попадет в регистр ‘a’.
Примечание: Предполагается, что лидер равен »
Комментарии:
1.
m
Сопоставлено с чем-либо по умолчанию?
Ответ №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
(на самом деле он называется blackhole registry). Смотрите :help quote_
. Тогда нет необходимости перемещать регистры, ваш ранее извлеченный текст по-прежнему будет доступен с p
.
Комментарии:
1. возможно ли сопоставить _d с dD? Я думаю, что это был бы самый удобный способ решить эту проблему. просто удерживая shift, когда я не хочу потерять ранее выдернутый текст…