Ich verwende die shell ( M-x shell
), um über SSH eine Verbindung zu einem Remote-Host herzustellen. Nach dem Starten einiger Befehlszeilentools (meistens psql , die Postgresql-Befehlszeilenschnittstelle, aber man wäre zum Beispiel derselbe) gibt die Shell die folgende Warnung aus:
WARNING: terminal is not fully functional
- (press RETURN)
Soweit ich weiß, sieht dies wie ein Pager-Problem aus. Ändern des Pagers in cat
in meiner .emacs
Datei:
(setenv "PAGER" "/bin/cat")
hat mir geholfen, diese Nachrichten loszuwerden, aber nur für lokale Befehle (und es macht mir nichts aus, cat als Pager zu verwenden). Gibt es eine Möglichkeit, einen anderen Pager auf dem Remote-Host zu verwenden, da ich nur eine lokale Instanz von Emacs habe? Oder eine andere Möglichkeit, die Warnmeldungen zu entfernen, wenn möglich, ohne zu wechseln ansi-term
? Wenn es hilfreich ist, verwende ich GNU Emacs 24.3.1.
M-x ansi-term
ein voll funktionsfähiges Terminal ausführen, anstatt es zu verwendenM-x shell
.Antworten:
Das "Problem" ist, dass Emacs mit
M-x shell
(oderM-x eshell
übrigens) einen sehr begrenzten Terminalemulator verwendet, so dass dieserTERM
korrekt eingestellt istdumb
Ausgefallene Pager können unter solchen Einschränkungen nicht betrieben werden, weshalb Sie sie
cat
stattdessen verwenden müssen. Wenn Sie jetzt eine SSH-Verbindung von dieser Shell aus öffnen,TERM
ist dies immer noch dumm, wird jedoch aufPAGER
das zurückgesetzt, was das andere System für erforderlich hält. Um dies zu beheben, müssen Sie Ihre Shell-Konfiguration auf dem Remote-System so ändern, dass bei jedem Zugriff über ein dummes Terminal angemessene Standardeinstellungen verwendet werden.Etwas wie:
quelle