Ich möchte die Trennzeichen ändern, die bash (oder readline) benutzt, um Wörter zu trennen. Speziell möchte ich '-'
nicht Wörter abgrenzen, so dass wenn ich den Text
und ich drücke Alt-Backspace
es löscht den gesamten some-file
Text und nicht nur bis zum '-'
char. Dies führt auch dazu, dass lange Flags wie --group-directories-first
schneller und einfacher gelöscht werden und nur ein Tastendruck erforderlich ist.
Ich glaube, dass sich zsh so verhält und ich möchte, dass bash sich genauso verhält.
Beachten Sie, dass die Bash-Key-Zuordnung für Strg-W nicht funktionieren wird, wenn Sie die Strg-W-Einstellung für den Sty-Wert zugewiesen haben. Wenn Sie "stty -a" ausführen und Sie "werase = ^ W" sehen, wird das Vorrang haben und die tty-Idee, was eine Wortgrenze ist, verwenden. Die Idee des tty für eine Wortgrenze ist normalerweise whitespace, während bashs rückwärts-kill-word-Funktion auch - und /.
enthältWenn Sie möchten, dass Alt-Backspace dasselbe tut wie die Einstellung "abtragen", können Sie Folgendes tun: Binde '"\ M- \ C-h": Unix-Wort-Rubout' bind '"\ M- \ C-?": unix-word-rubout'
Auch, wenn Sie eigentlich ctrl-W machen wollten, was Alt-Backspace macht, würden Sie tun: sty werase undef # Wenn Sie dies nicht tun, ignoriert bash den Befehl follow bind bind '"\ C-w": rückwärts-kill-word'
Das könnte nützlich sein: Strg-r startet eine umgekehrte i-Suche (für Geschichte und die aktuelle Zeile), also kannst du einfach auf Leerzeichen und Escape drücken und es ist wieder da, wo du es haben willst, oder Strg-r wieder ( nachdem du das erste Feld getroffen hast) wenn du noch einmal zurück gehen willst. Dann können Sie optional den Rest der Zeile beenden.
Besonders nützlich, wenn Sie mit langen Pfadargumenten arbeiten (z. B. in cp oder diff) und das Ende des ersten Arguments ändern müssen.
Ich habe versucht, \ M-b dazu zu bringen, aber es stoppt bei Schrägstrichen.