Creo que lo mejor para ejecutar mis shells en máquinas remotas en emacs es usar TRAMP (usar el ssh
comando en un shell local no funciona para mis necesidades). Sin embargo, solo sé cómo ejecutar un shell TRAMP si primero visito un archivo remoto C-x C-f
y luego lo hago M-x shell
desde ese búfer. Sin embargo, me gustaría abrir un shell en una máquina remota, usando TRAMP, antes de abrir cualquier archivo en ese host remoto, pero no puedo encontrar ninguna explicación sobre cómo hacerlo en mis búsquedas. ¿Es posible hacer eso?
6
sshpass
? ¿Prefieres ingresar tu contraseña cada vez?Respuestas:
Vagabundo entra en juego, cuando el directorio predeterminado es remoto. Por lo tanto, puede cambiarlo, como lo hace al abrir un archivo remoto (o directorio) de antemano.
Pero podrías escribir un pequeño comando como este:
Entonces puedes llamar
M-x my-shell
fuente
M-x customize-variable
explicit-shell-file-name
a\bin\bash
para evitar perder los errores de concha.my-shell
función. Se construye con éxito una conexión TRAMP de mi portátil con Windows 7 a mi computadora Mac, pero después de que salga conenv: C:/msys64/usr/bin/bash.exe: No such file or directory exit
Creo que es debido a que en mi.emacs
tramp-encoding-shell
se establece enC:/msys64/usr/bin/bash.exe
Si sólo se pude cambiar el valortramp-encoding-shell
a/bin/bash
que creo que iba a salir bien. ¿Cómo hacerlo sin problemas? Gracias.... (let ((default-directory "/ssh:user@host:")(tramp-encoding-shell "/bin/bash")) (shell)))
. No he probado esto, aunque.Utilizo dired para acceder a la máquina remota y abrir un shell allí.
Aquí está la función que uso, tomada y modificada de la configuración de emacs de Tikhon Jelviss :
Ejemplo:
fuente
Aunque no se deja demasiado claro en el manual, le
C-u M-x shell
permite especificar el nombre del búfer de shell, y lo más importante en su caso, le permite especificar elDefault directory
, que puede tomar una cadena al igual que Tramp/ssh:server:/my/path
.Una alternativa es abrir dired (
C-x d
) en lugar de un archivo real, siM-x shell
desde el directorio, el shell se abre con el contexto del directorio dired.fuente
Aquí hay otro enfoque:
M-x cd
para cambiar el directorio predeterminado del búfer al directorio remoto deseadoM-x shell
, que abrirá un shell en la máquina remotafuente