comment exécuter certains code elisp après le démarrage d'un nouveau cadre de emacsclient?

StackOverflow https://stackoverflow.com/questions/1980784

Question

Pour savoir comment évaluer automatiquement certaines Lisp code chaque fois à partir d'un emacsclient, cliquez ici.

Mon problème est différent. Je veux écrire un script qui ouvre un nouveau cadre emacs (en mettant l'accent là-dessus) (une façon de le faire est d'exécuter emacsclient -c), puis exécutez le code suivant elisp dans ce cadre.

(org-remember)

J'ai essayé

emacsclient -c & emacsclient -eval '(org-remember)'

Mais parfois, il ouvre juste un nouveau cadre non focalisé et exécute ensuite le code elisp, et d'autres fois, il ouvre un nouveau cadre axé mais il court le code elisp dans l'ancien cadre.

Certains qui sait ce que org-souvenir ne pourrait me demander pourquoi ne pas faire ceci:

emacsclient -eval '(org-remember)'

mais cela ne met pas l'accent sur l'ancien cadre.

Était-ce utile?

La solution

Ma version de emacsclient ne supporte pas l'argument -c, en dépit la documentation en faire la publicité .

Je ne sais pas s'il y a une façon de faire plus propre, mais vous pouvez essayer d'utiliser make-frame et select-frame , comme ceci:

emacsclient -e '(select-frame (make-frame))' '(org-remember)'

Cela va créer un nouveau cadre et, dans le cas où votre gestionnaire de fenêtre ne sélectionne automatiquement, il se concentre pas accorder, puis exécuter la deuxième commande avec cette nouvelle mise au point ayant cadre.

Autres conseils

Qu'en est-il juste de combiner les deux lignes de commande que vous avez déjà essayé dans un:

emacsclient -c -e '(org-remember)'

Cela fonctionne dans Emacs 23.1.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top