2017-09-14 1 views
0

Je suis conscient de l'utilisation de la fenêtre de configuration des fonctions Lisp pour enregistrer et sauter à enregistrer, ainsi que des paquets comme desktop.el et le mode gagnant.Enregistrer et récupérer la disposition sur le démon

Ils peuvent tous être utilisés pour enregistrer une mise en page pendant une session et la récupérer ultérieurement. Je peux les faire fonctionner correctement. Cependant, si je cours en mode démon et que je suis connecté via emacsclient - si j'essaie de sauvegarder une mise en page dans un registre, par exemple - je ne suis pas capable de récupérer cette mise en page dans un emacsclient séparé sur le même démon utilisant l'une des méthodes ci-dessus - même s'ils partagent exactement les mêmes fenêtres.

Est-ce que quelqu'un peut suggérer une fonction Lisp ou toute autre méthode pour permettre la persistance d'une disposition de fenêtre client après la fermeture de la session emacsclient d'origine?

Je devrais ajouter que je n'ai pas d'autre choix que d'utiliser emacs dans la console.

Mise à jour:

à demi-répondre à ma propre question -

Sauvegarde de la configuration de trame à un registre semble fonctionner:

C-x r f – frame-configuration-to-register 
C-x r j – jump-to-register 

Il est un peu branlant - quand vous sautez retour au registre, vous semblez avoir à quitter le cadre en utilisant 'Cx 5 0' .... après que vous êtes encore à gauche avec un cadre client sous-jacent que vous pouvez exister en utilisant 'Cx Cc' sans tuer le démon.

Si vous essayez de quitter directement le cadre enregistré du registre en utilisant d'autres méthodes, cela ne fonctionnera pas du tout, sinon vous allez complètement détruire le démon!

Donc, il me semble que sauter au registre semble prendre la propriété du processus démon. Questions de suivi: 1) Y a-t-il un moyen de rendre ce jeu un peu plus agréable avec le démon? 2) Existe-t-il un moyen d'enregistrer automatiquement votre image dans un registre (qui persistera sur le démon) lorsque le client emacs sort ou meurt?

2ème mise à jour

En fait, après avoir utilisé pendant un jour - qui précède ne fonctionne pas vraiment du tout - le comportement est aléatoire lors de la restauration des fenêtres - parfois, il fonctionne, et il est souvent impossible de quitter le emacsclient en utilisant n'importe quelle commande!

Je me trouve souvent en train d'exécuter kill sur le client emacsclient - qui à son tour tue le processus démon ainsi que le client!

Répondre

0

Pour répondre à ma propre question et avoir essayé de nombreuses façons de réaliser ce qui précède, j'ai seulement trouvé une méthode qui s'est avérée stable/fiable même en utilisant le daemon - ceci est d'utiliser le workgroups2 pacakge est disponible sur Melpa.

J'ai également noté que le paquet original de groupes de travail (dont workgroups2 est une fourchette plus récente) fonctionne également, mais a une fonctionnalité plus limitée. Ceci est également disponible auprès de Melpa.

Les principales commandes par défaut sur workgroups2 qui vous intéressent sont:

C-c z c - create 
C-c z v - view 

Je vous renvoie aux manuels pour plus de détails - J'ai des liens de référence inclus ci-dessous pour les 2 paquets

https://github.com/tlh/workgroups.el http://workgroups2.readthedocs.io/en/latest/

+1

Bien que ce lien puisse répondre à la question, il est préférable d'inclure les parties essentielles de la réponse ici et fournir le lien pour référence. Les réponses à lien uniquement peuvent devenir invalides si la page liée change. - [De l'avis] (/ review/low-quality-posts/17876263) – OmG