Ich versuche, von längerem Gebrauch von Tcsh auf die kürzliche Erkundung von Bash umzusteigen.
Ich habe es geschafft, alle meine Lieblingsfunktionen zu portieren, mit Ausnahme von Strg + w, das Leerzeichen und Schrägstriche als Wortgrenzen behandelt, höchstwahrscheinlich Rückwärts-Kill-Word. In Bash löscht readline jedoch bis zum ersten Leerzeichen, wobei alle Schrägstriche dazwischen gelöscht werden.
Ich habe viele verschiedene Kombinationen von \ Cw: backward-kill-word in .inputrc und .bashrc mit bind ausprobiert, aber ich kann nicht erreichen, dass es so funktioniert, wie ich es möchte.
Witzigerweise kann ich über Putty von Windows bei der Arbeit Alt + Backspace verwenden, das auch im Handbuch als Standardbindung angegeben ist, um genau das gewünschte Verhalten zu erzielen. Aber in Terminal.app auf meinen Macs zu Hause funktioniert das nicht. Gleiches gilt für jeden FreeBSD- oder Linux-Server, bei dem ich gerade von Terminal.app aus angemeldet bin.
Ich wende mich an den Superuser, um Hilfe zu erhalten.
cat
. Dient bei allen Unixenstty
zur Steuerung verschiedener tty-Parameter, einschließlich dieser Sondertasten. (So sah die 7. UNIX-Editionstty
aus.)stty
Handbuch zu sehen). Auch bash wurde ursprünglich für die beabsichtigte GNU OS und erst später auf andere Unix - Varianten portiert; Es ist viel einfacher, die Bearbeitungsfunktionen in einer einzigen Bibliothek zu verwalten als in mehreren sehr unterschiedlichen Kerneln.stty
Konfiguration der Einfachheit halber, kann jedoch durch readlines eigene Einstellungen überschrieben werden (wie in der Antwort von Matt Day beschrieben).Grawity schrieb, dass dies nicht in der
.inputrc
Datei gesteuert werden kann, aber das ist falsch.Wenn Sie sich
set bind-tty-special-chars off
in Ihrem befinden.inputrc
, können Sie das Verhalten der speziellen Terminalzeichen anpassen.Beispielsweise:
quelle
python
.Die Antwort für iTerm2 lautet: Setzen Sie Alt- Backspace(oder Opt ⌥- ⌫auf dem Mac), um Hex-Codes zu senden,
0xb1
und0x7f
führen Sie diebackward-kill-word
Aktion aus, bei der nicht-alphanumerische Zeichen als Begrenzer behandelt werden.Zur Unterscheidung ist hier das Verhalten, das ich beschreibe, in dem sich durch Drücken von Opt ⌥- ⌫einmalig Folgendes ändert:
echo "/example/filepath/with_non-alpha.characters@blah:meh
dazu:
echo "/example/filepath/with_non-alpha.characters@blah:
Und nachfolgende Pressen von Opt ⌥- ⌫:
echo "/example/filepath/with_non-alpha.characters@
echo "/example/filepath/with_non-alpha.
echo "/example/filepath/with_non-
echo "/example/filepath/with_
echo "/example/filepath/
So sieht die Einstellung in iTerm2 aus:
Speziell für Putty und Terminal ist die Antwort von grawity also großartig. Da dieser Superuser-Beitrag jedoch in peinlicher Weise nach der Anwendung der Einstellung in iTerm2 gesucht hat, scheint er am häufigsten zu erscheinen. Daher schien er dafür verantwortlich zu sein, die relevanten Informationen, die für iTerm2 gelten, als Antwort auf diese Frage anzugeben.
quelle