Come posso impedire a un comando di utilizzare finestre specifiche?


14

In genere, ho una cornice divisa in quattro finestre, in cui due in basso sono dedicate al mio *compilation*e ai *grep*buffer. Quando sfoglio gli errori di compilazione, next-erroralla fine sostituirò il mio *grep*buffer con uno dei file di destinazione.

Come posso configurare next-errorper non utilizzare la finestra contenente il *grep*buffer?

Il mio caso d'uso specifico è il next-errorcomando, ma sono benvenute anche risposte più generali.


Risposte:


14

Secondo il suggerimento di @ Nsukami di usare finestre dedicate . Poiché è una funzione, non un comando , l'utilizzo set-window-dedicated-pdiretto può essere ingombrante. Con il comando seguente e l'associazione dei tasti associati, è possibile attivare la "dedizione" di qualsiasi finestra premendo 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)

Questo è un modo conveniente per usare questa funzione di finestra dedicata! Grazie, funziona come un fascino.
piwi,

anzi, meglio all'interno di una funzione + keybing.
Nsukami _

4

Posso suggerire una finestra dedicata ?

Dovrai dedicare finestre ai buffer usando questa funzione:

set-window-dedicated-p flag flag: questa funzione contrassegna la finestra come dedicata al suo buffer se il flag è diverso da zero e non dedicato altrimenti.

Per gentile concessione di Gnu

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.