有沒有人在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