Подтвердить что ты не робот

Как vim может сохранять содержимое регистра при вставке выделенного текста?

У меня есть строка текста, которую я дернул yy. Теперь я хочу использовать этот текст для замены строк в нескольких других местах. Проблема в том, что, когда я выбираю V заменяемую строку и вставляю p, текст, который был выбран, автоматически дергается! Это то, чего я не хочу.

Изменение регистра не работает, потому что и паста, и yank выполняются с вновь выбранным регистром.

Какова команда сохранения содержимого реестра при вставке выделенного текста?

4b9b3361

Ответ 1

Каждый раз, когда вы p над чем-то, он переходит в регистр по умолчанию.

Чтобы обойти эту функцию, перед p вы должны использовать "_, "регистр черных дыр". Вот пользовательское сопоставление, которое у меня есть в моем ~/.vimrc:

vnoremap <leader>p "_dP

Он удаляет выбранное содержимое и оставляет его в регистре черных дыр (это означает, что выделенный текст исчезает навсегда) и помещает содержимое регистра по умолчанию вместо ранее выбранного текста, оставив регистр по умолчанию неповрежденным.

Я использую его часто, когда мне нужно заменить loooooooong url в нескольких местах с помощью другого looooooong url, а создание s// будет слишком громоздким.

Ответ 2

Ваш исходный выбор должен оставаться в регистре 0. Таким образом, вы можете перемещаться по файлу и вставлять свою дернутую линию поверх других строк, используя: V"0p