有没有人有一个插件或宏替换匹配{括号}与do和endVim中?最好像这样转换单行语句:
foo.each { |f| f.whatever }
Run Code Online (Sandbox Code Playgroud)
成:
foo.each do |f|
  f.whatever
end
Run Code Online (Sandbox Code Playgroud)
我可以自己为这个案例制作一个宏,但是我想要一些能够处理转换现有的多行,可能很复杂的块的东西,比如:
foo.each { |f|
  f.bars.each { |b| b.whatever }
  hash = { a: 123, b: 456 }
}
Run Code Online (Sandbox Code Playgroud)
成:
foo.each do |f|
  f.bars.each { |b| b.whatever }
  hash = { a: 123, b: 456 }
end
Run Code Online (Sandbox Code Playgroud)
我看过vim-surround和rails.vim,还没找到方法.
有一个名为Vim Blockle的Vim插件可以执行此功能.
安装插件后,将光标放在{ } do或上end,然后按<Leader>b以交换块样式.