语法错误,意外的 $end,预期为 keyword_end
我们都去过!假设更改了足够多的代码,快速浏览git diff
或类似的东西并不明显,是否有一种简单的方法可以找到缺失end
的内容(没有切换到像 Python 这样的基于缩进的语言)?
FWIW,我使用 Sublime Text 2 作为我的编辑器。
如果您使用的是 Ruby 1.9,请-w
在运行 ruby 程序时尝试使用该标志。
# t.rb
class Example
def meth1
if Time.now.hours > 12
puts "Afternoon"
end
def meth2
# ...
end
end
ruby t.rb
=> t.rb:10: syntax error, unexpected $end, expecting keyword_end
ruby -w t.rb
=> t.rb:5: warning: mismatched indentations at 'end' with 'if' at 3
t.rb:9: warning: mismatched indentations at 'end' with 'def' at 2
t.rb:10: syntax error, unexpected $end, expecting keyword_end
来源:
http://pragdave.blogs.pragprog.com/pragdave/2008/12/ruby-19-can-check-your-indentation.html
如果您使用的是 rails,则可以使用 -w 标志专门运行有问题的文件。
如果您仍然找不到有问题的不匹配,那么我解决此问题的首选方法就是注释掉代码块,直到我可以隔离有问题的区域。
在 OS X 上,您可以使用 command + / 注释掉突出显示的文本。