Кто-нибудь есть плагин или макрос, чтобы заменить соответствующие {
скобки }
с do
и end
в Vim? Предпочтительно превращение заявления однострочного так:Замена соответсвующей {фигурные скобки} с Do/конца в Vim (Рубин)
foo.each { |f| f.whatever }
в:
foo.each do |f|
f.whatever
end
Я мог бы сделать макрос сам для этого одного случая, но я хотел бы что-то, что может также обрабатывать преобразования существующих мульти -линии, потенциально осложнено блоки, как:
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 {...' not? – Kent
Было бы неплохо поддержать оба варианта, но обычно мне не хотелось бы ничего, кроме одного уровня, развернутого за раз. В моем сценарии я предпочитаю встроенные блоки для отдельных операторов, но часто хочу, чтобы я хотел добавить другой оператор или два, и я хотел бы расширить блок для этого. Да, я знаю, что я должен полностью реорганизовать метод. –