2010-11-10 9 views
5

Sto usando emacs-snapshot con il pacchetto ssh.el, seguendo le istruzioni del manuale ess.Come posso avviare una x-window da emacs ess durante l'esecuzione di R su un server?

Ci sono alcuni modi per aprire una sessione di R, ma questo è come lo faccio:

  1. emacs aperti
  2. Cx Cf /server:dir/file.R questo mi mette in ESS [ S]
  3. Tipo 'plot (1)'
  4. Cc Cn per eseguire
  5. emacs chiede per l'avvio di directory, e scelgo il/server: dir/
  6. Vorrei per una cifra di pop up ma ciò wont.

Anche questo non funziona quando si utilizza ess-remote in modalità shell o tramp, ma funziona se si imposta la directory di avvio sul desktop locale.

Qualche consiglio molto apprezzato. La mia soluzione attuale è di stampare il file in pdf e quindi aprire il pdf in modalità DocView, ma questo richiede qualche passo in più ed è lento.

+0

Non è una risposta, ma non funziona perché il comando ssh non include l'opzione '-X' di attivare l'inoltro X tramite la connessione. –

+0

questa è la risposta. Non ci ho pensato perché ho impostato un alias per 'server ssh', quindi devo solo digitare 'server' quindi dovrò semplicemente impostare un nuovo alias che includa -x. Grazie! –

+2

In alternativa, è possibile eseguire l'hard forwarding X11 nell'intero sistema '/ etc/ssh/ssh_config' o nel proprio locale' ~/.ssh/config' - vedere 'man ssh_config'. Inoltre, solo per essere pedante, la mia risposta includeva 'ssh -X'. –

risposta

10

lo faccio il contrario:

  • ssh -X some.server.com per connettersi a un server remoto con l'inoltro X11.

  • emacsclient -nw per riavviare una sessione di Emacs che è già in esecuzione

  • plot(cumsum(rnorm(100))) in R come al solito

Poi le finestre trama appare sulla macchina iniziale ho ssh 'ED lontano da.

Edit: Come follow-up al commento: Questo funziona per qualsiasi emacs, sia emacs o emacs-snapshot. Per molto tempo ho usato (server-start) nel ~/.emacs ma ora preferisco che (solo una volta) lauch emacs --daemon dopo il quale posso collegarmi a via emacsclient (che esiste anche come emacsclient-snapshot). Mi piace molto questo: mi dà Emacs attorno a R in una sessione persistente a cui mi connetto, disconnetto e riconnesso.

+0

Grazie per il suggerimento. Come si avvia e ferma emacs senza terminare la sessione R? Io uso emacs -nw alcuni, ma trovo molto più facile lavorare e configurare emacs-snapshot. –

+4

@David, se si avvia emacs sul server utilizzando l'opzione daemon, R rimane in esecuzione quando si chiude il client emacs. Questo perché emacs (e quindi R) funzionano come servizi. Dopo che Dirk mi ha spiegato questo. Ho fatto proprio questo per connettere ESS in esecuzione su EC2. Ho smesso di portare il mio portatile a casa ora che posso semplicemente connettere un altro client emacs alla stessa sessione dalla mia macchina domestica. –

+0

Questo sembra molto interessante e utile. Mi occuperò di questo - grazie per aver enfatizzato il suggerimento di Dirk. –

2

Ho selezionato la risposta di Dirk perché mi ha indirizzato nella giusta direzione, e soprattutto per ridurre l'energia di attivazione richiesta per visualizzare i miei dati, ma qui ho intenzione di fornire i dettagli di come ho ottenuto questo sul mio desktop .

1) Impostare coppie di chiavi SSH (in precedenza avevo fatto questo, full instructions for Ubuntu here)

mkdir ~/.ssh 
chmod 700 ~/.ssh 
ssh-keygen -t rsa 
ssh-copy-id [email protected] 

2) sono i seguenti in ~ /.ssh/config

Host any_server_nickname 
HostName hostname 
User username 
ForwardX11 yes 

3) emacs aperte su macchina locale

4) Cx Cf

5) /any_server_nickname:dir/file.R per i file in directory home o/any_server_nickname:/percorso /to/file.R

6) terreno (1)

7) Cx Cb valutare intero buffer.

alt text

+0

Nel passaggio 4 si apre emacs localmente o sul server remoto? –

+0

Non mi sono mai imbattuto in 'ssh.el' - cosa fa' ssh.el' quello standard 'tramp-mode' (che è incluso in Emacs) non funziona? –

+0

@JD Long: passaggio 4 Sto aprendo localmente emacs –

Problemi correlati