我可以让 vim 正确缩进这个 Ruby 代码(Nokogiri)吗?

我可以让 vim 正确缩进这个 Ruby 代码(Nokogiri)吗?

首先XML 生成器示例对于 Nokogiri 来说看起来像这样:

builder = Nokogiri::XML::Builder.new do |xml|
    xml.root {
      xml.products {
        xml.widget {
          xml.id_ "10"
          xml.name "Awesome widget"
        }
      }
    }
 end
 puts builder.to_xml

尽管我有Ruby Vim 文件安装后,Vim 的自动缩进会使上面的例子变平,如下所示:

builder = Nokogiri::XML::Builder.new do |xml|
  xml.root {
    xml.products {
    xml.widget {
    xml.id_ "10"
    xml.name "Awesome widget"
  }
  }
  }
end
puts builder.to_xml

有人知道如何让 Vim 正确自动缩进吗?

答案1

我可以重现这一点。

缩进规则在函数中定义,该函数在Linux和Unix系统上GetRubyIndent是。/usr/share/vim/vimcurrent/indent/ruby.vim

问题似乎是GetMSL对于第 3 行返回 8,但对于第 4 行也返回 8 而不是 12。

如果您有一点时间,请查看源代码并尝试查找和解决问题。

如果没有,您可能希望将其报告为错误RubyForge Vim/Ruby 项目站点

相关内容