当我尝试访问帮助时,我的emacs/ess会崩溃。如果我加载了两个具有相同函数的包,就会发生这种情况,例如:
library(lubridate)
library(data.table)
?month
在Rgui界面中,会弹出一个窗口让我选择需要帮助的包。而Emacs会直接崩溃。当使用install.packages时也有类似的问题,但有一种方法可以指定镜像地址(在Emacs中安装R包有什么技巧吗?)。是否有类似的技巧可以用于帮助呢?
当我尝试访问帮助时,我的emacs/ess会崩溃。如果我加载了两个具有相同函数的包,就会发生这种情况,例如:
library(lubridate)
library(data.table)
?month
在Rgui界面中,会弹出一个窗口让我选择需要帮助的包。而Emacs会直接崩溃。当使用install.packages时也有类似的问题,但有一种方法可以指定镜像地址(在Emacs中安装R包有什么技巧吗?)。是否有类似的技巧可以用于帮助呢?
目前还没有完全解决这些崩溃的方法,因为没有人真正理解这些崩溃发生的原因。我假设你正在使用Windows系统,对吗?
ESS计划完全内部化所有帮助(和其他)调用,以避免依赖于R对话框。希望在下一个版本中实现。
暂时将以下内容添加到您的.Rprofile文件中:
tis <- utils:::index.search
formals(tis)[["firstOnly"]] <- TRUE
assignInNamespace("index.search", tis, "utils")
它基本上使帮助系统选择找到的第一个主题包。在您的情况下,data.table包中的月份帮助页面将被忽略。这并不是什么大问题,因为常见的主题名称相当罕见。
我发现使用library(tcltk)可以解决这个问题。即使从emacs+ess调用,菜单也会出现。我将library(tcltk)添加到我的Rprofile.site中,现在一切都运行得很好,包括install.packages()和在多个包加载相同函数时访问帮助信息。