9
votes

Existe-t-il un moyen d'apporter des modifications à basculer dans mon fichier .emacs s'appliquer sans redémarrer EMACS?

Je veux pouvoir apporter les modifications à mon fichier .emacs sans avoir à recharger des emacs.

J'ai trouvé trois questions qui répondent à ce que je demande (vous pouvez les trouver Here , ici et ici ), mais le problème est que le changement que je viens de faire est d'une bascule et de commentaires à deux des réponses ( A1 , A2 ) à ces questions expliquer, les solutions données là-bas (telles que MX Recharge-File ou MX Eval- tampon) ne s'applique pas aux bascules.

J'imagine E est un moyen de basculer la variable à nouveau avec une commande, mais s'il existe un moyen de recharger l'ensemble de .emacs et que tous les bascules sont réévalués sans avoir à les spécifier, je préférerais.

Dans tous les cas, j'apprécierais également si quelqu'un m'a dit comment basculer la valeur d'une variable de sorte que si je viens de changer une bascule, je peux le faire avec une commande plutôt que de redémarrer Emacs juste pour cela (je suis nouveau à Emacs). Je ne sais pas à quel point cette information est utile, mais le changement que j'ai appliqué était ce qui suit (que j'ai eu de Ce répond à une autre question): xxx

edit : J'ai inclus ce qui précède dans .emacs et emacs rechargés, afin que les changements avaient pris effet. Ensuite, j'ai commenté tout et essayé M-X Load-File. Cela ne fonctionne pas. La suggestion ci-dessous (CX CE par pp fonctionne si je l'utilise pour évaluer la première fois la première fois, mais pas quand je veux pour annuler). Je voudrais quelque chose qui évaluerait les commentaires, si cette chose existe ...

Merci :)


0 commentaires

6 Réponses :


6
votes

Certaines choses que vous voudrez peut-être essayer:

m-x chargez-fichier (puis lorsque vous y êtes invité, tapez ~ / .emacs entrez ). M-X signifie appuyer sur la touche méta (généralement ESC sur Linux et Windows Desktops) puis appuyez sur la touche X ordinaire.

ou, pendant que votre fichier .emacs est ouvert, placez votre invite juste après un support de fermeture pour la fonction que vous souhaitez exécuter et taper ctrl-x CTRL-X , Ctrl-e . Cela exécute ce bloc ci-joint dans l'ensemble de parenthèse la plus proche à gauche du curseur.

Cette dernière technique que j'utilise fréquemment pour des recherches complexes et remplacées. Dis que je modifie un fichier XML et je veux déplacer des étiquettes fermer sur la ligne avant: je saisis mon mémoire tampon XML actuel (requête-remplacement-regexp "[\ r \ n \ t] * , puis placez mon curseur immédiatement après la parenthèse de fermeture et tapez ctrl-x , ctrl-e . .


2 commentaires

Merci pour ça. J'avais essayé le fichier de chargement M-x avant d'évaluer les commentaires, mais cela n'avait pas fonctionné. J'essayais de vérifier si cela fonctionnerait si j'y incluais la bascule pour la première fois, mais j'ai fait quelque chose de mal et j'ai supprimé toutes mes personnalisations :( Je vais vérifier si cela fonctionne pour ce cas quand je trie mon gâchis et revenons à vous. Le CX CE fonctionne pour le basculer la première fois, mais cela ne fonctionne pas quand j'essaie de commenter les choses. Un autre problème avec c'est que je dois le faire pour chaque ligne de mes commandes (à moins que cela ne fonctionne si Je sélectionne les 6 lignes et l'exécuter).


Ah, je comprends ce que vous demandez maintenant. Il n'y a pas de moyen réel d'avoir à redémarrer Emacs chaque fois que vous modifiez votre fichier .emacs pour connaître l'effet réel. Configuration de votre fichier .emacs est l'une de ces tâches de consommation de temps que les programmeurs aiment faire parce qu'ils sont programmeurs. Mon fichier .emacs n'a pas beaucoup changé au cours des 10 dernières années, cependant. Pour ce que cela vaut, expérimentez autant que vous osez maintenant - éventuellement, vous aurez quelque chose de stable que vous devenez fier pendant des années.



