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

升级Emacs/ESS 30.1后恢复R开发旧工作流的方法咨询

恢复Emacs 30.1+ ESS的旧版窗口行为

1. 启动R时占据整个窗口,不拆分当前窗口

在Emacs配置文件(~/.emacs或~/.emacs.d/init.el)中添加以下配置,强制ESS在启动R时使用当前窗口的全部空间:

;; 让R启动时占据整个当前窗口
(setq ess-dedicated-window 'whole)
;; 备选方案:通过display-buffer规则确保R缓冲区不拆分窗口
(add-to-list 'display-buffer-alist
             '("*R*" (display-buffer-same-window)))

如果ess-dedicated-window设置不生效,display-buffer-alist的规则可以直接指定*R*缓冲区在当前窗口显示,避免自动拆分。

2. 运行代码后自动切换焦点到R窗口

添加以下配置,让ESS在执行代码后自动切换到R的inferior缓冲区,并确保Windows系统下窗口焦点自动切换:

;; 执行代码后自动切换到R inferior缓冲区
(setq ess-switch-to-inferior-after-eval t)
;; 确保Windows系统下激活R窗口的焦点
(add-hook 'ess-post-eval-hook
          (lambda ()
            (when-let ((win (get-buffer-window inferior-ess-buffer)))
              (select-window win)
              (focus-frame (window-frame win)))))

ess-switch-to-inferior-after-eval控制执行代码后切换到R缓冲区;ess-post-eval-hook中的代码会进一步确保对应的窗口被选中,并且在Windows系统下激活该窗口的焦点。

内容的提问来源于stack exchange,提问作者user2623214

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 15:52:32