Comment puis-je empêcher une commande d'utiliser des fenêtres spécifiques?

14

En règle générale, j'ai un cadre divisé en quatre fenêtres, dont deux en bas sont dédiées à mes tampons *compilation*et *grep*. Lorsque vous parcourez les erreurs de compilation, vous next-errorfinirez par remplacer mon *grep*tampon par l'un des fichiers cible.

Comment puis-je configurer next-errorpour ne pas utiliser la fenêtre contenant le *grep*tampon?

Mon cas d'utilisation spécifique est la next-errorcommande, mais des réponses plus générales sont également les bienvenues.

piwi
la source

Réponses:

14

J'appuie la suggestion de @ Nsukami d'utiliser des fenêtres dédiées . Puisqu'il s'agit d'une fonction et non d'une commande , l'utilisation set-window-dedicated-pdirecte peut être fastidieuse. Avec la commande suivante et la liaison de touches associée, vous pouvez basculer la "dédicace" d'une fenêtre en appuyant sur C-c t:

(defun toggle-window-dedicated ()
  "Control whether or not Emacs is allowed to display another
buffer in current window."
  (interactive)
  (message
   (if (let (window (get-buffer-window (current-buffer)))
         (set-window-dedicated-p window (not (window-dedicated-p window))))
       "%s: Can't touch this!"
     "%s is up for grabs.")
   (current-buffer)))

(global-set-key (kbd "C-c t") 'toggle-window-dedicated)
itsjeyd
la source
Voilà une façon pratique d'utiliser cette fonction de fenêtre dédiée! Merci, cela fonctionne comme un charme.
piwi
en effet, mieux dans une fonction + keybing.
Nsukami _
4

Puis-je suggérer une fenêtre dédiée ?

Vous devrez dédier des fenêtres aux tampons en utilisant cette fonction:

set-window-dédié-p indicateur de fenêtre: cette fonction marque la fenêtre comme dédiée à son tampon si l'indicateur n'est pas nul, et non dédié sinon.

Gracieuseté de gnu

Nsukami _
la source