Emacs + R:R缓冲区的缓冲区名称* / usr / local / bin / R *太长

时间:2012-04-07 07:30:01

标签: r emacs ess

我使用R 2.15在Mac OS X 10.7.3上使用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中定义了一个符号链接,指向安装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 OS上拥有相同的功能会很棒。

更新

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

1 个答案:

答案 0 :(得分:2)

您有两种选择:将inferior-R-program-name设置为"R"(并确保/usr/local/bin位于$PATH),或将ess-use-inferior-program-name-in-buffer-name设置为{{ 1}}将缓冲区名称设置为nil的值。