Estou usando o shell ( M-x shell
) para conectar-se a um host remoto via SSH. Depois de lançar algumas ferramentas de linha de comando (principalmente psql , a interface da linha de comandos postgresql, mas o homem seria o mesmo por exemplo), o shell está me dando o seguinte aviso:
WARNING: terminal is not fully functional
- (press RETURN)
Até onde eu sei, isso parece um problema de pager. Alterando o pager para cat
no meu .emacs
arquivo:
(setenv "PAGER" "/bin/cat")
me ajudou a me livrar dessas mensagens, mas apenas para comandos locais (e não me importo de usar o gato como pager). Como eu tenho apenas uma instância local do Emacs, existe uma maneira de usar um pager diferente no host remoto? Ou qualquer outra maneira de se livrar das mensagens de aviso, se possível, sem mudar para ansi-term
? Se for de alguma ajuda, estou usando o GNU Emacs 24.3.1.
M-x ansi-term
para executar um terminal totalmente funcional, em vez de usarM-x shell
.Respostas:
O "problema" é que, com
M-x shell
(ouM-x eshell
btw), o Emacs usa um emulador de terminal muito limitado, para queTERM
esteja corretamente configurado comodumb
Pagers extravagantes não podem operar sob restrições tão limitadas, e é por isso que você precisa usá-lo
cat
. Agora, quando você abre uma conexão ssh desse shell,TERM
ainda é idiota, masPAGER
é redefinido para o que o outro sistema achar que você deve usar. Para corrigir isso, você precisa alterar a configuração do shell no sistema remoto para que ele use padrões decentes sempre que for acessado a partir de um terminal idiota.Algo como:
fonte