Có ai có plugin hoặc macro để thay thế kết hợp {
niềng răng }
với do
và end
trong Vim? Tốt nhất biến một tuyên bố đơn dòng như sau:Thay thế {dấu ngoặc nhọn} phù hợp với/kết thúc bằng Vim (Ruby)
foo.each { |f| f.whatever }
thành:
foo.each do |f|
f.whatever
end
tôi có thể làm cho một macro bản thân mình cho rằng một trường hợp, nhưng tôi muốn một cái gì đó mà cũng có thể xử lý đa chuyển đổi hiện line, có khả năng phức tạp khối, như:
foo.each { |f|
f.bars.each { |b| b.whatever }
hash = { a: 123, b: 456 }
}
thành:
foo.each do |f|
f.bars.each { |b| b.whatever }
hash = { a: 123, b: 456 }
end
Tôi đã xem vim-surround và rails.vim và chưa tìm thấy cách nào.
không biết nhiều về ruby. nhưng tại sao ví dụ multiline của bạn (đầu ra) chỉ outter '{,}' được thay thế, bên trong 'f.bars.each {...' không? – Kent
Thật tuyệt khi được hỗ trợ cả hai, nhưng thông thường tôi sẽ không muốn bất cứ điều gì nhưng một cấp được mở rộng tại một thời điểm. Kịch bản của tôi là tôi thích các khối nội dòng cho các câu lệnh đơn, nhưng thường thấy mình muốn thêm một hoặc hai câu lệnh khác, và tôi muốn mở rộng khối cho câu lệnh đó. Có, tôi biết tôi nên refactor nó tất cả ra thành một phương pháp. –