Tab键在Emacs ruby​​-mode中不起作用

时间:2012-10-31 21:12:11

标签: ruby emacs emacs24

在Debian上运行Emacs 24.2.50.1时出现问题。在ruby模式下,每当我点击tab键来编辑缩进时,我都会收到错误:“Wrong-type-argument:number-or-marker-p,nil”

进一步检查揭示了这个错误:

Debugger entered--Lisp error: (wrong-type-argument number-or-marker-p nil)
ruby-calculate-indent()
ruby-indent-line()
indent-for-tab-command(nil)
call-interactively(indent-for-tab-command nil nil)

请注意,tab键的工作原理应该在ruby-mode之外(在python-mode中工作正常等),所以我认为它必须是ruby-mode中的一个bug用于缩进,但是在诊断和修复这个问题时有任何帮助问题将不胜感激。

2 个答案:

答案 0 :(得分:2)

我遇到了与Emacs 24.2相同的问题。 ruby-indent-levelpython-mode设置为0。

我在python-model.el中进行了以下更改:

(defvar ruby-indent-level nil)
(defvar nxml-child-indent nil)

(defvar ruby-indent-level 2)
(defvar nxml-child-indent 2)

然后M-x byte-compile-file

答案 1 :(得分:1)

我遇到了类似的问题,用Enhanced Ruby Mode替换了内置的ruby-mode。如果您使用的是Ruby 1.9.2或更高版本,则可以尝试使用它。