3
在試圖精簡我的init.el時,我決定從醜陋的cond樹中移出一些功能。爲了將部分決定了它,我建了兩個輔助功能:Emacs Lisp有趣的錯誤
(defun abstract-screen-width()
(cond ((eq 'x window-system) (x-display-pixel-width))
((eq 'ns window-system) (display-pixel-width))
))
(defun perfect-font-size (pixels)
(cond ((eq 'x window-system) (cond ((<= pixels 1024) 100)
((<= pixels 1366) 110)
((> pixels 1366) 120)))
((eq 'ns window-system) (cond ((<= pixels 1024) 110)
((<= pixels 1280) 120)
((> pixels 1280) 140)))))
他們很好地結合起來,並調用他們,他們的目的是要調用的方式正常工作。
(perfect-font-size (abstract-screen-width))
130
的自定義設置的面孔調用,因爲它的工作原理
(custom-set-faces
'(default ((t (:inherit nil :stipple nil :inverse-video nil :box nil
:strike-through nil :overline nil
:underline nil :slant normal :weight normal
:height 130 :width normal
:family "IBM 3270"))))
'(linum ((t (:inherit default :foreground "#777" :height 130)))))
,但我的 「更好」 的版本
(custom-set-faces
'(default ((t (:inherit nil :stipple nil :inverse-video nil :box nil
:strike-through nil :overline nil
:underline nil :slant normal :weight normal
:height (perfect-font-size (abstract-screen-width)) :width normal
:family "IBM 3270"))))
'(linum ((t (:inherit default :foreground "#777" :height 120)))))
沒有。它給出了「默認臉部高度不是絕對和正面」的錯誤。在faces.el和cus-face.el中的源並沒有多大幫助。任何提示?
順便說一句,你可以使用'display-pixel-width'而不是'abstract-screen-width'。 – Stefan
是的。我不確定爲什麼我使用了x-display-pixel-width,可能是顯示像素寬度在一些遙遠的過去吐出一個錯誤 - 這個init.el與我在一起超過十年... – rbanffy