Wie kann ich verhindern, dass ein Befehl bestimmte Fenster verwendet?


14

Normalerweise habe ich einen Rahmen, der in vier Fenster aufgeteilt ist, wobei zwei unten meinem *compilation*und den *grep*Puffern gewidmet sind. Ersetzt beim Durchsuchen von Kompilierungsfehlern next-errormöglicherweise meinen *grep*Puffer durch eine der Zieldateien.

Wie kann ich konfigurieren next-error, dass das Fenster mit dem Puffer nicht verwendet wird *grep*?

Mein spezieller Anwendungsfall ist der next-errorBefehl, aber auch allgemeinere Antworten sind willkommen.


Antworten:


14

Ich schließe mich @ Nsukamis Vorschlag an, dedizierte Fenster zu verwenden . Da es sich um eine Funktion und nicht um einen Befehl handelt , kann die set-window-dedicated-pdirekte Verwendung umständlich sein. Mit dem folgenden Befehl und der zugehörigen Tastenbelegung können Sie die "Dedicatedness" eines Fensters durch Drücken von umschalten 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)

Jetzt können Sie diese spezielle Fensterfunktion auf bequeme Weise verwenden! Danke, es funktioniert wie ein Zauber.
Piwi

in der Tat besser in einer Funktion + Tastenkombination.
Nsukami _

4

Darf ich Dedicated-Window vorschlagen ?

Mit dieser Funktion müssen Sie den Puffern Fenster zuweisen:

set-window-dedicated-p-Fenster-Flag: Diese Funktion markiert das Fenster als seinem Puffer zugeordnet, wenn das Flag nicht null ist, und andernfalls als nicht zugeordnet.

Mit freundlicher Genehmigung von Gnu

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.