Почему emacs не запускается (set-face-attribute ...) в init.el, хотя остальная часть буфера выполняется?
1596
Squidly
Я попал (set-face-attribute 'default nil :height 100)в мой init.el, потому что я считаю размер шрифта по умолчанию слишком большим. Тем не менее, он не выполняется при загрузке emacs.
У меня нет init.elcфайла, который не является представительной обновленной версией моей init.el, и я знаю, что остальная часть my init.elвыполняется.
(set-face-attribute ...)После него нет других сексов, которые могли бы его перезаписать.
Вернувшись к моему init.elпосле загрузки emacs и выполнив его самостоятельно, он правильно устанавливает свойство (т. Е. Для всех буферов (но не для новых кадров), постоянно)
Хотя ваш init.el не перезаписывает его, он все равно может не иметь никакого эффекта. Возможно, `set-face-attribute` является свойством буфера? (Это все по памяти). Вы можете попробовать поместить команду в ловушку, которая будет выполнена позже.
alexis 11 лет назад
0
Код правильный. Попробуйте использовать только это в вашем файле инициализации и удалите все другие коды и пакеты. Если это работает тогда (т. Е. С пустым init, за исключением `set-face-attribute.. .`), тогда у вас конфликт с чем-то другим в других ваших настройках. Если вы уже выбрали другой возможный `set-face-attribute` и ничего не нашли, и если вы отключили свои цветовые темы, вам нужно будет медленно включить остальные настройки, пока не обнаружите конфликт. Также обратите внимание на настройки фрейма со спецификацией шрифта, например, `default-frame-alist`.
lawlist 11 лет назад
2
2 ответа на вопрос
3
Squidly
After some chopping bits out of my config file, I discovered it was due to (add-to-list 'default-frame-alist '(font . "DejaVu Sans Mono-12")).
The reason I'd discounted it before was because I ran (set-face-attribute 'default nil :height 100) at the very end of my init file.
The solution is to change the sexp that alters default-frame-alist to be (add-to-list 'default-frame-alist '(font . "DejaVu Sans Mono-12") '(height . 100)), and remove the one that alters the face-attribute directly
1. Вы должны принять свой собственный ответ, если он адекватен. 2. Почему бы вам не настроить `default-frame-alist` (` Mx customize-option`) вместо того, чтобы возиться с ним, используя Lisp в вашем файле инициализации? Это опция пользователя по причине.
Drew 10 лет назад
1
Потому что, похоже, он пока не работает так, как задумано. Я еще не вернулся, чтобы отредактировать ответ. Что касается elisp, я предпочитаю использовать customize - я думаю, что любой из этих вариантов действителен, и я предпочитаю подход elisp.
Squidly 10 лет назад
0
0
preskitt91
Это старая ветка, но у меня была такая же проблема, и мне удалось ее исправить. Я вижу, что вы сделали то же самое, но хотели внести свой вклад в мое решение, поскольку я не нашел его где-либо еще.
Я просто добавил следующую строку в мой ~ / .emacs.d / init.el: