升级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
相关产品推荐
相关产品推荐

