【问题标题】:Change all `=` to `eq` for emacs将 emacs 的所有 `=` 更改为 `eq`
【发布时间】:2012-12-28 10:19:35
【问题描述】:

最近经常遇到这样的错误:

Debugger entered--Lisp error: (wrong-type-argument number-or-marker-p nil)

我发现在某些情况下,错误是由这样的表达式引起的:

(= nil 4)    

我不确定这个表达式是否打算这样写,但只有当我将其更改为:

(eq nil 4)

但是,(1) 我需要将那个 emacs lisp 脚本中的所有 = 替换为 eq (2) 我不确定代码应该像这样修改。

我想知道是否可以在配置文件 (.emacs) 中写几行而不是修改源代码来完成任务。有人对此有想法吗?

【问题讨论】:

    标签: emacs lisp elisp emacs24 emacs-prelude


    【解决方案1】:

    不要这样做。

    您正在走在代码中隐藏错误的道路上。找出根 为什么您将 nil 传递给 = 并修复它的原因。

    【讨论】:

    • 是的。 @Firegun 我看到你的问题,你应该弄清楚到底发生了什么。
    • 换句话说,错误在于您要与 4 进行比较的变量不应该是 nil 并且您可以通过在代码的前面防止这一点来修复错误,可能是通过在变量被赋值,可能是由一个假定返回值但没有返回值的函数。
    猜你喜欢
    • 2014-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-18
    相关资源
    最近更新 更多