で実行/終了と一致{括弧}を交換誰もdo
とのVimでend
と{
ブレース}
に一致交換するプラグインやマクロを持っていますか?私はその1つのケースのためのマクロを自分で作ることができますが、私はまた、既存のマルチ変換処理できる何かをしたいと思いますはVimの(ルビー)
foo.each do |f|
f.whatever
end
:へ
foo.each { |f| f.whatever }
:好ましくは、このような単一ラインステートメントを回します以下のような-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を見ていて、いずれかの方法を見つけていません。私はあなたの複数行の例では、出力は次のようになり仮定
ルビーについてよく分かりません。しかし、なぜあなたのマルチラインの例(出力)は '{、}'だけが置換され、内側の 'f.bars.each {...'? – Kent
両方をサポートするのはいいですが、通常は一度に1つのレベルを展開するだけで何もしたくありません。私のシナリオでは、単一ステートメントのインラインブロックを好んでいますが、しばしば別のステートメントまたは2つを追加したいと思っています。そのためにブロックを拡張したいと思います。はい、私はそれをすべてメソッドにリファクタリングする必要があることを知っています。 –