2010-07-14 7 views
5

This page du manuel Emacs décrit une fonction appelée make-frame-on-display qui vous permet d'accéder à une session Emacs à distance. Mon intérêt pour cette fonction est de l'utiliser pour partager des tampons pour la programmation de paires à distance avec un collègue.Comment utiliser make-frame-on-display et multi-tty dans Emacs?

De la page:

Il est même possible d'utiliser cette fonction pour laisser deux ou plusieurs utilisateurs tapent simultanément sur les deux écrans, dans le même travail Emacs. En pratique, cependant, les différents utilisateurs peuvent facilement interférer avec les modifications des uns et des autres s'ils ne font pas attention.

Comment exactement puis-je configurer cela? De quoi ai-je besoin? De quoi mon partenaire a-t-il besoin? Les détails ne sont pas indiqués, mais je ne connais pas assez Emacs pour savoir par où commencer.

Existe-t-il un autre moyen d'obtenir une session Emacs partagée? This page du Wiki Emacs fait référence à quelque chose appelé multi-tty. Les questions que j'ai posées ci-dessus s'appliquent également à cela.

Quel est le meilleur: multi-tty ou make-frame-on-display?

Répondre

5

Je n'ai pas essayé le multi-tty, mais make-frame-on-display est assez simple. Vous tapez M-x make-frame-on-display, appuyez sur retour, puis tapez l'affichage sur lequel vous voulez que le cadre apparaisse. Par exemple:

Mon hôte local (thor) exécute emacs et je souhaite créer un cadre sur une machine appelée zeus, sur son seul affichage X (0.0). Donc, je voudrais taper M-x faire-cadre-sur-affichage <ret> zeus: 0.0 <ret>

Tout ensemble!

Vous devrez peut-être configurer le serveur X de la machine distante pour accepter les connexions entrantes de votre machine avec "xhost + thor". Vous devrez peut-être également configurer son pare-feu pour autoriser les connexions entrantes sur le port X11, soit 6000. Gardez à l'esprit que le transfert X n'est pas crypté, donc si vous ne travaillez pas avec quelqu'un sur votre LAN, vous pouvez passer par un VPN afin de garder les choses privées.

Édité pour fixer les crochets.

+0

Vous tapez 'M-x make-frame-on-displayzeus: 0.0' dans quelle machine? Dois-tu SSH en thor d'abord? – hekevintran

+0

A partir d'une fenêtre emacs fonctionnant sur thor, vous tapez M-x make-frame-on-display zeus: 0.0 – nmichaels

3

Vous pouvez également avoir la personne chez zeus de type ssh -X thor emacsclient -c.

+1

Je l'ai essayé sur internet, et il est lent comme de la mélasse en hiver. D'un autre côté, l'écran est rapide comme l'éclair. –

3

Avez-vous déjà envisagé d'utiliser GNU screen sur un compte partagé pour la programmation de paires? Il est facile de le faire fonctionner et vous pouvez choisir n'importe quel éditeur basé sur une console comme vous et votre partenaire (emacs, vim, joe, nano, zile, ...). Cependant, cela ne fonctionne bien sûr pas avec les éditeurs qui ne peuvent pas fonctionner dans un terminal. Pour le configurer, créez un compte partagé sur un ordinateur exécutant SSH. Puis les deux se connectent à ce compte. L'un des partenaires commence avec l'écran

screen 

et l'autre se connecte à avec

screen -x 

où -x signifie « attacher à une session écran non détaché ». Les utilisateurs peuvent se détacher de leurs sessions w/"C-a d".

0

question ancienne, la nouvelle solution pour quiconque a atterri sur cette page de l'année 2016.

Je mets cela dans Ubuntu 14.04 et il fonctionne parfaitement:

Supposons que je veuille co-éditer ou démo certains frais des trucs sur emacs avec mon collègue Joe à l'autre bout du monde.

  1. Assurez-vous qu'un serveur ssh avec emacs est installé à chaque extrémité. Autrement dit, MyPC ou JoePC doit être un serveur SSH et Emacs doit être installé. A partir de maintenant, disons que j'ai demandé à Joe d'installer le serveur SSH et Emacs sur son ordinateur.
  2. Assurez-vous que byobu est installé sur JoePC. Byobu prend en charge à la fois tmux et screen en tant que backends (je préfère tmux pour plus de fonctionnalités et de fonctionnalités).
  3. Je me connecte à JoePC avec ssh [email protected]. Pas besoin de X-forwarding.
  4. Ouvrez emacs à partir du terminal byobu-ssh: TERM=xterm-256color && emacsclient --alternate-editor="" -t. On peut faire un alias pour cette commande. Je recommande cette commande longue car elle permet à la fois une meilleure prise en charge des couleurs dans le terminal et l'exécution d'Emacs en mode démon. Les daemon mode le rendent rapide pour fermer et rouvrir des cadres.
  5. Maintenant, la magie se déroule: Demander à Joe de se connecter avec le même remoteuser Je me connecte; ouvrir le terminal et commencer byobu si ce n'est pas pour lui.
  6. Démarrer le piratage ou tâtonner :-)

Commentaire:

  • Parce que le travail de façon byobu. Cette approche fonctionne pour tout autre programme à l'intérieur du terminal byobu.
  • Cette configuration fonctionne beaucoup mieux que Teamviewer ou toute autre solution de bureau à distance GUI.
  • Étant donné que la connexion est directement via ssh vers le serveur distant, elle est aussi sécurisée que la connexion ssh peut offrir.