Czy istnieje funkcja emacs lisp, która pozwoli mi stwierdzić, czy bufor jest nieostry?

Próbuję napisać hook, który pozbędzie się bufora semantycznego *possible completion's* zaraz po tym, jak jest nieostry.

Czy można również pozbyć się bufora *Messages*? Nie znalazłem funkcji, która by to zabiła.

1
George Host 2 marzec 2012, 19:47

3 odpowiedzi

Najlepsza odpowiedź

W związku z drugim pytaniem: Czy można również pozbyć się bufora wiadomości. Jeśli używasz ido-mode (i wszyscy powinni go używać!), możesz ukryć bufor *Messages* na liście buforów za pomocą następującego elisp:

(require 'ido)
(setq ido-ignore-buffers '("^\*Messages\*"))
1
liwp 2 marzec 2012, 20:51

Możesz przetestować, czy bufor jest buforem, na którym aktualnie jest skupiony za pomocą current-buffer. Na przykład, aby sprawdzić, czy *scratch* ma fokus,

(eq 
 (current-buffer) 
 (get-buffer "*scratch*"))

Bufor *Messages* jest ważną częścią emacsa. Jest to niejawny cel funkcji message, który jest używany do rejestrowania różnych bitów informacji z całego świata. Możesz zabić *Messages* jak każdy inny bufor, ale zostanie on odtworzony następnym razem, gdy coś wywoła message. Prawdopodobnie mógłbyś to wyciszyć, przedefiniowując funkcję message, ale zakwestionowałbym sens tego robić.

2
ataylor 2 marzec 2012, 20:24

Możesz spróbować PopWin. Pozwala określić bufory, które będą otwierane w specjalnym oknie. To okno zamyka się, gdy ramka staje się nieostra lub gdy naciśniesz C-g

0
sabof 3 marzec 2012, 03:54