Z.B. Wenn Sie nette Dinge wie Perl- oder Ruby-REPLs ausführen, wird die Code- / Befehlsvervollständigung über GNU Readline angezeigt. Ich möchte beim Eingeben / Beenden eines solchen Programms eine elisp / env-Variable festlegen, um anzuzeigen, dass ich shell-mode
die TAB-Taste an diese Programme übergeben möchte .
Beachten Sie, dass dies C-q TAB
auch nicht funktioniert, daher denke ich, dass Readline es auch ignoriert, weil TERM=dumb
, aber es auf z. vt100 macht auch nicht den Trick, also könnte es sogar schauen EMACS=t
.
shell-mode
Mark Aufflick
quelle
quelle
RET
und empfängt dann die Ausgabe, bis eine Eingabeaufforderung erkannt wird. Die Fertigstellung muss daher auf seiner Seite gelöst werden.Antworten:
M-x shell
arbeitet zeilenweise. Beim Drücken derRet
Taste wird eine Eingabezeile an den externen Shell-Prozess übergeben .M-x term
Übergibt jeden Tastendruck an den externen Shell-Prozess, mit Ausnahme vonC-c
und ich denkeEsc
. Wenn Sie drückenTab
, wird es vom externen Shell-Prozess angezeigt und interpretiert.quelle
Wie @ user20119 hervorhob,
M-x term
könnte dies eine gute Option sein: Es unterstützt auch das dynamische Umschalten in den "Leitungsmodus", der dem ähnelt, mit dem Sie arbeitenM-x shell
.M-x eshell
versucht auch, Ihnen eine Mischung aus den beiden Verhaltensweisen zu geben.Ich werde auch darauf hinweisen, dass
C-q TAB
dies nicht funktioniert hat, da lediglich ein TAB-Zeichen in den Puffer eingefügt werden muss (anstatt ein TAB an den Unterprozess zu senden). Darüber hinaus würde es nicht ausreichen, nur ein TAB-Zeichen an den zugrunde liegenden Prozess zu senden, da der Text in der aktuellen Zeile noch nicht an den Prozess gesendet wurde. Daher benötigen Sie möglicherweise Folgendes:und in der Tat müssen Sie wahrscheinlich auch überzeugen
M-x shell
, eine andere Einstellung für zu verwenden$TERM
.quelle