我試圖在調用它之前檢查我的.emacs文件中是否有server-running-p
。我已經有以下幾點:因爲所述呼叫不可用如何檢查一個函數(例如server-running-p)在Emacs下是否可用?
(if (not (server-running-p))
(server-start))
但在某些電腦上,我使用Emacs,調用(server-running-p)
給出了一個錯誤。所以我想在調用之前檢查server-running-p
是否可用。我認爲boundp
會嘗試,但即使(server-running-p)
調用成功,調用(boundp 'server-running-p)
也會返回nil
。如果呼叫失敗,檢查撥打server-running-p
的正確方法不會失敗......或者至少可以抑制錯誤。 (還有什麼奇怪的對象server-running-p
無論如何boundp
返回nil
,但調用它成功?)
這是在Emacs 23.2.1,如果它有任何區別。
其實找到了答案。出於某種原因,您必須使用fboundp
代替boundp
。
原因是你可以有一個同名的函數和變量(例如'font-lock-mode')。因此你需要不同的功能來問「這是一個變量嗎?」和「這是一個功能?」 – cjm 2012-04-03 19:30:52
謝謝。我完全忘記了一些Lisp語言的特殊性。現在更有意義。 – 2012-04-04 20:41:27