gpt4 book ai didi

r - ESS:ess-request-a-process 默认为 "S"

转载 作者:行者123 更新时间:2023-12-04 12:37:12 25 4
gpt4 key购买 nike

我经常发现自己有一堆 R 进程在 ESS 缓冲区中运行。有一个方便的 Lisp 函数 ess-request-a-process 请求 R 进程,并将其放在前面。唯一的缺点是它以某种方式默认为 S,因此每次我要进行切换时,我都必须输入 R,令人作呕。

我尝试自定义 ess-language 变量,但即使我将值设置为“R”,即当前 session 为 4,或者即使我为将来的 session 保存设置,只要我输入 C-c C-kS 会自动再次出现。这很烦人,我真的不想以 C-x C-b 然后 C-s 结束所需的 R session ! =)

我什至尝试在 .emacs 中设置 (setq-default ess-language "R"),但没有成功...

顺便说一句,我在 Linux Mint 上运行 Emacs v. 23.1.1,在 Arch Linux 上运行 Emacs v. 23.2,ESS v. 5.12。如果这是相关的,我使用 -nw 参数从终端运行 Emacs。这是我的 .emacs:

;; start server
(server-start)

;; load ESS
(require 'ess-site)
(require 'ess-rutils)

;; set HTML help as default
(setq inferior-ess-r-help-command "help(\"%s\", help_type = \"html\")\n")

(custom-set-variables
;; custom-set-variables was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
'(ess-help-kill-bogus-buffers t)
'(ess-rutils-keys nil)
'(show-paren-mode t))
(custom-set-faces
;; custom-set-faces was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
)
(put 'upcase-region 'disabled nil)

那么...如何一劳永逸地设置R? (我不使用 S/S+/SAS)

最佳答案

到目前为止我还不知道这个功能。 C-c C-k 绑定(bind)到 ESS 缓冲区中的 ess-force-buffer-current

[编辑:C-c C-k 在 iESS 中确实绑定(bind)到 ess-request-a-process,在 ESS 中它是 ess-force-buffer-current]

无论如何,您必须自定义的变量是ess-dialect

(setq-default ess-dialect "R")

它是缓冲区局部变量,ess-mode-hook 中的一些其他内容可能会将其设置为不同的值。

使用 C-h v ess-dialect

在每个缓冲区中检查它

此外,如果您已经运行了多个进程,那么 ess-switch-process (C-c C-s) 可能是正确的选择。[编辑:它不会跳转到一个进程,只是重置当前 ESS 缓冲区的关联进程]

[编辑:深入研究这个问题后发现 ess-request-a-process 使用 ess-language 变量是 ess-dialect 似乎更合适。问题在于,每次 ess-inferior 进程启动时,它都会重置 ess-language 的全局值。这就是为什么在您的案例中设置它不起作用。

这是一个快速修复:

(defun ess-set-language ()
(setq-default ess-language "R")
(setq ess-language "R")
)

(add-hook 'ess-post-run-hook 'ess-set-language t)

]

关于r - ESS:ess-request-a-process 默认为 "S",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4385052/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com