Vim заменяет внутренние кавычки

Много раз я нахожу, что мне захочется выдернуть содержимое между кавычками и вставить их в другую настройку кавычек. Например, возьмите этот код, например.

var foo = 'bar',
    baz = 'buz';

Я обычно делал yi' внутри 'bar', чтобы вырвать слово bar.

Как заменить buz на мой yank? Я знаю, что один из вариантов - сделать di'"0P, мне просто интересно, есть ли более простое решение, которое я пропускаю.

Ответ 1

С помощью курсора в любом месте слова buz, vi'p, чтобы визуально выбрать внутри кавычек, а затем поместить содержимое самого последнего yank.

Ответ 2

Мне нужно это так часто, я написал плагин, чтобы упростить и разрешить максимальную скорость: ReplaceWithRegister.

Этот плагин предлагает команду gr 2-в-одном, которая заменяет текст, охватываемый {motion}/текстовым объектом, всей линией (строками) или текущим выбором с содержимым регистра; старый текст удаляется в регистр черных дыр, т.е. он ушел. Он прозрачно обрабатывает множество угловых корпусов и позволяет быстро повторять стандартную команду .. Если вам это не нравится, на его странице есть ссылки на альтернативы.

Ответ 3

Также обратите внимание, что после замены содержимого в визуальном режиме содержимое, которое будет заменено, теперь будет в вашем регистре. команда: reg покажет это. В вашем примере команда p вставляет buz в редактор.