2010-07-14 9 views
5

This page dal manuale Emacs descrive una funzione chiamata make-frame-on-display che consente di accedere a una sessione Emacs remota. Il mio interesse per questa funzione è di usarlo per condividere i buffer per la programmazione delle coppie in remoto con un collega.Come usare make-frame-on-display e multi-tty in Emacs?

Dalla pagina:

È anche possibile utilizzare questa funzione per lasciare due o più utenti tipo contemporaneamente sui due display, all'interno dello stesso lavoro Emacs. In pratica, tuttavia, i diversi utenti possono facilmente interferire con le modifiche degli altri se non stanno attenti.

In che modo si configura esattamente? Di cosa ho bisogno? Di cosa ha bisogno il mio partner? I dettagli non sono indicati, ma non ne so abbastanza su Emacs per sapere da dove iniziare.

C'è un altro modo per ottenere una sessione Emacs condivisa? This page da Emacs Wiki fa riferimento a qualcosa chiamato multi-tty. Le domande che ho posto sopra valgono anche per questo.

Quale è meglio: multi-tty o make-frame-on-display?

risposta

5

Non ho provato multi-tty, ma il make-frame-on-display è piuttosto semplice. Digitate M-x make-frame-on-display, premete return, quindi digitate il display sul quale mostrare il frame. Ad esempio:

Ho il mio host locale (thor) che esegue emacs e voglio far apparire un frame su una macchina chiamata zeus, sul suo solo display X (0.0). Quindi, digitare M-x make-frame-on-display <ret> zeus: 0,0 <ret>

Tutto impostato!

Potrebbe essere necessario configurare il server X della macchina remota per accettare connessioni in entrata dalla macchina con "xhost + thor". Potrebbe anche essere necessario configurare il firewall per consentire le connessioni in entrata sulla porta X11, che è 6000. Ricorda che l'inoltro X non è crittografato, quindi se non stai lavorando con qualcuno sulla tua LAN potresti voler passare attraverso un VPN per mantenere le cose private.

Modificato per fissare staffe.

+0

Si digita 'M-x make-frame-on-displayzeus: 0.0' in quale macchina? Devi prima tu SSH per primo? – hekevintran

+0

A partire da una finestra di emacs in esecuzione su thor, si digita M-x make-frame-on-display zeus: 0,0 – nmichaels

3

Si può anche avere la persona di tipo zeus ssh -X thor emacsclient -c.

+1

Ho provato su Internet, ed è lento come melassa in inverno. D'altra parte, lo schermo è veloce come un fulmine. –

3

Hai mai pensato di utilizzare GNU screen su un account condiviso per la programmazione di coppie? È facile farlo funzionare e puoi scegliere qualsiasi editor basato su console tu e il tuo partner (emacs, vim, joe, nano, zile, ...). Tuttavia, questo naturalmente non funziona con editor che non possono essere eseguiti all'interno di un terminale.

Per configurarlo, creare un account condiviso su un computer che esegue ssh. Quindi, accedere a quell'account. Uno dei partner inizia schermo con

screen 

e l'altro si collega ad esso con

screen -x 

dove -x significa "allegare ad una sessione di schermo non bifamiliare". Gli utenti possono staccarsi dalle loro sessioni con "C-a d".

0

vecchia questione, nuova soluzione per chiunque atterrato su questa pagina da 2016.

ho creato questo in Ubuntu 14.04 e funziona perfettamente:

Supponiamo che io voglio co-edit o demo po 'di fresco roba su emacs con il mio collega Joe dall'altra parte del mondo.

  1. Verificare che un server ssh con emacs sia installato su entrambe le estremità. Ovvero, MyPC o JoePC devono essere un server SSH e avere installato Emacs. D'ora in poi, diciamo che ho chiesto a Joe di installare il server SSH e Emacs sul suo computer.
  2. Assicurarsi che byobu sia installato su JoePC. Byobu supporta sia tmux sia screen come backend (preferisco lo tmux per un servizio più moderno e ricco di funzionalità).
  3. Mi collego a JoePC con ssh [email protected]. Non è necessario l'inoltro X.
  4. Apre emacs dal terminale byobu-ssh: TERM=xterm-256color && emacsclient --alternate-editor="" -t. Si può fare un alias per questo comando. Raccomando questo comando lungo perché consente sia un migliore supporto dei colori nel terminale che l'esecuzione di Emacs in modalità daemon. Lo daemon mode lo rende veloce per chiudere e riaprire i frame.
  5. Ora la magia si spiega: chiedi a Joe di accedere con lo stesso remoteuser Accedo; aprire il terminale e avviare byobu se non ha per lui.
  6. Inizio hacking o armeggiare :-)

Commento:

  • Perché il modo byobu lavoro. Questo approccio funziona per qualsiasi altro programma all'interno del terminale byobu.
  • Questa configurazione funziona molto meglio di Teamviewer o di qualsiasi altra soluzione di desktop remoto della GUI.
  • Poiché la connessione è diretta tramite ssh al server remoto, è sicura come può offrire la conessione ssh.