Как использовать make-frame-on-display и multi-tty в Emacs? - PullRequest
5 голосов
/ 14 июля 2010

Эта страница из руководства Emacs описывает функцию под названием make-frame-on-display, которая позволяет вам получить доступ к удаленному сеансу Emacs.Мой интерес к этой функции заключается в том, чтобы использовать ее для совместного использования буферов для парного программирования с коллегой.

Со страницы:

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

Как именно это настроить?Что мне нужно?Что нужно моему партнеру?Детали не указаны, но я не знаю достаточно об Emacs, чтобы знать, с чего начать.

Есть ли другой способ получить общий сеанс Emacs? Эта страница из Вики Emacs относится к тому, что называется multi-tty.Вопросы, которые я задал выше, также относятся к этому.

Что лучше: multi-tty или make-frame-on-display?

Ответы [ 4 ]

5 голосов
/ 14 июля 2010

Я не пробовал multi-tty, но make-frame-on-display довольно прост. Вы вводите M-x make-frame-on-display, нажимаете return, затем набираете дисплей, на котором вы хотите, чтобы кадр отображался. Например:

У меня есть локальный хост (тор), на котором запущен emacs, и я хочу, чтобы на машине с именем zeus появлялся фрейм, на его единственном дисплее X (0.0). Поэтому я бы набрал M-x make-frame-on-display zeus: 0.0

Все готово!

Возможно, вам потребуется настроить X-сервер удаленного компьютера для приема входящих подключений с вашего компьютера с помощью «xhost + thor». Вам также может понадобиться настроить его брандмауэр, чтобы разрешить входящие соединения через порт X11, а это 6000. Имейте в виду, что переадресация X не зашифрована, поэтому, если вы не работаете с кем-то в вашей локальной сети, вы можете пройти через VPN для сохранения конфиденциальности.

Отредактировано для исправления скобок.

3 голосов
/ 16 июля 2010

Вы когда-нибудь задумывались об использовании GNU screen на общей учетной записи для парного программирования?Его очень легко заставить работать, и вы можете выбрать любой консольный редактор, который вам и вашему партнеру нравится (emacs, vim, joe, nano, zile, ...).Однако это, конечно, не работает с редакторами, которые не могут работать внутри терминала.

Чтобы настроить его, создайте общую учетную запись на компьютере под управлением ssh.Затем оба войдите в эту учетную запись.Один из партнеров запускает экран с

screen

, а другой подключается к нему с

screen -x

, где -x означает «присоединить к сеансу неотсоединенного экрана».Пользователи могут отсоединиться от своих сеансов с «Ca d».

3 голосов
/ 14 июля 2010

У вас также может быть человек на Зевс тип ssh -X thor emacsclient -c.

0 голосов
/ 05 апреля 2016

Старый вопрос, новое решение для всех, кто появился на этой странице с 2016 года.

Я настроил это в Ubuntu 14.04, и он отлично работает:

Предположим, я хочу со-редактировать илипродемонстрируйте некоторые интересные вещи на emacs с моим коллегой Джо на другом конце света.

  1. Убедитесь, что сервер ssh с emacs установлен на обоих концах.То есть MyPC или JoePC должны быть SSH-сервером и иметь установленный Emacs.Теперь, скажем, я попросил Джо установить SSH-сервер и Emacs на его компьютер.
  2. Убедитесь, что byobu установлен на JoePC.Byobu поддерживает как tmux, так и screen в качестве бэкэнда (я предпочитаю tmux для более современного и многофункционального).
  3. Я подключаюсь к JoePC с помощью ssh remoteuser@joepc.Нет необходимости в X-forwarding.
  4. Открыть emacs из терминала byobu-ssh: TERM=xterm-256color && emacsclient --alternate-editor="" -t.Можно сделать псевдоним для этой команды.Я рекомендую эту длинную команду, потому что она обеспечивает лучшую поддержку цвета в терминале и запуска Emacs в режиме демона.daemon mode позволяет быстро закрывать и открывать фреймы.
  5. Теперь волшебство разворачивается: попросите Джо войти с тем же remoteuser Я вошел в систему;откройте терминал и начните byobu, если это не для него.
  6. Начните взламывать или возиться: -)

Комментарий:

  • Потому что способ byobu работает.Этот подход работает для любой другой программы в терминале byobu.
  • Эта установка работает намного лучше, чем Teamviewer или любые другие решения для удаленного рабочего стола с графическим интерфейсом.
  • Поскольку соединение осуществляется через ssh с удаленным сервером напрямую, он настолько безопасен, насколько может предложить ssh-соединение.
...