2009-08-28 14 views
36

Me pregunto si alguien utiliza ssh a través del shell emacs. Puedo conectarme con la máquina remota pero no puedo abrir archivos para ver/editar con emacs usando 'emacs filename' ya que el 'tipo de terminal' tonto 'no es lo suficientemente potente para ejecutar emacs' (normalmente los emacs se abrirían dentro de la consola cuando conectando a través de la terminal).ssh a través de shell emacs?

¿Es esta una mala idea tratar de usar emacs de tal manera, o es posible con algunas correcciones? ¡Muchas gracias!

Respuesta

14

Un par de ideas

  • Fuente del Bashrc explícitamente a través de . ~/.bashrc y/o reorganizar sus archivos init bash y ~/.profile para que esta se carga en el interior del emacs shell; a continuación, ejecutar ssh dentro de la cáscara de Emacs funciona bien
  • Utilice los emacs-específicos Tramp mode para acceder a archivos remotos a través de ssh dentro de sus locales Emacs - esto es útil si sólo tiene que actualizar/touch/editar un archivo remoto de modo que lo haría No es necesario abrir un emacs remoto dentro de la sesión ssh iniciada desde el interior de sus emacs locales.
+0

Tendré que revisar este modo de Tramp, suena genial. ¡Gracias! – hatmatrix

+1

Sí, el otro interlocutor me golpeó en la primera respuesta en un minuto o dos, pero vagabundo es lo que buscas si solo quieres editar rápidamente un archivo u otros dos hosts. Simplemente copia a su máquina y envía versiones de actualizaciones a través de scp, sin que tenga que hacerlo explícitamente. Eso puede ser mucho más leightweight que exportar una sesión X11 (que correctamente señaló como otra opción). Además, el vagabundo es en gran medida el seguimiento del viejo ftp ange que mencionó. –

+0

Sí, noté que el vagabundo reemplaza a ange ftp (según otros hilos). Y mis conexiones X11 parecen ser terriblemente lentas así que el vagabundo es definitivamente mejor para mi situación. Gracias. – hatmatrix

6

Puede usar ssh x forwarding para ejecutar un emacs remoto y mostrarlo en la computadora local.
utilizo Xming X Server cuando estoy en Windows

Se podría montar the remote filesystem with ssh y abra la localidad como normalmente.
Para ello utilizo ExpanDrive (aplicación comercial) cuando en Windows

Se puede usar emacs Ange ftp over ssh puede abrir archivos remotos a través de ftp y ssh.
utilizo esto con cygwin cuando en Windows

+0

¡gracias! -muy útil – hatmatrix

16

Emacs tiene modo de término que es un emulador de terminal completo que puede ejecutar emacs en emacs. Todo lo que ejecute en el terminal se ejecutará en el modo de términos

También emacs tiene el modo vagabundo que puede abrir archivos a través de ssh.


/scp:[email protected]#port:/ 

Transfiere archivos hacia adelante y hacia atrás. simplemente edítelos como lo haría con los archivos locales.

No hay necesidad de reenvío x11 u otras travesuras.

+0

Gracias - parece haber muchas opciones: shell, eshell y term ... ¿cuál prefieres? Busqué en Google un poco y me pareció que 'shell' fue el más utilizado ... – hatmatrix

+0

shell y eshell a pesar de que sus nombres no son conchas reales. solo leen y escriben en un proceso. pero el término por otro lado es un emulador de terminal al igual que el terminal en osx o xterm en Linux. incluso puedes ejecutar ncurses cosas que no puedes hacer con shell. use term si quiere vivir en emacs y use shell si desea ejecutar comandos rápidos y aún usar un terminal (xterm, etc.) –

+2

Ah, sí, parece que hay algunas quejas sobre el término que no tiene la documentación de que el shell y Eshell lo hace, pero parece que maneja mi sesión ssh mejor que shell ... pero emacs dentro de emacs? "emacs: el tipo de terminal eterm-color no está definido". dice algo acerca de tener que cambiar la variable TERM, pero si leo más sobre eso, ¿supongo que se puede hacer? ¡De miedo! – hatmatrix

38

Puede que no sea obvia a primera vista, pero eshell, la cáscara que es implementado en Emacs Lisp funciona bien 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

Guau, eso se ve bastante impresionante. ¡Emacs tiene dos demasiadas opciones de shell! – hatmatrix

+2

@hillu ¡Estoy solo ... pegado a mi silla! En este momento, estaba usando tramp para acceder a archivos remotos por solo una hora más o menos. Gracias a su publicación, he lanzado Eshell que me colocó directamente "en" la máquina remota. ¿Y sabes qué? incluso puede copiar archivos de una máquina a la otra tan fácilmente como invocar un comando '' 'cp'''. ¡¡INCREÍBLE!! –

+2

y luego podemos encontrar y editar archivos normalmente! 'Cx Cf' funciona, y algunos elisp como' find-file' también :) http://wikemacs.org/wiki/Eshell#Built-In_Commands – Ehvince

1

he estado luchando con Xming, que funciona, pero como mi La conexión a Internet no es la más rápida. Tengo que esperar más de 30 segundos antes de que aparezcan emacs o cualquier aplicación X. También desplazarse a través de un búfer después de que se haya abierto se congelará de vez en cuando => Muy molesto

Pruebe No machine (servidor nxserver-freenx/cliente). Hay servidores de edición gratuita, la mejor y la más rápida solución cuando quieres conectarte a una caja Linux y usar xterm y emacs en vez de X. Se muestra inmediatamente y responde tan rápido.Incluso con una conexión muy lento :-) Los clientes están disponibles para Windows, Mac OS, Linux

+0

interesante - echará un vistazo en algún momento, gracias ~ – hatmatrix

Cuestiones relacionadas