Qualcuno ha un plugin o macro per sostituire corrispondenza {
bretelle }
con do
e end
in Vim? Preferibilmente girando una dichiarazione singola riga come questa:Sostituzione corrispondenti {} parentesi graffe con do/fine a Vim (Ruby)
foo.each { |f| f.whatever }
in:
foo.each do |f|
f.whatever
end
avrei potuto fare una macro me stesso per quel un caso, ma mi piacerebbe qualcosa che potrebbe anche gestire più la conversione esistente -line, teoricamente complesso blocchi, come:
foo.each { |f|
f.bars.each { |b| b.whatever }
hash = { a: 123, b: 456 }
}
in:
foo.each do |f|
f.bars.each { |b| b.whatever }
hash = { a: 123, b: 456 }
end
Ho visto vim-surround e rails.vim e non ho trovato la via con nessuno dei due.
non so molto di rubino. ma perché il tuo esempio multilinea (output) solo l'esterno '{,}' è stato sostituito, l'interno 'f.bars.each {...' not? – Kent
Sarebbe bello supportare entrambi, ma normalmente non vorrei che un solo livello espanso alla volta. Il mio scenario è che preferisco i blocchi in linea per le singole affermazioni, ma spesso mi trovo a voler aggiungere un'altra affermazione o due, e mi piacerebbe espandere il blocco per quello. Sì, so che dovrei rifattenerlo in un metodo. –