Как я могу запустить x-window из emacs ess при запуске R на сервере? - PullRequest
5 голосов
/ 11 ноября 2010

Я использую emacs-snapshot с пакетом ssh.el, следуя инструкциям из руководства ess.

Есть несколько способов открыть сеанс R, но я так и делаю:

  1. открыть emacs
  2. Cx Cf /server:dir/file.R это переводит меня в режим ESS [S]
  3. Тип 'plot (1)'
  4. Cc Cn для запуска
  5. emacs запрашивает начальный каталог, и я выбираю / server: dir /
  6. Я хотел бы, чтобы фигура всплывала, но это не так.

Это также не работает при использовании ess-remote в режиме shell или tramp, но работает, если я устанавливаю начальный каталог на свой локальный рабочий стол.Мой текущий обходной путь - распечатать файл в формате pdf, а затем открыть pdf в режиме DocView, но это занимает несколько дополнительных шагов и идет медленно.

Ответы [ 2 ]

13 голосов
/ 11 ноября 2010

Я делаю это наоборот:

  • 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, после чего я могу затем подключиться через emacsclient (который также существует как emacsclient-snapshot). Мне очень нравится это - это дает мне Emacs вокруг R в постоянном сеансе, к которому я подключаюсь, отключаюсь и переподключаюсь.

3 голосов
/ 11 ноября 2010

Я выбрал ответ Дирка, потому что он указал мне правильное направление, и особенно для снижения энергии активации, необходимой для визуализации моих данных, но здесь я собираюсь рассказать о том, как я получил это для работы на моем рабочем столе.

1) установить пары ключей ssh ​​(я уже делал это, полные инструкции для Ubuntu здесь )

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

...