Estoy usando el shell ( M-x shell
) para conectarme a un host remoto a través de SSH. Después de lanzar algunas herramientas de línea de comando (principalmente psql , la interfaz de línea de comando postgresql, pero man sería el mismo, por ejemplo), el shell me está dando la siguiente advertencia:
WARNING: terminal is not fully functional
- (press RETURN)
Hasta donde yo sé, esto parece un problema de buscapersonas. Cambiar el localizador a cat
mi .emacs
archivo:
(setenv "PAGER" "/bin/cat")
me ayudó a deshacerme de esos mensajes, pero solo para los comandos locales (y no me importa usar cat como buscapersonas). Como solo tengo una instancia local de Emacs, ¿hay alguna manera de usar un localizador diferente en el host remoto? ¿O alguna otra forma de deshacerse de los mensajes de advertencia, si es posible sin cambiar a ansi-term
? Si es de alguna ayuda, estoy usando GNU Emacs 24.3.1.
M-x ansi-term
para ejecutar un terminal completamente funcional, en lugar de usarM-x shell
.Respuestas:
El "problema" es que con
M-x shell
(o porM-x eshell
cierto), Emacs usa un emulador de terminal muy limitado, por lo queTERM
está configurado correctamente endumb
Los buscapersonas de lujo no pueden operar bajo restricciones tan limitadas, por lo que debes usarlos
cat
. Ahora, cuando abre una conexión ssh desde ese shell,TERM
todavía es tonto, peroPAGER
se restablece a lo que el otro sistema cree que debería usar. Para solucionar esto, debe modificar su configuración de shell en el sistema remoto para que use valores predeterminados decentes cada vez que se acceda desde un terminal tonto.Algo como:
fuente