Как использовать make-frame-on-display и multi-tty в Emacs?

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

Со страницы:

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

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

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

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

4 ответа

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

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

Все готово!

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

Отредактировано, чтобы исправить скобки.

Вы можете также иметь человека в типе Зевса ssh -X thor emacsclient -c,

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

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

screen

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

screen -x

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

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

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

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

  1. Убедитесь, что сервер ssh с emacs установлен на обоих концах. То есть MyPC или JoePC должны быть SSH-сервером и иметь установленный Emacs. Теперь, скажем, я попросил Джо установить SSH-сервер и Emacs на его компьютер.
  2. Удостовериться byobu установлен на JoePC. Бёбу поддерживает оба 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.
Другие вопросы по тегам