如何通过快捷键切换Emacs中*Compilation*缓冲区的显示状态?
Emacs中通过
Ctrl+,切换Compilation缓冲区显隐 将如下Elisp配置添加到你的Emacs初始化文件(通常为~/.emacs或~/.emacs.d/init.el),保存后执行M-x eval-buffer加载配置,或重启Emacs即可生效:
(defun toggle-compilation-buffer () "切换*Compilation*缓冲区的显示与隐藏状态" (interactive) (let ((compilation-buffer (get-buffer "*Compilation*"))) (cond ;; 无对应缓冲区时给出提示 ((null compilation-buffer) (message "未找到*Compilation*缓冲区")) ;; 缓冲区正在显示时关闭对应窗口 ((get-buffer-window compilation-buffer) (delete-window (get-buffer-window compilation-buffer))) ;; 缓冲区隐藏时在其他窗口调出 (t (switch-to-buffer-other-window compilation-buffer))))) ;; 全局绑定快捷键到 Ctrl+, (global-set-key (kbd "C-,") 'toggle-compilation-buffer)
功能说明
- 触发快捷键时会先检测Compilation缓冲区是否存在,不存在时仅在底部minibuffer提示,不会抛出异常
- 缓冲区处于显示状态时触发快捷键,仅关闭显示该缓冲区的窗口,不会杀掉缓冲区,已有的编译输出、运行状态都会完整保留
- 缓冲区存在但处于隐藏状态时触发快捷键,会自动在分屏窗口调出该缓冲区
- 如果希望调出缓冲区时直接占用当前窗口,而非新开分屏,将代码中
switch-to-buffer-other-window替换为switch-to-buffer即可
内容的提问来源于stack exchange,提问作者Ali Awan
相关产品推荐
相关产品推荐

