我在使用ES时使用ESS以便留在Emacs中.每当我创建一个绘图时,都会出现一个带有图形的新弹出窗口.这个新窗口似乎是Emacs内部调用的R进程的一部分.因此,新窗口不是缓冲区列表的一部分,似乎位于Emacs环境之外.
R创建的新窗口,包含例如plot()调用的图形或ggplot2/lattice中的各个函数,是否会被强制保留在Emacs环境中?这样该图可用作新的缓冲区.
谢谢!
哦,是的,它可以......
在ESS中,执行以下操作:
png(file="tmp.png")
plot(1:10)
dev.off()
# [[tmp.png]]
Run Code Online (Sandbox Code Playgroud)
没有.现在做ESC X iimage-mode(是的,两个我在那里).
这会将您的缓冲区置于iimage较小模式,它应该发现[[tmp.png]]并将图像加载到那里.这应该很容易自动化.这是我第一次为自己发现这个,所以可能有更好的方法.
在ESS列表中显然有一些关于此的喋喋不休:
https://stat.ethz.ch/pipermail/ess-help/2009-August/005474.html
但我很惊讶它还没有在ESS核心......
不,抱歉,不能。Emacs 缓冲区是文本。图形窗口是图形设备。
但你可以自己做。在策划之前,甚至在会议开始时,说
pdf(file="/tmp/myplotfile.pdf")
Run Code Online (Sandbox Code Playgroud)
现在情节将去那里。然后,您可以在 Emacs 中打开 pdf 文件,最近的版本在 Emacs 中包含 pdf 预览(至少在我的 Linux boxen 上,不确定我是否需要额外的模式)。这将接近您的要求。