15 votes

Comment évaluer automatiquement certains codes lisp après le démarrage d'un emacsclient ?

Au démarrage d'Emacs, init.el (ou .emacs.el) est évalué. Cependant, au démarrage d'emacsclient, aucun code lisp similaire n'est évalué.

Comment faire pour qu'un fichier lisp soit évalué à chaque fois que j'ouvre un nouveau emacsclient ?

(Ce serait pratique pour les personnalisations spécifiques au cadre).

Je suppose que la réponse est d'utiliser un crochet, mais je n'arrive pas à trouver le bon crochet à utiliser.

J'attends vos réponses avec impatience.

16voto

Trey Jackson Points 49816

Vous pouvez ajouter une fonction au crochet 'server-visit-hook qui est exécuté à chaque fois que le serveur est appelé (chaque fois que vous appelez emacsclient ).

7voto

haxney Points 1567

J'utilise le code suivant pour changer automatiquement le comportement des buffers du serveur. Je l'utilise notamment avec l'extension Firefox Tout est texte . Dans cette extension, les tampons sont nommés en fonction du nom de domaine, de sorte que vous pouvez déterminer la règle à appliquer en utilisant la commande string-match pour correspondre au nom du fichier.

(defun server-edit-presets ()
  (cond
   ;; When editing mail, set the goal-column to 72.
   ((string-match "mail\\.google\\.com\\.[0-9a-z]+\\.txt" (buffer-name))
    (longlines-mode-off)
    (auto-fill-mode 1)
    (set-fill-column 72)
    (save-excursion
      ;; Don't know if this is necessary, but it seems to help.
      (set-buffer (buffer-name))
      (goto-char (point-min))
      ;; Replace non-breaking strange space characters
      (while (search-forward (char-to-string 160) nil t)
        (replace-match " "))))))

(add-hook 'server-visit-hook 'server-edit-presets)
(add-hook 'server-visit-hook '(lambda () (longlines-mode 1)))

5voto

mike Points 317

Si vous voulez vraiment personnaliser les nouveaux cadres, il y a create-frame-hook qui prend une arg (le nouveau cadre)...

Si vous voulez parler de gnuclient, vous pouvez utiliser l'option de ligne de commande "-eval" pour évaluer quelque chose (et ensuite créer un alias pour toujours évaluer vos personnalisations).

1voto

Sekuri Points 11

@LSW :

Essayez 'window-setup-hook . Cela résout le problème puisque cette fonction est appelée même si aucun fichier n'est passé à emacsclient.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X