2010-12-19 1 views
12

я делаю следующее, чтобы скопировать текст в кавычках и вставить его в другое место (в кавычках, а):Как заменить строку в кавычках со строкой из буфера?

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 

ответ

35

Для «замены-внутреннего-кавычки-на-yanked-text» вы можете использовать vi"p.

+0

У него есть копия и вставка? '\' ' –

+1

Действительно, спасибо. –

+1

Можете ли вы придумать версию этого, которая позволяет повторить с '.'? Я в порядке с этим, кроме тех случаев, когда хочу делать то же самое в нескольких местах. При этом последний буфер заменяется текстом, который был удален, и выбор не будет выполнен в повторном выполнении. Мое решение прямо сейчас состоит в том, чтобы сделать «+ yi», чтобы поместить текст в кавычки в моем системном буфере обмена и 'ci» 'для вставки из буфера обмена. Всего несколько символов, чем хотелось бы :) –

1

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

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

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

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

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

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

1

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

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