r - Emacs + R : too long buffer name */usr/local/bin/R* for R buffers

标签 r emacs ess

我在 Mac OS X 10.7.3 和 R 2.15 上使用 Emacs 24(来自 http://emacsformacosx.com/builds 的 Emacs-pretest-24.0.91-universal-10.6.7)。当我打开一个新的 R 缓冲区时,缓冲区名称为 */usr/local/bin/R*。对于所有其他缓冲区,我收到一个合理的文件名,但对于 R 缓冲区,文件名始终包含此路径。如果您打开了多个 R 缓冲区并显示缓冲区菜单(例如),这会非常烦人。然后你会看到很多缓冲区显示为 */usr/local/... 并且你看不到哪个缓冲区对应于哪个 R 进程。

这是 Mac 的问题还是我的设置问题?

我唯一能想到的原因如下。为了从控制台调用 R(就像在 Emacs 中一样),我在 /usr/local/bin 中定义了一个符号链接(symbolic link),指向安装 R 的正确路径。这个链接我称之为“R”。

cd /usr/local/bin
sudo ln -s /Library/Frameworks/R.framework/Resources/bin/R R

我可以想象 emacs 缓冲区名称是由链接 /usr/lcoal/bin/R 确定的,但我不知道如何解决这个问题,因为没有链接我无法启动R。在 Ubuntu 上,我只看到缓冲区名称 R(或 R[2],...等),如果在 Mac 操作系统上也有相同的名称,那就太好了。

更新

inferior-R-program-name is a variable defined in `ess-custom.el'.
Its value is "/usr/local/bin/R"
Original value was "R"

ess-dialect is a variable defined in `ess-custom.el'.
Its value is "R"
Local in buffer */usr/local/bin/R*; global value is "R"
Automatically becomes buffer-local when set in any fashion.

ess-use-inferior-program-name-in-buffer-name is a variable defined in `ess-custom.el'.
Its value is t
Original value was nil

最佳答案

您有两个选择:将 inferior-R-program-name 设置为 "R" (并确保 /usr/local/bin code> 在您的 $PATH 中),或者将 ess-use-inferior-program-name-in-buffer-name 设置为 nil会将缓冲区名称设置为 ess-dialect 的值。

关于r - Emacs + R : too long buffer name */usr/local/bin/R* for R buffers,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10052673/

相关文章:

emacs - 在 Emacs 中高亮标记环位置

emacs - ESS/AucTeX/Sweave 集成

r - 将 R 中的内容清理为所需的标题

r - 使用自定义函数加速 rollapply 的技巧 (r)

emacs - 选择窗口时做一些事情

emacs - 通过指定文件名在emacs中自动打开文件

r - data.table::fread 中的 dec 参数

r - 我无法安装任何 Bioconductor 包 : "Error in readRDS(dest) : error reading from connection"

r - 如何将智能分配 key ("_"更改为 "<-") 在 ESS 中绑定(bind)

r - Emacs中ESS和rpy2共享R进程