在服务器上运行R时,如何从emacs ess启动x窗口?

Dav*_*uer 5 x11 emacs r ess

我正在使用带有ssh.el包的emacs-snapshot,遵循ess手册中的说明.

有几种方法可以打开R会话,但这就是我这样做的方法:

  1. 打开emacs
  2. Cx Cf /server:dir/file.R这使我进入ESS [S]模式
  3. 输入'plot(1)'
  4. 抄送Cn来运行
  5. emacs要求启动目录,我选择/ server:dir /
  6. 我想要一个数字弹出,但它不会.

在shell或tramp模式下使用ess-remote时,这也不起作用,但如果我将起始目录设置为本地桌面,它确实有效.

任何建议都非常感谢.我目前的解决方法是将文件打印到pdf,然后在DocView模式下打开pdf,但这需要一些额外的步骤并且速度很慢.

Dir*_*tel 13

我反过来这样做:

  • ssh -X some.server.com 使用x11转发连接到远程服务器.

  • emacsclient -nw 重新启动已在运行的Emacs会话

  • plot(cumsum(rnorm(100))) 像往常一样在R里

然后,绘图窗口出现在我ssh离开的初始机器上.

编辑:作为评论的后续行动:这适用于任何emacs,emacs或者emacs-snapshot.很长一段时间我都(server-start)在使用,~/.emacs但现在我更喜欢(只有一次)lauch emacs --daemon,然后我可以连接到via emacsclient(也存在emacsclient-snapshot).我真的很喜欢这个 - 它在我连接,断开连接和重新连接的持久会话中给了我围绕R的Emacs.

  • @David,如果您使用守护程序选项在服务器上启动emacs,则在关闭emacs客户端时R会继续运行.这是因为emacs(以及R)像服务一样运行.德克向我解释了这一点.我一直在做这件事来连接到EC2上运行的ESS.我已经停止携带我的笔记本电脑了,因为我可以将另一台emacs客户端从我的家用机器连接到同一会话. (5认同)