You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过快捷键切换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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.03 05:27:31