2015-07-20 2 views
2

Что-то, что я часто делаю, - это дергать текст между двумя скобками и вставлять их поверх другой пары круглых скобок. Например:В Vim вставить текст между двумя скобками?

foo(int a, int b, int c) 
bar(int d, int e) 

становится

foo(int a, int b, int c) 
bar(int a, int b, int c) 

Есть быстрый способ в Vim, чтобы выдернуть текст из обув и вставить его над текстом в баре?

ответ

7

Один из способов будет yi) внутри аргументов Foo и "_di)P в аргументах бара.

yi) дергает текст внутри скобок

"_di)P использует нулевой регистр, чтобы удалить текст внутри скобок и Вставляет текст, vi)p также работает и избегает Нулевой REGISTER

Единственные Меняется имя функции, хотя, чтобы вы могли просто вырвать линию и использовать cw (изменить слово), чтобы изменить foo на bar.

+2

Не могли бы вы объяснить, почему это работает? –

+2

@DirkHorsten Я добавил краткие объяснения. – Jason

4

Курсор над первым парнем foo, затем используйте y%, чтобы выдернуть весь текст до совпадающего. (Вы также можете использовать v%y, если вы предпочитаете, чтобы визуально видеть текст, вы дергает.)

Затем курсор над первым Paren из bar, а затем использовать . Он выбирает текст до тех пор, пока соответствующий паттерн не встанет поверх него.

9

Yank содержание первой пары скобок:

yib 

Визуально выбрать содержание второй пары скобок и поставить:

vibp 
+0

Существует эпизод [Vimcast] (http://vimcasts.org/) на эту тему: [Вставка из визуального режима] (http://vimcasts.org/episodes/pasting-from-visual-mode/) –

Смежные вопросы