我知道作为Emacs用户使用鼠标是一个坏习惯。然而,有时通过单击Finder左上角的红色"x“关闭按钮可以方便地关闭我的多个Emacs框架中的”一些“,而不是重复使用C-x40。
有没有办法重新绑定OS X GUI关闭按钮来删除(C-x 4 0)帧的缓冲区-即同时删除缓冲区和帧?如果缓冲区没有文件名,Emacs会要求我保存或丢弃缓冲区。
我的Emacs在OS X上是24.3.1。
发布于 2014-09-13 14:47:23
首先,在Emacs中使用鼠标并不是一个坏主意。恰恰相反。但这可能是一个坏习惯,正如你所说:任何过度的事情都可能是一个坏习惯。Emacs特别适合使用鼠标( Emacs鼠标比平时更强大),而且没有鼠标也可以很好地工作。使用鼠标的好处是:只需指向即可直接访问任何位置。
是的,当您单击窗口管理器X
图标(或窗口管理器用来删除窗口的任何图标)时,您可以让Emacs执行一个命令(比如delete-frame
)。您可以执行以下操作:
(define-key special-event-map [delete-frame] 'delete-frame)
(在库thumb-frm.el
中,我使用最小化图标(可选)缩略化框架,这是另一个例子。)
更具体地回答你的评论问题。此代码提示要终止的缓冲区(默认值:当前缓冲区)。如果只有一个帧,则退出Emacs。否则,它将仅删除选定的帧。
(defun foo (&optional buffer)
(interactive (list (read-buffer "Buffer: " (current-buffer))))
(if (not (cadr (frame-list)))
(save-buffers-kill-terminal) ; Kill Emacs, if last frame
(kill-buffer buffer)
(delete-frame (selected-frame) 'FORCE)))
(define-key special-event-map [delete-frame] 'foo)
https://stackoverflow.com/questions/25821272
复制相似问题