【问题标题】:emacs: Symbol's value as variable is void: ruby-insert-encoding-magic-commentemacs:符号作为变量的值是无效的:ruby-insert-encoding-magic-comment
【发布时间】:2015-04-22 23:59:21
【问题描述】:

我正在尝试将 ruby​​-mode 添加到我的 emacs 所以我创建了 .emacs 文件并将以下代码复制到其中:

; ruby-emacs.el 所在目录
(添加到列表'加载路径“/Users/.rvm/src/ruby-2.2.0/misc/”)

;打开 .rb 文件时加载 ruby​​ 模式。
(autoload 'ruby-mode "ruby-mode" "编辑ruby脚本的主要模式。" t)

(setq auto-mode-alist (cons '(".rb$" . ruby​​-mode) auto-mode-alist))

然后当我打开 .rb 文件时,它的颜色代码和 一切,除了当我尝试保存文件时,它给了我:

符号作为变量的值是无效的:ruby-insert-encoding-magic-comment

我该如何解决这个问题。我不知道 Lisp(上过课程,但完全忘记了:)

我的 emacs 版本是:22.1.1 机器是macbook os x 10.10

谢谢。

【问题讨论】:

  • 在现代 Emacs 版本中,预装了 Ruby 模式。您可以从“www.emacsforosx.com”下载一个。
  • 是的,22.1.1 已经很老了(2007 年)。建议升级。
  • 除了升级,即,如果您继续使用 Emacs 22,请找出变量 ruby-insert-encoding-magic-comment 的定义位置(例如 grep 的定义)。然后确保在加载使用该变量的代码时也加载该文件。 (这是普遍现象。)

标签: ruby emacs


【解决方案1】:

我的 Mac 也有同样的问题,而且我对 lisp 也一无所知。但是我通过编辑 ruby​​-mode.el 文件找到了“解决方法”并进行了更改

这个:

((looking-at "\\s *#.*coding\\s *[:=]"))
(t (when ruby-insert-encoding-magic-comment
     (insert "# -*- coding: " coding-system " -*-\n"))))))))

进入这个:

((looking-at "\\s *#.*coding\\s *[:=]"))
   ;(t (when ruby-insert-encoding-magic-comment (insert "# -*- coding: " coding-system " -*-\n")))                              
)))))

...它奏效了。

我知道这本身并不能解决问题,但这是避免错误并继续使用 emacs 的一种解决方法:-)

【讨论】:

    猜你喜欢
    • 2014-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-18
    • 2011-10-22
    • 1970-01-01
    相关资源
    最近更新 更多