6

Я бы хотел, чтобы Emacs не просто хоронил буфер, но и убивал его, когда я нажимал q в буфере *Completions*/*Help*/etc Я не могу заставить работать функцию определения заменяющего ключа. Я использую Emacs24 на OSX.

Вот что у меня есть:

(substitute-key-definition
        'quit-window '(lambda () (interactive) (quit-window "KILL")) global-map)

2 ответа2

7

Другой ответ на самом деле дает немного несовместимое поведение. Рассмотрим ситуацию, когда у вас уже есть рамка, разделенная на два окна, затем вы открываете буфер справки и выходите из него. quit-window достаточно умен, чтобы знать, что он не должен убивать окно, только буфер. У него даже есть несколько хитрых хитростей, поэтому лучше всего поработать с ним и просто немного его настроить. Вот простой способ достижения того, что вы хотите:

(defadvice quit-window (before quit-window-always-kill)
  "When running `quit-window', always kill the buffer."
  (ad-set-arg 0 t))
(ad-activate 'quit-window)
2

Просто переопределение функции, похоже, сработало для меня, т.е.

(defun quit-window () 
 "modified quit window"
 (interactive)
 (kill-buffer-and-window)
 )

Я никогда не понимал, как важно иметь доступ к буферу завершения или помощи, когда вы переключаете буферы после того, как вы нажали q, чтобы выйти из него ранее.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .