我安装了一些主题,并将以下内容放入了我的$HOME/.emacs:
(custom-set-variables ; Your init file should only contain one of these
'(custom-safe-themes (quote ("ea489f6710a3da0738e7dbdfc124df06a4e3ae82f191ce66c2af3e0a15e99b90"
"a8245b7cc985a0610d71f9852e9f2767ad1b852c2bdea6f4aadc12cce9c4d6d0"
"8aebf25556399b58091e533e455dd50a6a9cba958cc4ebb0aab175863c25b9a4"
default)))
)
Run Code Online (Sandbox Code Playgroud)
为什么在引号内有引号?那不是多余的吗?
为什么在引号内有引号?那不是多余的吗?
这不是多余的,因为它给出了不同的值。在Lisp中一般情况下是(quote foo) => foo而(quote (quote foo)) => (quote foo)。因此,引用和双引号不可互换:其中一个是正确的,而另一个则是不正确的。
在这种特殊情况下,存在多个评估级别,因此需要多层报价。外引号可以防止在函数调用之前对参数进行常规评估,以便custom-set-variables接收列表(custom-safe-themes (quote ("ea489..." ... default))))。
这最终传递给在列表的第二个元素上custom-theme-set-variables调用eval的对象(quote ("ea489..." ... default))。
我试着删除
(quote和相应的括号,它仍然有效。
这似乎是工作,但只是因为自定义设置功能捕获错误。如果您检查,*Messages*您将看到Error setting custom-safe-themes: (invalid-function ea489f6710a3da0738e7dbdfc124df06a4e3ae82f191ce66c2af3e0a15e99b90)。
| 归档时间: |
|
| 查看次数: |
49 次 |
| 最近记录: |