Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在ESS中重命名R会话?_R_Emacs_Ess_Tramp - Fatal编程技术网

如何在ESS中重命名R会话?

如何在ESS中重命名R会话?,r,emacs,ess,tramp,R,Emacs,Ess,Tramp,我以前问过,使用C-xc-s大大加快了我的工作流程 但是,如果我有多个R会话(甚至只有3个),可能很难记住哪个是R,哪个是R:2,哪个是R:3。有没有办法让ESS、Emacs或tramp根据运行r的服务器/目录自动命名不同的r会话 不确定是否会自动重命名(您可以在ESS邮件列表中询问),但我有时使用M-x重命名缓冲区,这正是它应该做的。[update] ESS的新版本(>12.09)使用缓冲区名称而不是内部进程名称。现在,您可以使用M-x rename buffer重命名低级缓冲区,这样做是正确

我以前问过,使用
C-xc-s
大大加快了我的工作流程

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

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

[update]

ESS的新版本(>12.09)使用缓冲区名称而不是内部进程名称。现在,您可以使用
M-x rename buffer
重命名低级缓冲区,这样做是正确的。您还可以配置
ess gen proc buffer name function
以设置启动时进程缓冲区的自动自定义重命名

[/更新]

R、 R:2ETK是ESS中的进程名称。大约一年前,我在ess邮件列表上问了这个问题。似乎没有直接的方法可以改变这种行为。这是一个emacs功能,而不是ESS。您可以更改与进程关联的缓冲区名称,但进程名称将保持不变


就我所见,Uniquify更改了缓冲区名称。在任何情况下,在最新版本的emacs中,使用部分路径指定具有相同文件名的缓冲区,以使其唯一。因此,看起来uniquify被用于基本emacs中的文件,但不适用于进程名称等其他内容。

您之前的答案被修改为提及uniquify-您尝试过吗?@Nicholas是的,我尝试过uniquify,但会话仍然命名为
R
R:2
,等等。不确定原因,即使在阅读了@David之后,看起来缓冲区名称和进程名称之间还是有一个重要的区别。另外,uniquify有助于清理缓冲区名称。当您运行
ess开关进程时
,您从进程列表中选择,而不是从缓冲区中选择。基于此,看起来您无法更改进程的名称,因此您被卡住了。不过,我希望能够完全按照你的要求去做@DanielKessler我已经更新了我的答案。在最新版本的ESS中,C-C-s操作缓冲区名称,而不是进程名称。@VitoshKa太棒了!我希望我能再投你一票支持更新我看到了,但我并没有观察到在实践中使用uniquify的任何效果。据我所知,uniquify应该是我问题的答案,我再也帮不了你了。对我来说,uniquify提供了一个更有用的缓冲区,因为具有相同文件名的缓冲区可以a)消除歧义(foo.cpp,foo.cpp),b)搜索变得更容易(从缓冲区列表中贪婪匹配)。