我之前问过如何在 ESS 中切换 R 会话,使用C-x C-s
大大加快了我的工作流程。
但是,如果我有多个 R 会话(即使只有 3 个),可能很难记住哪个 on 是R
,哪个是R:2
,哪个是R:3
。有没有办法让 ESS、Emacs 或 tramp 根据运行 R 的服务器/目录自动命名不同的 r 会话?
我之前问过如何在 ESS 中切换 R 会话,使用C-x C-s
大大加快了我的工作流程。
但是,如果我有多个 R 会话(即使只有 3 个),可能很难记住哪个 on 是R
,哪个是R:2
,哪个是R:3
。有没有办法让 ESS、Emacs 或 tramp 根据运行 R 的服务器/目录自动命名不同的 r 会话?
[更新]
新版本的 ESS (> 12.09) 对缓冲区名称而不是内部进程名称进行操作。现在你可以重命名你的劣质缓冲区,M-x rename-buffer
这将做正确的事情。您还可以配置ess-gen-proc-buffer-name-function
为在启动时设置进程缓冲区的自动自定义重命名。
[/更新]
R, R:2 etk 是 ESS 中的进程名称。大约一年前,我在 ess 邮件列表上问过这个问题。似乎没有直接的方法可以改变这种行为。这是一个 emacs 功能而不是 ESS。您可以更改与进程关联的缓冲区名称,但进程名称将保持不变。
据我所知,Uniquify 会更改缓冲区名称。在任何情况下,最近版本的具有相同文件名的 emacs 缓冲区都被指定为部分路径,以使其唯一。所以看起来 uniquify 被用于文件的基本 emacs 中,但不适用于 proc 名称等其他东西。
不确定自动重命名(你可以在 ESS 邮件列表中询问),但我有时会使用M-x rename-buffer
which 来完成它应该做的事情。