有没有人在Vim中有一个插件或宏来替换匹配的{
大括号}
与do
和end
?最好把一个单行的语句是这样的:在Vim(Ruby)中用do/end替换{大括号}
foo.each { |f| f.whatever }
到:
foo.each do |f|
f.whatever
end
我可以做一个宏自己的那一个情况,但我想的东西,也可以处理转换现有的多-line,潜在地复杂块,如:
foo.each { |f|
f.bars.each { |b| b.whatever }
hash = { a: 123, b: 456 }
}
成:
foo.each do |f|
f.bars.each { |b| b.whatever }
hash = { a: 123, b: 456 }
end
我看过vim-surround和rails.vim,并没有找到任何一种方法。
对ruby不太了解。但为什么你的多行示例(输出)只有外部'{,}'被替换,内部'f.bars.each {...'不是? – Kent 2013-03-16 02:46:40
支持两者都很好,但通常我不想要任何东西,只能一次扩展一个级别。我的方案是我更喜欢单行语句的内嵌块,但经常发现自己想要添加另外一个或两个语句,并且我想扩展该块。是的,我知道我应该将其全部重构为一种方法。 – 2013-03-16 03:26:54