我有这样的代码:
def foo
puts "foo"
end
因此我需要:
def foo
puts "foo"
end
def bar
puts "bar"
end
我想在命令模式下执行此操作(您是否也可以参考一些帮助?)但也欢迎其他解决方案。
答案 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