如何复制和粘贴在vim中的(命令模式)中更改了一些行

时间:2011-10-03 07:02:02

标签: vim

我有这样的代码:

def foo
  puts "foo"
end

因此我需要:

def foo
  puts "foo"
end

def bar
  puts "bar"
end

我想在命令模式下执行此操作(您是否也可以参考一些帮助?)但也欢迎其他解决方案。

3 个答案:

答案 0 :(得分:3)

要复制/粘贴使用类型:(将光标放在def foo行上)

y3yGP

它将复制文件末尾的3行。使用xG其中x是行号x。 (使用set number查看行号)

然后你可以用命令改变条形码中的foo:

:x,ys/foo/bar/

x块的第一行,y最后一行:)

希望能帮助你:)

答案 1 :(得分:0)

保持插入模式我执行以下操作(光标在def foo上):

S-vjjjyPgv:s/foo/bar/g

对我来说很好的技巧是使用gv来重新选择最后一个选项。

答案 2 :(得分:0)

可以使用以下Ex命令(假设光标位于 def - 行)。

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

要跳转到end行的配对def - 行,可以利用 由matchit插件扩展的%命令。

:exe"norm V%y']o\ep"|'[,']s/\<foo\>/bar/g