zpbird
1
安装 symbol-overlay 这个package后希望关闭它的 symbol-overlay-temp-face
,通过 M-x customize-face
去掉属性可以实现,产生如下语句:
(custom-set-faces
'(symbol-overlay-temp-face ((t nil))))
但我希望将此设置写入自己的相应配置文件中,目前如下:
(set-face-attribute 'symbol-overlay-temp-face nil :inherit nil)
这条语句只是将 :inherit
属性的值设为 nil
,没有将该属性清除,并不等价于上面的语句(有点强迫症),自己尝试了 set-face-attribute
N 多种写法都没有实现。
没改过 Face,也不太了解怎么改,但我有两疑问:
- 既然你觉得
custom-set-faces
好,为什么不直接用它呢?
- 你是怎么判定用了上面的
custom-set-faces
语句后,:inherit
属性就没了的?
zpbird
3
custom-set-faces是被自动创建并保存在指定的custom.el中,我希望放在自己指定的配置文件中,其他多个package我都设置成功了,就是这个禁用所有属性没有成功,单纯的设置某个属性是没有问题的
例如:之前org-mode可以设置多个属性

但这次的需求是希望使用set-face-atrribute语句禁用该face中的所有属性

就是取消图中这个属性,set-face-atrribute语句不知道该怎么写
fontux
4
:inherit
设置为 nil
应该已经移除了原来的 highlight
face 了,应该可以正常使用了。
一般人不会关注这种细节吧。
缓解你的强迫症,试试
(set-face-attribute 'symbol-overlay-temp-face nil :inherit 'unspecified)
这并不表示 custom-set-faces
不能从 Lisp 调用,你依然可以在 init.el
中使用它(?)
zpbird
8
收到,感谢,自己参考大家的配置时,看到主要是使用set-face,所以就没有考虑使用custom-set-faces