Как скопировать и вставить измененные строки в (командный режим) в vim - PullRequest
0 голосов
/ 03 октября 2011

У меня есть такой код:

def foo
  puts "foo"
end

и как результат мне нужно:

def foo
  puts "foo"
end

def bar
  puts "bar"
end

Я хотел бы выполнить это в командном режиме (не могли бы вы также обратиться за помощью?), Но приветствуется и другое решение.

Ответы [ 3 ]

3 голосов
/ 03 октября 2011

Для копирования / вставки используйте тип: (с курсором на def foo строке)

y3yGP

Будет скопировано 3 строки в конце файла.используйте xG, где x - номер строки для перехода на строку x.(Используйте set number, чтобы увидеть номер строки)

Затем вы можете изменить foo в строке с помощью команды:

:x,ys/foo/bar/

С x первой строкой блока и yпоследний:)

Надеюсь, что поможет вам:)

0 голосов
/ 03 октября 2011

Можно использовать следующую команду Ex (при условии, что курсор находится на def -линия).

:,/^end/t//|'[,']s/\<foo\>/bar/g|'[pu!_

Чтобы перейти к линии end для этой линии def, можно воспользоваться команды %, расширенной плагином matchit.

:exe"norm V%y']o\ep"|'[,']s/\<foo\>/bar/g
0 голосов
/ 03 октября 2011

Находясь в режиме вставки, я делаю следующее (курсор на def foo):

S-vjjjyPgv:s/foo/bar/g

Отличный трюк для меня - использовать gv для получения последнего выбора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...