【问题标题】:Symbol's value as variable is void [duplicate]符号作为变量的值是 void [重复]
【发布时间】:2017-03-05 10:21:51
【问题描述】:

我正在编辑我的.emacs 文件,但是当我加载它时,我反复收到错误消息。

这是.emacs文件中的代码:

(add-to-list 'load-path "/Users/user_name/software/lisp/")

错误是

An error has occurred while loading '/Users/user_name/.emacs':
Symbol's value as variable is void: "/Users/user_name/software/lisp"

该错误是什么意思,我该如何解决?

这是我的.emacs 文件

(setq debug-on-error t)                                                                                                                                                                                                                                                       

;(load "~/Software/ess-5.11/lisp/ess-site")
;(load "~/software/ess-15.03-2/lisp/ess-site")
;(load “/Users/knagdimov/software/ESS/lisp")

(add-to-list 'load-path “/Users/knagdimov/software/lisp/”)
(require "ess-site")

【问题讨论】:

  • 您认为是问题的代码部分,不是问题。 (add-to-list 'load-path "/Users/user_name/software/lisp/") 所拥有的一切都很好。问题在别处。尝试将(setq debug-on-error t) 放在.emacs 文件的顶部,保存并重新启动Emacs——您将获得更有用的调试消息,并且您可以在获得它们后编辑问题并提供更多详细信息。
  • @lawlist 感谢您的提示。我添加了该行,但同样的错误再次出现,没有新信息。
  • 继续发布您的整个 .emacs 文件作为对问题的编辑,以便我们提供进一步的帮助。
  • 看起来您没有使用真正的双引号?尝试在路径周围使用普通的常规双引号。
  • Emacs 现在是第 25 版。也许您使用的是旧版本的 Emacs——即在宏 defvar-local 发明之前。您应该考虑升级到 Emacs 25。

标签: debugging emacs


【解决方案1】:

在原发帖人对上述问题的编辑中,我们了解到与路径/Users/knagdimov/software/lisp/ 相关的错误是由于双引号引起的——即原发帖人使用了“/Users/knagdimov/software/lisp/” 而不是直接双引号-引用"/Users/knagdimov/software/lisp/"

原发帖人在修复第一个错误后收到的第二个错误消息是因为(require "ess-site")应该写成(require 'ess-site)——即,参数FEATURE需要是一个符号 而不是 字符串

引用defvar-local 不存在的第三条错误消息是因为原始发布者在发明带有该名称的内置宏之前使用的是早期版本的 Emacs。问题下方的 cmets 表明从 Emacs 版本 22.1.1 升级到 25.1.1 解决了该问题。

【讨论】:

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