Как vim может сохранять содержимое регистра при вставке выделенного текста?
У меня есть строка текста, которую я дернул yy
. Теперь я хочу использовать этот текст для замены строк в нескольких других местах. Проблема в том, что, когда я выбираю V
заменяемую строку и вставляю p
, текст, который был выбран, автоматически дергается! Это то, чего я не хочу.
Изменение регистра не работает, потому что и паста, и yank выполняются с вновь выбранным регистром.
Какова команда сохранения содержимого реестра при вставке выделенного текста?
Ответы
Ответ 1
Каждый раз, когда вы p
над чем-то, он переходит в регистр по умолчанию.
Чтобы обойти эту функцию, перед p
вы должны использовать "_
, "регистр черных дыр". Вот пользовательское сопоставление, которое у меня есть в моем ~/.vimrc
:
vnoremap <leader>p "_dP
Он удаляет выбранное содержимое и оставляет его в регистре черных дыр (это означает, что выделенный текст исчезает навсегда) и помещает содержимое регистра по умолчанию вместо ранее выбранного текста, оставив регистр по умолчанию неповрежденным.
Я использую его часто, когда мне нужно заменить loooooooong url в нескольких местах с помощью другого looooooong url, а создание s//
будет слишком громоздким.
Ответ 2
Ваш исходный выбор должен оставаться в регистре 0
. Таким образом, вы можете перемещаться по файлу и вставлять свою дернутую линию поверх других строк, используя: V"0p