Идея состоит в том, чтобы переопределить set-face-attribute
так, чтобы он устанавливал атрибуты лица, обычно, за исключением атрибута :weight
, который всегда должен быть установлен на normal
(по умолчанию это значение по умолчанию). С этим я надеюсь раз и навсегда отключить смелые шрифты в Emacs.Как отключить жирный шрифт, переопределив атрибут set-face в Emacs?
Я получил это:
(fset 'original-set-face-attribute (symbol-function 'set-face-attribute))
(defun set-face-attribute (face frame &rest args)
(progn
(original-set-face-attribute face frame args)))
До сих пор она не работает. Если я делаю (make-face-bold 'default)
, я получаю Wrong type argument: symbolp, (:weight bold)
. Я думаю, что у меня есть , чтобы удалить это элементы, которые содержат :weight
из списка аргументов args
.
(1) Вы можете использовать 'defalias' вместо' fset'. (2) Поскольку 'ARGS' является параметром' & rest', вам необходимо использовать 'appply':' (применить # 'атрибуты face frame-set-face-attributes face frame args) '. – Drew
Лично, хотя я слишком ненавижу эффект «полужирный» на лицах (по крайней мере, в MS Windows), я предпочитаю просто переопределять отдельные лица. Во-первых, обычно есть что-то еще, что я хочу изменить о них, если они используют 'bold'. – Drew
@Drew Но есть сотни лиц ... –