Каково состояние длительных удаленных сеансов R в ESS/Emacs?

Я обычно запускаю R удаленно и добился большого успеха с сервером RStudio. Тем не менее, Emacs/ESS по-прежнему предпочтительнее во многих случаях, особенно потому, что я часто работаю над несколькими проектами одновременно. Каково начало работы с ESS/R в emacs, когда ожидается, что соединение будет разорвано? Чтобы быть более конкретным, я бы хотел запустить сеанс tmux в Emacs, чтобы я мог подключиться к длительному сеансу R, запущенному в tmux (или на экране). Каков статус ESS/Emacs для поддержки такого сценария? Кажется, со временем это меняется, и я не нашел "окончательного" подхода (возможно, его нет).

1 ответ

Решение

Я делаю это все время. Как дома, так и на работе.

Ключевые компоненты:

  1. Запустите emacs в режиме демона: emacs --daemon &, Теперь emacs является долговременным и постоянным, поскольку он отключен от внешнего интерфейса.

  2. Подключиться с помощью emacsclient -nw в текстовом режиме с использованием tmux (или в моем случае, оболочка byobu вокруг tmux). Поскольку tmux сохраняется, я могу подключаться, отключаться, повторно подключаться,... по желанию, имея несколько вкладок, разделенных панелей,... из byobu / tmux.

  3. Когда рядом - на домашнем рабочем столе, подключаясь к домашнему серверу, или при работе с несколькими серверами - подключайтесь через emacsclient -c, Теперь у меня есть стандартное качество X11, графики и т. Д. Это мой рабочий режим по умолчанию.

  4. Но поскольку каждый сеанс emacs имеет сеанс R (или даже несколько, особенно на работе), я могу получить к ним доступ, также как и ssh в сеанс tmux/byobu.

  5. Еще одна приятная особенность - режим tramp, позволяющий вам редактировать удаленный файл (возможно, используемый удаленным сеансом R) в локальном буфере Emacs, когда tramp обвивает ssh и scp, делая удаленный файл локальным.

  6. Последнее, но не менее важное, mosh очень хорош для ноутбука (Ubuntu), так как он автоматически возобновляет сеансы, когда я возвращаюсь в локальную сеть дома или на работе. В моем случае mosh из Debian/Ubuntu на сервере и клиенте; может также работать на вас OS X люди.

Короче говоря, работает как сон, но может потребовать дополнительного шага "отключения" emacs от конкретной оболочки tmux, в которой вы запускаете. Режим демона является ключевым. Некоторые из этих сессий продолжаются неделями.

Я начал работать таким образом, может быть, пол десятилетия назад. Возможно дольше. Но использование ESS для подключения к удаленному сеансу Emacs намного старше - я думаю, что в руководстве ESS уже были записи для него, когда я впервые увидел его в конце 1990-х годов.

Но я нахожу это проще, так как он дает мне "весь emacs", включая любые другие буферы и сессии, которые могут мне понадобиться.

Редактировать: И для простоты, я также использую RStudio (Сервер) дома и на работе, но обычно провожу больше времени в Emacs по всем обычным причинам.

Дополнительные правки: в продолжение @kjhealy я добавил, что я также фанат режима tramp-режима (локальное редактирование удаленных файлов в Emacs благодаря магии ssh и scp), а также mosh (сеансы, которые магически возобновляются при Я получаю работу или возвращаюсь домой).

Другие вопросы по тегам