Comment puis-je recharger.emacs après modification?

Comment puis-je obtenir Emacs pour recharger toutes mes définitions que j'ai mises à jour dans .emacs sans redémarrer Emacs?

324
demandé sur D A Vincent 2010-04-05 23:36:07

18 réponses

vous pouvez utiliser la commande load-file ( M-x load-file , puis appuyer deux fois sur return pour accepter le nom de fichier par défaut, qui est le fichier courant en cours d'édition).

vous pouvez également déplacer le point à la fin de n'importe quel sexp et appuyez sur C-x C-e pour exécuter juste que sexp. Habituellement, il n'est pas nécessaire de recharger le fichier en entier si vous changez juste une ligne ou deux.

294
répondu Bryan Oakley 2014-10-08 02:14:59

très étrange que le très commode

M-x eval-buffer

n'est pas mentionné ici.

il évalue immédiatement tout le code dans le buffer, c'est la méthode la plus rapide, si votre .emacs est idempotent.

116
répondu Peter 2015-05-18 16:53:21

vous pouvez simplement réévaluer la région modifiée. Marque de la région de ~/.emacs que vous avez changé, puis utilisez M-x eval-region RET . C'est souvent plus sûr que de réévaluer l'ensemble du fichier car il est facile d'écrire un .emacs fichier qui ne fonctionne pas tout à fait bien après avoir été chargé deux fois.

35
répondu Dale Hagglund 2010-04-05 19:53:24

Si vous avez votre .ouvrir le fichier emacs dans le tampon actuellement actif:

M-x eval-buffer
33
répondu Dominic Rodger 2010-02-17 14:53:27
M-x load-file
~/.emacs
24
répondu digitaldreamer 2010-04-05 19:48:47

ce qui suit devrait suffire...

M-x load-file
12
répondu Pace 2010-02-17 14:52:58

D'autres ont déjà répondu à votre question comme indiqué, mais je trouve que je veux habituellement exécuter les lignes que je viens d'écrire. pour cela, Ctrl Alt x dans le lisp fonctionne très bien.

10
répondu Bahbar 2015-05-13 07:07:28

je suggère que vous ne le fassiez pas, d'abord. Au lieu de cela, lancez une nouvelle session emacs et testez tous les changements que vous avez faits pour voir s'ils fonctionnent correctement. La raison de le faire de cette façon est d'éviter de vous laisser dans un état où vous avez un inopérable .emacs file, qui ne charge pas ou ne charge pas correctement. Si vous faites de votre édition dans la session d'origine, et tous vos tests dans une nouvelle session, vous aurez toujours quelque chose de fiable pour commenter code incriminé.

lorsque vous êtes enfin satisfait de vos changements, alors allez-y et utilisez l'une des autres réponses pour recharger. Ma préférence personnelle est de eval juste la section que vous avez ajoutée/changé, et pour ce faire juste mettre en évidence la région de code ajouté/changé et appeler M-x eval-region . Faire cela minimise le code qui est évalué, minimisant tous les effets secondaires involontaires, comme le souligne luapyad.

6
répondu Joe Casadonte 2016-06-06 17:33:49

raccourci clavier:

(defun reload-init-file ()
  (interactive)
  (load-file user-init-file))

(global-set-key (kbd "C-c C-l") 'reload-init-file)    ; Reload .emacs file
6
répondu Matt Kneiser 2018-09-05 18:02:46
C-x C-e ;; current line
M-x eval-region ;; region
M-x eval-buffer ;; whole buffer
M-x load-file ~/.emacs.d/init.el
5
répondu WisdomFusion 2012-08-11 10:01:40

je suis actuellement sur Ubuntu 15.04; j'aime définir une clé pour cela.

[M-insert] se traduit par alt-insert sur mon clavier.

Mets ça dans la tienne .fichier emacs:

(global-set-key [M-insert] '(lambda() (interactive) (load-file "~/.emacs")))
3
répondu AAAfarmclub 2016-03-29 01:45:52

Définir dans votre fichier init et de les appeler par M-x recharger-utilisateur-init-file

(defun reload-user-init-file()
  (interactive)
  (load-file user-init-file))
2
répondu jacekmigacz 2013-11-26 12:44:25

solution

M-: (la charge de l'utilisateur-init-file)


notes

  • tapez-le dans Eval: invite (y compris les parenthèses)
  • user-init-file est une variable contenant la valeur ~/.emacs (pointant vers le chemin du fichier de configuration) par défaut
  • (load) est plus court, plus âgés, et non interactif version de (load-file) ; ce n'est pas une commande emacs (à taper dans M-x ) mais une simple fonction elisp

conclusion

M-: > M-x

2
répondu w17t 2018-08-10 07:43:45

bien que M-x eval-buffer fonctionne, vous pouvez rencontrer des problèmes avec des toggles et d'autres choses similaires. Une meilleure approche pourrait être de "marquer" ou de mettre en évidence ce qui est nouveau dans votre .emacs (ou même scratch buffer si vous venez de déconner) et puis M-x eval-region . Espérons que cette aide.

1
répondu user1026139 2011-11-02 17:44:58

voici un moyen rapide et facile de tester rapidement votre configuration. Vous pouvez également utiliser C-x C-e à la fin de spécifique lisp pour exécuter certaines fonctions individuellement.

C-x C-e exécute la commande eval-last-sexp (trouvée dans global-map), qui est une fonction interactive de Lisp compilée.

il est lié à C-x c-e.

(eval-last-sexp EVAL-LAST-SEXP-ARG-INTERNAL)

evaluer sexp avant le point; valeur d'impression dans la zone d'écho. De façon interactive, avec l'argument de préfixe, imprimez la sortie dans le tampon courant.

normalement, cette fonction tronque la sortie longue selon la valeur les variables ‘eval-expression-print-longueur’ et ‘eval-expression-impression-niveau". Avec un argument de préfixe de zéro, cependant, il n'existe pas de troncature. Un tel argument de préfixe aussi fait que les entiers sont imprimés dans plusieurs formats supplémentaires (octal, hexadécimal, et le caractère).

Si " eval-expression-debug-sur-l'erreur est non-nul, ce qui est la valeur par défaut, cette commande arrange toutes les erreurs pour entrer dans le débogueur.

1
répondu Xinyang Li 2016-04-08 08:44:26

à côté de commandes comme m-x eval-buffer ou m-x load-file vous pouvez redémarrer un emacs frais à partir de la ligne de commande:

emacs -q --load "init.el"

exemple d'utilisation stackoverflow.com/questions/44959535/company-backends-in-gnu-emacs /

1
répondu Picaud Vincent 2017-07-11 12:45:06

vous pouvez définir la liaison de clé pour emacs comme ceci

;; reload emacs configuration
(defun reload-init-file ()
  (interactive)
  (load-file "~/.emacs"))

(global-set-key (kbd "C-c r") 'reload-init-file) 

Espère que cela va vous aider!

0
répondu Vinh Trieu 2017-06-08 15:10:41

si vous avez un shell ouvert dans Emacs, vous pouvez aussi faire:

. ~/.emacs

peut enregistrer quelques touches.

-2
répondu benjaminz 2017-02-06 16:21:36