Lors du changement de tampons, empêchez emacs de changer automatiquement de trame


13

Lorsque je change de tampon, emacs bascule vers un cadre existant si le tampon y est déjà ouvert.

J'ai trouvé comment empêcher cela lors du passage avec ido en utilisant:

(setq ido-default-buffer-method 'selected-window)

Mais cela ne suffit pas: par exemple, s'il y a une erreur lisp, emacs basculera automatiquement vers le tampon * Backtrace *, et changera de trame s'il est déjà ouvert.

Existe-t-il un moyen d'empêcher complètement emacs de passer à une trame existante?

Réponses:


3

Il ne semble pas y avoir d'option pour cela.

La fonction de trouver un tampon ne vous permet de spécifier si vous souhaitez regarder dans toutes les images ou seulement dans le cadre actuel:

(get-buffer-window &optional BUFFER-OR-NAME ALL-FRAMES)

Cependant, l'implémentation de switch-to-bufferpasse 0 pour l' ALL-FRAMESargument, ce qui signifie qu'il apparaîtra dans toutes les trames.

Je suppose que vous pourriez utiliser des :aroundconseils get-buffer-windowpour remplacer cet argument, si vous vouliez vraiment empêcher globalement ce comportement ... mais je soupçonne que cela casserait d'autres choses.


Voilà ce que je craignais. Je pourrais essayer l'ajout de conseils autour de get-buffer-window, mais je n'aime pas trop conseiller les fonctions largement utilisées.
MonsieurBanana

Ouais, ça risque de causer des ennuis. Vous voudrez peut-être vérifier le popwinpaquet comme un moyen de gérer les tampons spéciaux - vous ne savez pas si cela, plus la configuration ido que vous avez déjà trouvée, pourrait suffire.
glucas

1
En fait, j'ai peut-être raté le bateau ici. Vous devriez jeter un œil aux sections du manuel Emacs sur 'Choisir la fenêtre' et 'Afficher les fonctions d'action'. En particulier, l'utilisation de inhibit-switch-framesemble utile. (Je n'ai pas encore eu l'occasion d'expérimenter ces options.)
glucas


Merci, ce fil SE est très utile. La documentation pour display-bufferet display-buffer-alistme fait mal à la tête, mais ce n'est qu'une question de temps jusqu'à ce que je trouve une solution.
MonsieurBanana
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.