Terminal Bash bind anpassen

Hallo,


ich möchte dei default binds der bash anpassen.


.bash_profile:

case "$-" in

*i*) # interactive shell

bind '"\C-p": history-search-backward'

bind '"\C-n": history-search-forward'

esac


history-search geht auch soweit.


Nun möchte ich kill-word und kill-word backword-kill-word, so heißt es unter Linux, ergänzen.

backword-kill-word scheint unter ctrl-w vorhanden zu sein, heißt aber anders:

carsten@Mac ~ $ bind -p | grep C-w
"\C-w": unix-word-rubout


carsten@Mac ~ $ bind -p | grep C-o
carsten@Mac ~ $ 
carsten@Mac ~ $ bind '"\C-o": unix-word-rubout' 
carsten@Mac ~ $ 
carsten@Mac ~ $ bind -p | grep C-o
"\C-o": unix-word-rubout


ctrl-w funktioniert weiterhin, ctrl-o bewirkt nix, kein beep, kein garnix.

?


Tahoe 26.5.2

carsten@Mac ~ $ bash --version
GNU bash, version 3.2.57(1)-release (arm64-apple-darwin25)
Copyright (C) 2007 Free Software Foundation, Inc.


Gruß

Carsten


Gepostet am 13. Aug. 2026 10:35

Antworten
Frage gekennzeichnet als Höchstrangige Antwort

Gepostet am 13. Aug. 2026 11:50

Dass Ctrl-o trotz korrekter Zuweisung in Bash absolut gar nichts bewirkt, liegt nicht an deiner Konfiguration, sondern am macOS-Terminal-Treiber (TTY).


Unter macOS ist die Tastenkombination ctrl-o standardmäßig als sogenanntes discard- oder flush-Signal reserviert. Terminal verwirft es, noch bevor es überhaupt bei deiner Bash-Schnittstelle (Readline) ankommen kann.


Führe vorab


stty discard undef


in Terminal aus, das löst discard von crtl-o.


Danach sollte es wie gewünscht funktionieren.



2 Antworten
Frage gekennzeichnet als Höchstrangige Antwort

13. Aug. 2026 11:50 als Antwort auf MrYoda

Dass Ctrl-o trotz korrekter Zuweisung in Bash absolut gar nichts bewirkt, liegt nicht an deiner Konfiguration, sondern am macOS-Terminal-Treiber (TTY).


Unter macOS ist die Tastenkombination ctrl-o standardmäßig als sogenanntes discard- oder flush-Signal reserviert. Terminal verwirft es, noch bevor es überhaupt bei deiner Bash-Schnittstelle (Readline) ankommen kann.


Führe vorab


stty discard undef


in Terminal aus, das löst discard von crtl-o.


Danach sollte es wie gewünscht funktionieren.



13. Aug. 2026 10:54 als Antwort auf MrYoda

Hallo Carsten,


dein bind sieht zunächst nicht so aus, als würde Bash die Zuordnung grundsätzlich ablehnen. Dass

"\C-o": unix-word-rubout


anschließend bei bind -p auftaucht, zeigt zumindest, dass Readline das Binding übernommen hat. unix-word-rubout ist dabei eine eigene Readline-Funktion zum Löschen des vorhergehenden Wortes; kill-word und backward-kill-word sind davon getrennte Funktionen.


Der interessantere Punkt ist hier Ctrl-O selbst. Auf Unix-/BSD-Terminals kann dieses Steuerzeichen bereits auf Ebene der Terminal-Schnittstelle mit einer Sonderfunktion belegt sein (DISCARD). In diesem Fall kann es passieren, dass die Tastenkombination Readline gar nicht so erreicht, wie es der Eintrag in bind -p vermuten lässt. Das würde auch dazu passen, dass weder die gewünschte Aktion noch ein Beep erfolgt.


Ich würde deshalb zunächst davon abraten, die TTY-Einstellungen mit weiteren stty-Befehlen zu verändern. Solche Änderungen können zusätzliche Nebenwirkungen auf das Terminalverhalten haben und die Fehlersuche eher erschweren.


Wenn es dir hauptsächlich um die gewünschte Editierfunktion geht, würde ich daher zunächst die bereits vorgesehenen Tastenkombinationen verwenden:


• Ctrl-W: rückwärts bis zum Wortanfang löschen

• Option-D: vorwärts bis zum Wortende löschen, sofern in Terminal „Option als Meta-Taste verwenden“ aktiviert ist


Damit deckst du funktional bereits weitgehend das gewünschte Verhalten ab.


Falls du dagegen gezielt herausfinden möchtest, warum ausgerechnet Ctrl-O nicht bei Readline ankommt, würde ich das zunächst als Tastatur-/Terminalfrage eingrenzen, bevor du die TTY-Konfiguration veränderst. Unter Terminal > Einstellungen > Profile > Tastatur kannst du außerdem prüfen, ob dort eine benutzerdefinierte Tastenbelegung für die Kombination hinterlegt ist.


Ich würde daher vorerst bei Ctrl-W beziehungsweise Option-D bleiben. Das ist der deutlich unkompliziertere Weg, bevor man tiefer in die Terminal-Steuerzeichen eingreift.


Zum Nachlesen eignen sich wie immer das Apple-Benutzerhandbuch zu den Tastaturkurzbefehlen in Terminal auf dem Mac sowie die GNU-Bash-/Readline-Dokumentation zu den entsprechenden Readline-Befehlen.


Beste Grüße & viel Erfolg 🌺

Terminal Bash bind anpassen

Willkommen in der Apple Support Community
Ein Forum, in dem Apple-Kunden sich gegenseitig mit ihren Produkten helfen. Melde dich mit deinem Apple Account an, um Mitglied zu werden.