【问题标题】:How do I rename R sessions in ESS?如何在 ESS 中重命名 R 会话?
【发布时间】:2011-01-04 01:29:42
【问题描述】:

我之前问过how to switch R sessions in ESSC-x C-s 的使用大大加快了我的工作流程。

但是,如果我有多个 R 会话(即使只有 3 个),可能很难记住哪个是R,哪个是R:2,哪个是R:3。有没有办法让 ESS、Emacs 或 tramp 根据运行 R 的服务器/目录自动命名不同的 r 会话?

【问题讨论】:

  • 你之前的回答被修改为提到 uniquify - 你试过了吗?
  • @Nicholas 是的,我尝试过 uniquify,但会话仍然命名为 RR:2 等。不知道为什么,即使在阅读 gnu.org/software/emacs/manual/html_node/emacs/Uniquify.html 之后也是如此
  • @David 看起来缓冲区名称和进程名称之间有一个重要的区别。 AFAIK,uniquify 有助于清理缓冲区名称。当您运行ess-switch-process 时,您是从进程列表中进行选择,而不是从缓冲区中进行选择。基于this answer,您似乎无法更改进程的名称,因此您被卡住了。不过,我希望能够完全按照您的要求进行操作!
  • @DanielKessler 我已经更新了我的答案。 C-c C-s 在最新版本的 ESS 中对缓冲区名称而不是进程名称进行操作。
  • @VitoshKa 太棒了!希望我能给你另一个更新投票

标签: r emacs ess tramp


【解决方案1】:

[更新]

新版本的 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 名称等其他内容。

【讨论】:

    【解决方案2】:

    不确定自动重命名(您可以在 ESS 邮件列表中询问),但我有时会使用 M-x rename-buffer,这正是它应该做的。

    【讨论】:

    • 我看到了,但我没有观察到在实践中使用 uniquify 的任何效果。据我了解,uniquify 应该是我问题的答案
    • 我帮不了你了。对我来说,uniquify 提供了一个更有用的缓冲区,因为具有相同文件名的缓冲区 a) 消除歧义(foo.cpp, foo.cpp)和 b) 搜索变得更容易(来自缓冲区列表的贪婪匹配)。跨度>
    猜你喜欢
    • 1970-01-01
    • 2017-09-24
    • 2012-09-16
    • 2023-03-27
    • 1970-01-01
    • 2015-05-27
    • 2017-03-03
    • 2013-12-07
    • 1970-01-01
    相关资源
    最近更新 更多