2009-08-28 13 views
36

Mi chiedo se qualcuno là fuori usi ssh attraverso la shell di emacs. Sono in grado di connettermi con la macchina remota ma non riesco ad aprire file per visualizzare/modificare con emacs usando 'emacs filename' dato che il tipo di terminale "stupido" non è abbastanza potente per eseguire emacs (normalmente emacs si aprirà nella console quando collegamento attraverso il terminale).ssh attraverso la shell di emacs?

È una cattiva idea provare a utilizzare emacs in questo modo, o è possibile con alcune correzioni? Grazie mille!

risposta

14

Un paio di idee

  • Fonte della .bashrc esplicitamente tramite . ~/.bashrc e/o riorganizzare i file di inizializzazione bash e ~/.profile in modo che questo venga caricato all'interno del shell di emacs; quindi eseguire ssh all'interno della shell di Emacs funziona bene
  • Usa lo specifico Tramp mode di emacs per accedere a file remoti tramite ssh all'interno del tuo Emacs locale - questo è utile se hai solo bisogno di aggiornare/toccare/modificare un file remoto in modo da Non è necessario aprire un emacs remoto all'interno della sessione ssh avviato dall'interno di emacs locale.
+0

Dovrò controllare questa modalità Tramp, suona alla grande. Grazie! – hatmatrix

+1

Sì, l'altro interlocutore mi ha battuto alla prima risposta di un minuto o due, ma il vagabondo è quello che cerchi se vuoi solo modificare rapidamente un file o due altri host. Lo copia semplicemente sul tuo computer e invia gli aggiornamenti indietro tramite scp, senza che tu debba farlo esplicitamente. Questo può essere molto più leggero di una sessione X11 (che ha giustamente indicato come un'altra opzione). Inoltre, il vagabondo è molto il seguito del vecchio ftp che ha menzionato. –

+0

Sì, ho notato che il vagabondo supera l'ange ftp (secondo altri thread). E le mie connessioni X11 sembrano essere terribilmente lente, quindi il vagabondo è decisamente migliore per la mia situazione. Grazie. – hatmatrix

6

È possibile utilizzare ssh x forwarding per eseguire un emac remoto e visualizzarlo sul computer locale.
Io uso Xming X Server quando sono su Windows

Si potrebbe montare the remote filesystem with ssh e aprire il locale come normalmente.
Per questo io uso ExpanDrive (app commerciale) quando su Windows

Si potrebbe utilizzare emacs Ange ftp over ssh può aprire i file remoti su FTP e SSH.
Io uso questo con cygwin quando su Windows

+0

grazie! -molto utile – hatmatrix

16

Emacs ha una modalità di termine che è un emulatore di terminale completo che è possibile eseguire emacs in emacs. Tutto ciò che si esegue sul terminale verrà eseguito in modalità-termine

Anche emacs dispone della modalità di spostamento che può aprire i file tramite ssh.


/scp:[email protected]#port:/ 

trasferirà i file avanti e indietro. li modifichi appena modifichi i file locali.

Non è necessario l'inoltro x11 o altri shenanigans.

+0

Grazie - sembrano esserci molte opzioni: shell, eshell e term ... quale preferisci? Ho cercato un po 'su google e sembrava che la shell fosse la più usata ... – hatmatrix

+0

shell ed eshell nonostante i loro nomi non fossero shell reali. hanno appena letto e scritto in un processo. ma il termine d'altra parte è un emulatore di terminale proprio come terminale su osx o xterm su linux. puoi persino eseguire roba in ncurses che non puoi fare nella shell. usa il termine se vuoi vivere in emacs e usa shell se vuoi eseguire comandi rapidi e usare ancora un terminale (xterm ecc.) –

+2

Ah, sì - sembra esserci qualche accenno sul termine che non ha la documentazione che shell e eshell fa ma sembra gestire la mia sessione ssh meglio della shell ... ma emacs in emacs? "emacs: Terminal tipo eterm-color non è definito." Dice qualcosa sul dover cambiare la variabile TERM, ma se ho letto su di esso più suppongo che possa essere fatto? Spaventoso! – hatmatrix

38

Potrebbe non essere evidente a prima vista, ma eshell, il guscio che è implementata in Emacs Lisp funziona bene con tramp:

Welcome to the Emacs shell 

~ $ uname -a 
Linux local-machine 2.6.30-1-686 #1 SMP Thu Jul 30 14:45:30 UTC 2009 i686 GNU/Linux 
~ $ cd /ssh:[email protected]:~ 
/ssh:[email protected]:/home/user $ uname -a 
Linux remote-machine 2.6.18-6-686 #1 SMP Thu Aug 20 21:56:59 UTC 2009 i686 GNU/Linux 
/ssh:[email protected]:/home/user $ 
+1

Wow, sembra davvero fantastico. Emacs ha due troppe opzioni di shell! – hatmatrix

+2

@hillu Sono solo ... bloccato sulla mia sedia! In questo momento stavo usando il vagabondo per accedere ai file remoti solo per un'ora o giù di lì. Grazie al tuo post ho lanciato eshell che mi ha messo direttamente "dentro" la macchina remota. E tu sai cosa? si può anche copiare file da una macchina all'altra con la stessa facilità con cui si richiama un comando '' 'cp'''. ECCEZIONALE!! –

+2

e quindi possiamo trovare e modificare i file normalmente! 'Cx Cf' funziona, e alcuni elisp come' find-file' too :) http://wikemacs.org/wiki/Eshell#Built-In_Commands – Ehvince

1

ho lottato con Xming, che funziona, ma come il mio la connessione internet non è la più veloce, devo aspettare ancora 30 secondi prima che emacs o qualsiasi app X vengano visualizzati. Anche lo scorrimento di un buffer dopo l'apertura si bloccherà di volta in volta => Molto fastidioso

Provare No machine (server/client nxserver-freenx). Ci sono server in edizione gratuita, la soluzione migliore e più veloce quando si desidera connettersi a una macchina Linux e usare xterm ed emacs su X. Si presenta immediatamente e risponde così velocemente.Anche con una connessione molto lenta :-) I clienti sono disponibile per Windows, Mac OS, Linux

+0

interessante - si verificherà ad un certo punto, grazie ~ – hatmatrix

Problemi correlati