C'est une question plutôt rudimentaire, mais quelle est la différence pratique entre ouvrir un nouveau fichier dans un cadre séparé (make-new-frame) à partir d'emacs ou ouvrir le fichier dans une instance d'emacsclient? Je peux voir que si vous travaillez à travers un terminal, la différence est claire ... mais emacsclient peut-il aussi restreindre la liste des buffers accédés par (buffer-menu) ou ido-mode aux buffers ouverts dans cette instance emacsclient particulière?Emacs - emacsclient ou nouveau cadre?
Répondre
Il n'y a vraiment aucune différence entre les deux situations, à part le fait que le serveur configure un état local de tampon pour activer C-x #
(aka server-edit
).
Vous pouvez limiter le comportement M-x list-buffers
comme vous demandez avec les conseils suivants:
(defadvice list-buffers-noselect (before list-buffers-noselect-limit-to-those-for-emacsclient activate)
"When the current buffer is a being viewed by an emacclient, restrict the buffers to those associated with the emacsclient"
(when (and (null (ad-get-arg 1)) server-buffer-clients)
(let ((blist (delete-dups (reduce 'append
(mapcar (lambda (proc) (process-get proc 'buffers))
server-buffer-clients)))))
(ad-set-arg 1 blist))))
Maintenant, quand vous faites M-x buffer-menu
dans un tampon visité par emacsclient
, vous ne voyez que d'autres tampons visités par le même client (s). Cela fonctionne normalement lorsque le tampon n'est pas visité par un emacsclient
.
Je n'utilise pas ido
, mais j'imagine que la personnalisation serait similaire (si ce conseil ne fonctionne pas tel quel). Les détails sont que lorsque vous exécutez emacsclient
, les tampons qui s'ouvrent sont associés au processus serveur (il peut y en avoir plusieurs car vous pouvez ouvrir le même fichier via plusieurs invocations de emacsclient
). Les clients du serveur d'un tampon sont stockés dans la variable locale du tampon server-buffer-clients
.
Pour savoir quels tampons sont associés à une invocation particulière de emacsclient
, trouver le processus pour ce emacsclient et faire: (process-get proc 'buffers)
(où proc
est le processus de emacsclient particulier - l'un des éléments de la liste qui se trouve dans server-buffer-clients
).
C'est tout ce que le conseil fait.
Il n'y a pas de différence dans emacs 23, tant que emacsserver est en cours d'exécution. La liste de tampons sera la même dans chacun.
Merci - oui, cela semble plutôt correct, mais Emacs semble être conscient du client qui accède à un fichier particulier, comme le souligne Trey ... mais merci pour votre contribution! – hatmatrix
- 1. Cadre ou CMS?
- 2. Comment supprimer l'invite de suppression des tampons emacsclient?
- 3. Nouveau projet ou succursale?
- 4. Maximiser un cadre Emacs à un seul moniteur avec Elisp
- 5. Comment évaluer automatiquement certains code Lisp après le démarrage d'un client emacsclient?
- 6. AJAX ou un cadre côté serveur?
- 7. emacs - montre l'aide et le tampon de message dans la fenêtre actuelle ou dans un cadre séparé?
- 8. pour insérer() ou pour faire du nouveau
- 9. Dans emacs, comment mettre en surbrillance la ligne en cours dans le cadre actuel uniquement?
- 10. emacs, etags et utiliser emacs comme IDE
- 11. Cadre de notification ou d'alerte pour .NET C# composant
- 12. Blocs d'application de bibliothèque d'entreprise OU cadre familial?
- 13. Enterprise Library (1.0) à cadre LINQ ou entité
- 14. Détection lors d'un clic sur un lien, ouverture dans un nouveau cadre
- 15. ObjectContext réutilisable ou nouveau ObjectContext pour chaque ensemble d'opérations?
- 16. Django commentaires cadre
- 17. Dois-je partager le contexte Entity-Framework ou créer un nouveau contexte pour chaque opération?
- 18. Cadre Magento
- 19. Comment je décompresser/décompresser dans Emacs
- 20. Chemins de cadre iPhone?
- 21. Emacs Pabbrev et Python
- 22. Cadre buster buster
- 23. Masquage^M dans emacs
- 24. Emacs - Initialisation Ubuntu
- 25. Run JQuery dans le cadre d'un autre cadre
- 26. Cadre d'injection de configuration
- 27. Quel cadre de service Web?
- 28. Portable Emacs? (Le serveur Emacs ne fonctionne pas)
- 29. Cadre HMVC pour Coldfusion?
- 30. Cadre de test d'intégration?
Merci! Comme Jed mentionne, il ne semble y avoir aucune différence quand un nouveau cadre est ouvert, mais le conseil ci-dessus fonctionne quand j'ouvre un nouveau fichier avec emacsclient -t. Intéressant ... Je vais regarder dans cela pour ido-mode et éventuellement ibuffer. Très appréciée! – hatmatrix
L'avez-vous fait fonctionner avec ido? – tatsuhirosatou