2
votes

Je ne sais pas que j'ai bien compris votre question (un peu fatigué), mais que diriez-vous de marquer ce que vous avez changé (C-SPC), puis M-X EVAL-Région? Sauf si j'ai fait des choses majeures, cela fait ce que j'ai habituellement besoin.


1 commentaires

Je ne pense pas que cela fonctionnerait pour obtenir des EMACS pour "commenter" mon morceau de code ... Cela évaluerait de le basculer, mais de ne pas déformer en faisant un commentaire et en demandant à EMACS d'évaluer le bit. Cela peut être utile dans d'autres cas, cependant, alors merci :)



4
votes

Je suppose que vous voulez expérimenter avec une paire de squelette / hors squelette?

Je serais tenté de le faire en ayant: P>

(setq skeleton-pair t)    ; turns skeleton-pair on
(setq skeleton-pair nil)  ; turns skeleton-pair off


2 commentaires

Merci pour ça. J'aimerais pouvoir accepter plus d'une réponse, mais cela n'est pas possible. J'apprécie l'aide cependant :)


@VIVI: Le point est que chaque fonction bascule change le réglage d'une variable d'EMACS particulière. Donc, si vous travaillez uniquement avec les variables, vous n'avez pas cette classe de problème. Travailler avec des variables n'est pas une panacée, cependant: si votre configuration fait des choses comme ajoutez des éléments auxquels Emacs initialise, ceux-ci seront alors plus longs et plus longs chaque fois que vous exécutez votre fichier .emacs.



4
votes

J'ai inclus ce qui précède dans .emacs et emacs rechargés, de sorte que les changements avaient pris effet. Ensuite, j'ai commenté tout et essayé M-X Load-File. Cela ne fonctionne pas. p>

Cela ne fonctionne pas car lorsque vous avez démarré Emacs, vous définissez quelques variables et clés. Rechargement .emacs Code> Avec ces commandes commentées les pas em> les annulent. Vous devrez écraser manuellement les paramètres pour les annuler avec P>

(setq variable-name nil)


2 commentaires

Juste Fyi: Moi aussi, j'ai eu l'idée de décompresser et de recharger ensuite pour l'annuler en tant que débutant Emacs. Il y a des cas où cela serait vraiment pratique, mais malheureusement, ce n'est pas la façon dont les choses fonctionnent.


Ouais, je comprends ... Je sais aussi que beaucoup de choses que je veux faire sont inutiles et inutiles, mais c'est ainsi que nous apprenons, non? En étant têtu et essayant de faire des choses comme nous le voulons et ne pas accepter un moyen de le faire. Je ne doute pas bien que beaucoup de ce que j'essaie de faire maintenant, je finirai de changer ou d'oublier, mais c'est la vie :)



4
votes

Vous pouvez toujours utiliser le tampon * rayer * pour évaluer les expressions.

Si vous souhaitez définir votre variable:

(SetQ Skeleton-paire t) ^ j

non défini:

(SetQ squelette-paire nil) ^ j

Vous devez utiliser CTRL-J pour invoquer l'évaluation; retour (ou ctrl-m) ne fonctionnera pas.

Cela fonctionne pour toutes les expressions LISP, BTW. Si vous avez un calcul rapide à faire:

(+ 51 33) ^ j 84

ou si vous voulez trouver la largeur de votre cadre: (largeur de cadre) ^ j 80

C'est utile si vous bricolez ou que vous avez des commandes ou des variables non interactives pour évaluer.


1 commentaires

Oh, de sorte que le tampon de gratter soit réellement utile! Merci, c'est très utile :)



0
votes

Chaque fois que vous évaluez le code ELISP, il appartient à l'environnement GLOBAL EMACS de cette session EMACS; Donc, si vous définissez une valeur variable, il est toujours présent dans l'environnement, même si vous rechargez votre .emacs.

Ce serait bien si nous pouvions pré-charger un .emacs (ou n'importe quel LISP) dans un «sable de sable» pour le tester. Quand je fais une forte personnalisation .emacs, j'ouvre généralement un emacs pour la modification des .emacs et un autre pour évaluer (que je peux relancer pour éviter de corrompre l'environnement).


0 commentaires