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

时间:2010-11-10 23:21:57

标签: r emacs ess x11

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

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

  1. 打开emacs
  2. C-x C-f /server:dir/file.R这让我进入ESS [S]模式
  3. 输入'plot(1)'
  4. C-c C-n运行
  5. emacs要求启动目录,我选择/ server:dir /
  6. 我想要一个人物弹出,但不会。
  7. 在shell或tramp模式下使用ess-remote时,这也不起作用,但如果我将起始目录设置为本地桌面,它确实有效。

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

2 个答案:

答案 0 :(得分:13)

我反过来这样做:

  • ssh -X some.server.com通过x11转发连接到远程服务器。

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

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

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

修改:作为评论的后续跟进:这适用于任何emacsemacsemacs-snapshot。很长一段时间我在(server-start)中使用了~/.emacs,但现在我更喜欢(仅一次)lauch emacs --daemon之后我可以通过emacsclient连接到emacsclient-snapshot作为{{1}})。我真的很喜欢这个 - 它在我连接,断开连接和重新连接的持久会话中给了我围绕R的Emacs。

答案 1 :(得分:3)

我选择了Dirk的答案,因为他指出了我正确的方向,特别是为了降低可视化我的数据所需的激活能量,但在这里我将详细介绍如何在桌面上使用它。

1)设置ssh密钥对(我以前做过这个,full instructions for Ubuntu here

mkdir ~/.ssh
chmod 700 ~/.ssh
ssh-keygen -t rsa
ssh-copy-id username@hostname

2)在〜/ .ssh / config

中包含以下内容
Host any_server_nickname
HostName  hostname
User username
ForwardX11 yes

3)在本地计算机上打开emacs

4)C-x C-f

5)/any_server_nickname:dir/file.R用于主目录中的文件或/any_server_nickname:/path/to/file.R

6)情节(1)

7)C-x C-b评估整个缓冲液。

alt text