Как мне заставить Emacs оценить файл при поднятии фрейма? - PullRequest
2 голосов
/ 31 марта 2010

В основном у меня настроен Emacs, поэтому он имеет специфичный для GUI elisp, но при запуске в режиме демона это не оценивается. Код выглядит примерно так:

;; gui.el
(when window-system
  (progn
    ;; do stuff here
    ))

Мне бы хотелось, чтобы этот файл (или, по крайней мере, код в нем - возможно, функция) был переоценен, когда я запускаю emacsclient -c в командной строке, так как я пропускаю все свои font-lock и color -без доброты (так как у меня есть этот набор для запуска только при наличии графического интерфейса).

Ответы [ 2 ]

3 голосов
/ 31 марта 2010

Вы можете поместить свой код в ловушку для вызова до создания фрейма

(add-hook 'before-make-frame-hook 'my-gui-initialization-stuff)

В этом хуке вы, вероятно, хотите иметь строку, которая делает

(remove-hook 'before-make-frame-hook 'my-gui-initialization-stuff)

чтобы вы не выполняли инициализацию снова и снова.

0 голосов
/ 31 марта 2010

Вы должны оценить вашу функцию GUI при запуске emacsclient:

emacsclient -c --eval "(your-gui-init-function)"
...