2012-12-28 48 views
1

最近,我經常遇到象這樣的錯誤:更改所有'='爲'eq`爲Emacs

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

我發現,在某些情況下,錯誤是由表達這樣引起的:

(= nil 4)  

我不知道這種表達是否打算這樣寫,但它的工作只有當我將其更改爲:

(eq nil 4) 

但是,(1)我需要在該emacs lisp腳本中將所有=替換爲eq(2)我不確定代碼應該如何修改。

我想知道是否可以在配置文件(.emacs)中寫幾行而不是修改源代碼來完成任務。有沒有人有關於此的想法?

回答

8

不要這樣做。

你要走在代碼中隱藏錯誤的路徑。找出爲什麼你將nil傳遞給=並解決這個問題的根 。

+0

是的。 @Firegun我看到你的問題,你應該弄清楚到底發生了什麼。 – Edityouprofile

+1

換句話說,錯誤在於你與4比較的變量不應該是'nil',並且你在代碼中通過防止這種錯誤來修復錯誤,可能是在變量被賦值時報告錯誤,可能是通過函數假定返回一個值但不是。 – tripleee

+0

愛的大呼聲正確如此.. – kindahero

相關問題