Как использовать 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-display
Все готово!
Вам может потребоваться настроить 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.
- Убедитесь, что сервер ssh с emacs установлен на обоих концах. То есть MyPC или JoePC должны быть SSH-сервером и иметь установленный Emacs. Теперь, скажем, я попросил Джо установить SSH-сервер и Emacs на его компьютер.
- Удостовериться
byobu
установлен на JoePC. Бёбу поддерживает обаtmux
а такжеscreen
в качестве бэкэндов (я предпочитаюtmux
для более современного и многофункционального). - Я подключаюсь к JoePC с
ssh remoteuser@joepc
, Нет необходимости в X-forwarding. - Откройте emacs из терминала byobu-ssh:
TERM=xterm-256color && emacsclient --alternate-editor="" -t
, Можно сделать псевдоним для этой команды. Я рекомендую эту длинную команду, потому что она обеспечивает лучшую поддержку цвета в терминале и запуска Emacs в режиме демона.daemon mode
сделайте это быстро, чтобы закрыть и снова открыть кадры. - Теперь магия разворачивается: попросите Джо войти с тем же
remoteuser
Я вошел в систему; откройте терминал и начнитеbyobu
если это не для него. - Начните взламывать или возиться:-)
Комментарий:
- Потому что путь
byobu
Работа. Этот подход работает для любой другой программы внутри терминала byobu. - Эта настройка работает намного лучше, чем Teamviewer или любые другие решения для удаленного рабочего стола с графическим интерфейсом.
- Поскольку соединение осуществляется через ssh напрямую с удаленным сервером, оно настолько безопасно, насколько может предложить соединение ssh.