Каково состояние длительных удаленных сеансов R в ESS/Emacs?
Я обычно запускаю R удаленно и добился большого успеха с сервером RStudio. Тем не менее, Emacs/ESS по-прежнему предпочтительнее во многих случаях, особенно потому, что я часто работаю над несколькими проектами одновременно. Каково начало работы с ESS/R в emacs, когда ожидается, что соединение будет разорвано? Чтобы быть более конкретным, я бы хотел запустить сеанс tmux в Emacs, чтобы я мог подключиться к длительному сеансу R, запущенному в tmux (или на экране). Каков статус ESS/Emacs для поддержки такого сценария? Кажется, со временем это меняется, и я не нашел "окончательного" подхода (возможно, его нет).
1 ответ
Я делаю это все время. Как дома, так и на работе.
Ключевые компоненты:
Запустите emacs в режиме демона:
emacs --daemon &
, Теперь emacs является долговременным и постоянным, поскольку он отключен от внешнего интерфейса.Подключиться с помощью
emacsclient -nw
в текстовом режиме с использованием tmux (или в моем случае, оболочка byobu вокруг tmux). Поскольку tmux сохраняется, я могу подключаться, отключаться, повторно подключаться,... по желанию, имея несколько вкладок, разделенных панелей,... из byobu / tmux.Когда рядом - на домашнем рабочем столе, подключаясь к домашнему серверу, или при работе с несколькими серверами - подключайтесь через
emacsclient -c
, Теперь у меня есть стандартное качество X11, графики и т. Д. Это мой рабочий режим по умолчанию.Но поскольку каждый сеанс emacs имеет сеанс R (или даже несколько, особенно на работе), я могу получить к ним доступ, также как и ssh в сеанс tmux/byobu.
Еще одна приятная особенность - режим tramp, позволяющий вам редактировать удаленный файл (возможно, используемый удаленным сеансом R) в локальном буфере Emacs, когда tramp обвивает ssh и scp, делая удаленный файл локальным.
Последнее, но не менее важное, mosh очень хорош для ноутбука (Ubuntu), так как он автоматически возобновляет сеансы, когда я возвращаюсь в локальную сеть дома или на работе. В моем случае mosh из Debian/Ubuntu на сервере и клиенте; может также работать на вас OS X люди.
Короче говоря, работает как сон, но может потребовать дополнительного шага "отключения" emacs от конкретной оболочки tmux, в которой вы запускаете. Режим демона является ключевым. Некоторые из этих сессий продолжаются неделями.
Я начал работать таким образом, может быть, пол десятилетия назад. Возможно дольше. Но использование ESS для подключения к удаленному сеансу Emacs намного старше - я думаю, что в руководстве ESS уже были записи для него, когда я впервые увидел его в конце 1990-х годов.
Но я нахожу это проще, так как он дает мне "весь emacs", включая любые другие буферы и сессии, которые могут мне понадобиться.
Редактировать: И для простоты, я также использую RStudio (Сервер) дома и на работе, но обычно провожу больше времени в Emacs по всем обычным причинам.
Дополнительные правки: в продолжение @kjhealy я добавил, что я также фанат режима tramp-режима (локальное редактирование удаленных файлов в Emacs благодаря магии ssh и scp), а также mosh (сеансы, которые магически возобновляются при Я получаю работу или возвращаюсь домой).