【问题标题】:Passing -X argument for ssh with emacs and tramp使用 emacs 和 tramp 为 ssh 传递 -X 参数
【发布时间】:2017-09-21 09:14:41
【问题描述】:

我正在使用 emacs ess 和 tramp 远程执行一些 R 脚本。 我通常在服务器上有一个 R 脚本,并通过 emacs 在我的服务器上交互式地运行它。这一切都很好。

但是我无法从我的 R 脚本中显示绘图窗口。我想从 emacs 获得与运行时相同的行为 ssh -X user@server.com
然后以交互方式执行一些 R,绘图出现在我的本地机器上。

我已修改我的 .ssh/config 以添加 ForwardX11 yes 选项,该选项适用于我的服务器上的直接 ssh 查询,但不适用于 emacs/trump

我也尝试了自定义 tramp-default-mode` 的选项(请参阅 https://superuser.com/questions/609414/emacs-doesnt-use-ssh-config-when-accessing-files-on-a-remote-machine),但这也不起作用。

我也遇到了这个非常相似的问题: How can I launch an x-window from emacs ess when running R on a server?

但是:

1) 接受的答案不是 forwardX 问题的直接答案

2)第二个答案不起作用(我做错了什么?或者在某处缺少配置?)

感谢您的帮助,


编辑我在 Ubuntu 16.04 上使用 Emacs 23.1.1

【问题讨论】:

    标签: r ssh emacs tramp


    【解决方案1】:
    (with-eval-after-load 'tramp
      (add-to-list 'tramp-methods
                   '("sshx11"
                     (tramp-login-program        "ssh")
                     (tramp-login-args           (("-l" "%u") ("-p" "%p") ("%c")
                                                  ("-e" "none") ("-X") ("%h")))
                     (tramp-async-args           (("-q")))
                     (tramp-remote-shell         "/bin/sh")
                     (tramp-remote-shell-login   ("-l"))
                     (tramp-remote-shell-args    ("-c"))
                     (tramp-gw-args              (("-o" "GlobalKnownHostsFile=/dev/null")
                                                  ("-o" "UserKnownHostsFile=/dev/null")
                                                  ("-o" "StrictHostKeyChecking=no")
                                                  ("-o" "ForwardX11=yes")))
                     (tramp-default-port         22)))
      (tramp-set-completion-function "sshx11" tramp-completion-function-alist-ssh))
    

    这只是“ssh”方法的一个副本,在 tramp-login-args 中添加了“-X”。然后您可以使用C-x C-f /sshx11:user@host:path/to/target 访问文件/目录。

    【讨论】:

    • 您好,感谢您的回答。不幸的是,它不起作用。可以肯定的是,我在 .emacs 中添加了这个命令,使用 /sshx11:user@host:path/to/target 打开一个新文档,启动了我的 R 脚本并做了一个简单的绘图。没啥事儿。所以我还在tramp-login-args 中添加了"-X"。然后我实际上检查了这个 ssh 命令行是否用于查看缓冲区并且没问题。但是我的情节仍然没有出现在我的 R/tramp 会话中。我的 emacs 或服务器的配置是否有问题?
    • 看来我的问题可能特定于我的计算机配置,如果其他人可以确认此解决方案解决了他们的问题,我很乐意将其验证为一般问题的一般答案。虽然因为我不能检查自己我宁愿等待确认
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-17
    • 2012-04-11
    • 2011-03-28
    • 2013-10-17
    • 1970-01-01
    • 1970-01-01
    • 2013-12-20
    相关资源
    最近更新 更多