2011-08-26 2 views
13

Une question a déjà été posée how to reload a .emacs file after changing it.Recharger .emacs pour tous les tampons actifs

Les solutions proposées devaient utiliser M-x load-file ou M-x eval-region RET sur la région modifiée.

Aucune de ces solutions n'affecte d'autres tampons ouverts pour moi. Est-il possible de recharger le fichier .emacs pour tous les tampons ouverts?

Je devrais également noter que le M-x load-file n'a pas l'effet désiré pour les raisons décrites dans les commentaires à that answer.

Répondre

18

Votre fichier .emacs est une configuration globale qui est évaluée une seule fois. Il n'est pas appliqué à chaque tampon individuellement.

La façon dont vous atteignez réellement ce que vous voulez dépendra vraiment de ce que sont ces changements .emacs. Certains élisp prendront effet seulement la première fois qu'il est évalué; ou quand un tampon change de mode majeur; ou quand un fichier est chargé; etc, etc ...

Si vous voulez recharger certains ou tous les tampons de fichiers, ibuffer fait que assez facile:

  • MxibufferRET à ibuffer commencer (je vous recommande de lier cette à CxCb).
  • /f.RET pour filtrer par nom de fichier regexp . afin de correspondre à n'importe quel nom de fichier.
  • m (sur [default]) pour marquer tous les tampons filtrés.
  • V (majuscule) pour rétablir tous les tampons marqués.

ou vous pouvez remplacer les étapes 2 + 3 avec M-xibuffer-mark-by-file-name-regexpRET.RET. Vous pouvez lier cette commande à *f:

;; Bind `ibuffer-mark-by-file-name-regexp' to *f 
(eval-after-load "ibuffer" 
    '(define-key ibuffer-mode-map (kbd "* f") 'ibuffer-mark-by-file-name-regexp)) 

Type *c-h pour accéder à toutes les autres commandes ibuffer-mark-* qui sont liées par défaut.

3

Cela peut vous frapper comme force brute, mais

  • il va certainement recharger votre fichier init (considérer alternatives to .emacs)
  • il rechargera tous les tampons ouverts (à condition que vous utilisez desktop, que vous devriez)
  • il est facile

    C-x C-c 
    emacs --debug-init & 
    
+1

Soyez averti que desktop.el va restaurer certaines choses (par ex. les modes majeurs et mineurs, et les variables locales) telles qu'elles étaient à l'origine, plutôt que comme elles le seraient si le tampon était créé à nouveau. Si l'objectif est d'appliquer de nouveaux paramètres à ces tampons, cela peut constituer un obstacle. – phils

Questions connexes