我想让 Emacs 不仅埋葬缓冲区,而且在我按下缓冲区时也将其杀死q
。*Completions*/*Help*/etc
我无法让替代键定义功能工作。我在 OSX 上运行 Emacs24。
以下是我所拥有的:
(substitute-key-definition
'quit-window '(lambda () (interactive) (quit-window "KILL")) global-map)
答案1
另一个答案实际上给出了稍微不兼容的行为。考虑这样一种情况,您已经将一个框架拆分为两个窗口,然后打开一个帮助缓冲区并退出它。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 退出后切换缓冲区时仍然有完成或帮助缓冲区可用的目的。