Created
January 29, 2018 22:11
-
-
Save fourier/89bec896a1258d21d3302b847f9e3e55 to your computer and use it in GitHub Desktop.
Emacs bind esc to close temporary windows
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
;; use Esc to close temporary windows | |
(let ((hotkey | |
(if window-system (kbd "<escape>") "\M-q"))) | |
(global-set-key hotkey 'txm-close-temporary-window) | |
;; in cc-modes M-q redefined | |
(define-key c-mode-map hotkey 'txm-close-temporary-window) | |
(define-key c++-mode-map hotkey 'txm-close-temporary-window)) | |
(defun txm-close-temporary-window () | |
"Close all temporary windows in current frame. | |
Return t if any of windows were closed." | |
(interactive) | |
(save-selected-window | |
(let (result) | |
(dolist (window (window-list)) | |
(select-window window) | |
(cond ((or (eq major-mode 'help-mode) | |
(eq major-mode 'compilation-mode) | |
(eq major-mode 'completion-list-mode) | |
(eq major-mode 'Man-mode) | |
(eq major-mode 'apropos-mode) | |
(eq major-mode 'grep-mode) | |
(string= (buffer-name) "*slime-description*")) | |
(quit-window) | |
(setf result t)) | |
((eq major-mode 'magit-popup-mode) | |
(magit-popup-quit) | |
(setf result t)) | |
((eq major-mode 'gnu-apl-keymap-mode) | |
(gnu-apl-show-keyboard)))) | |
result))) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment