Bagaimana saya bisa mencegah perintah menggunakan windows tertentu?

14

Biasanya, saya memiliki bingkai dibagi menjadi empat jendela, di mana dua di bagian bawah didedikasikan untuk saya *compilation*dan *grep*buffer. Saat menjelajah kesalahan kompilasi, next-errorpada akhirnya akan menggantikan *grep*buffer saya dengan salah satu file target.

Bagaimana saya bisa mengonfigurasi next-erroruntuk tidak menggunakan jendela yang berisi *grep*buffer?

Kasus penggunaan khusus saya adalah next-errorperintah, tetapi jawaban yang lebih umum juga diterima.

piwi
sumber

Jawaban:

14

Saya menyarankan kedua @ Nsukami untuk menggunakan jendela khusus . Karena ini adalah fungsi, bukan perintah , menggunakan set-window-dedicated-psecara langsung bisa menjadi rumit. Dengan perintah berikut dan pengikatan kunci yang terkait, Anda dapat mengaktifkan "dedikasi" jendela apa pun dengan menekan 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)
itu hanya
sumber
Nah, itu cara mudah untuk menggunakan fitur jendela khusus ini! Terima kasih, ini berfungsi seperti pesona.
piwi
memang, lebih baik di dalam fungsi + keybing.
Nsukami _
4

Bolehkah saya menyarankan jendela khusus ?

Anda harus mendedikasikan jendela untuk buffer menggunakan fungsi ini:

flag jendela set-window-dedicated-p: Fungsi ini menandai jendela sebagai didedikasikan untuk buffernya jika flag tidak-nihil, dan sebaliknya tidak didedikasikan.

Atas perkenan gnu

Nsukami _
sumber