Як я можу запобігти команді використовувати певні вікна?


14

Як правило, у мене кадр розділений на чотири вікна, де два внизу присвячені моїм *compilation*і *grep*буферам. Під час перегляду помилок компіляції, з next-errorчасом замінить мій *grep*буфер одним із цільових файлів.

Як я можу налаштувати , next-errorщоб НЕ використовувати вікно , що містить *grep*буфер?

Мій конкретний випадок використання - це next-errorкоманда, але також бажані більш загальні відповіді.


Відповіді:


14

Я друге пропозиція @ Nsukami використовувати спеціальні вікна . Оскільки це функція, а не команда , використання set-window-dedicated-pбезпосередньо може бути громіздким. За допомогою наведеної нижче команди та пов'язаного з цим прив'язки клавіш можна переключити "відданість" будь-якого вікна, натиснувши 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)

Тепер це зручний спосіб використання цієї спеціальної функції вікна! Спасибі, це працює як шарм.
piwi

дійсно, краще всередині функції + клавіатури.
Nsukami _

4

Можна запропонувати виділити вікно ?

Вам доведеться присвятити вікна буферам за допомогою цієї функції:

прапор вікна set-window-namen-p: Ця функція позначає вікно як виділене для його буфера, якщо прапор не має нульового значення, а не виділений в іншому випадку.

Надано гну

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.