"Terminal não está totalmente funcional" sobre ssh em um buffer * shell *

8

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 catno meu .emacsarquivo:

(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.

KookieMonster
fonte
4
Como alternativa, use M-x ansi-termpara executar um terminal totalmente funcional, em vez de usar M-x shell.
phils

Respostas:

9

O "problema" é que, com M-x shell(ou M-x eshellbtw), o Emacs usa um emulador de terminal muito limitado, para que TERMesteja 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, TERMainda é idiota, mas PAGERé 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:

[ "$TERM" = "dumb" ] && export PAGER=/bin/cat
Sigma
fonte
Obrigado pela resposta. Como eu não deveria modificar as configurações do servidor remoto, eu poderia tentar enviar variáveis ​​env com minha cadeia de conexão ssh ... ou apenas me acostumar com o termo ansi!
KookieMonster 13/10
existe um pager que exibirá cores?
erjoalgo
@erjoalgo Para cores, você pode usar ccat em vez de gato. O resultado é realmente doce :)
prosoitos 16/03