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

Как заменить строку в кавычках на строку из буфера?

Я делаю следующее, чтобы скопировать текст внутри кавычек и вставить его в другое место (внутри кавычек):

di"
go-to-buffer-for-copy
copy-string (ex. yi")
then-go-to-prev-buffer
paste-to-string (p)

Но я хочу сделать это проще, например:

yi"
go-to-buffer-for-paste
replace-inner-quotes-to-yanked-text
4b9b3361

Ответ 1

Для "replace-inner-quotes-to-yanked-text" вы можете использовать vi"p.

Ответ 2

(потянув мой комментарий в свой собственный ответ)

Предполагая, что вы используете vim с системным буфером обмена, вы можете сделать следующее:

  • "+yi", чтобы скопировать текст внутри кавычек в системный буфер обмена
  • расположите курсор внутри кавычек, куда вы хотите поместить этот текст
  • ci"<Ctrl-V><Esc> заменяет содержимое внутри кавычек содержимым вашего буфера обмена

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

vi"p, предложенный Рэнди Моррисом, работает, но он заменяет содержимое вашего регистра по умолчанию, и выбор не будет записан в команде "сделать снова", только вставить.

Вы все равно можете использовать регистр "0 для доступа к исходному тексту, но я не нашел команду, которая изменилась бы внутри кавычек и вставлялась таким образом, что будет выполняться повторная настройка.

Ответ 3

Этот метод позволяет вам оставаться в режиме вставки и не требует сопоставления неназванного буфера обмена в системном буфере обмена:

  • yi" (yank внутри кавычек
  • ?', за которым следуют первые несколько букв текущего содержимого целевых кавычек (поиск назад)
  • p (вставить)
  • dt" (удалите уже существующий контент, который был в кавычках