
backward-kill-word
ist eine Readline-Aktion, die das vorherige alphanumerische Wort löscht. Die Anwendung dieser Aktion im folgenden Szenario ( ▯
zeigt die Position des Cursors an)
echo hello-friend▯
führt zu
echo hello-▯
backward-kill-word
ist normalerweise an gebunden <Alt-Backspace>
, dies kann jedoch in der Konfigurationsdatei von Readline angepasst werden ~/.inputrc
.
Meine Frage ist: Ist es möglich, es so anzupassen, backward-kill-word
dass es bis zum ersten nicht-alphanumerischen Zeichen oder dem ersten Großbuchstaben löscht? Auf diese Weise könnte es verwendet werden, um CamelCase-Wörter zu löschen. Wenn ich beispielsweise mit beginne
echo HelloFriend▯
Durch Drücken <Alt-Backspace>
von möchte ich erhalten
echo Hello▯
Antwort1
Wenn der Wechsel zu zsh
eine Option ist, können Sie verwendenselect-word-style
vom Benutzer beigesteuertes WidgetDamit können Sie den Wortstil für alle Wortbewegungen und -operationen auswählen.
Hinzufügen zu ~/.zshrc
:
autoload -U select-word-style
zle -N select-word-style
bindkey '\ez' select-word-style
select-word-style default
Und drücken Sie Alt+ Z, um alternative Wortstile auszuwählen:
$ echo HalloFreund Alt+Z Wortstile (drücken Sie die Eingabetaste, um weitere Details anzuzeigen): (b)ash (n)ormal (s)hell (w)itespace (d)efault (q)uit (B), (N), (S), (W) wie oben mit Teilwortübereinstimmung
Dann B
würde „uppercase“ einen (für mich ärgerlichen, Ihnen aber vielleicht bekannten) bash
Stil der Wortauswahl auswählen, allerdings mit Camel-Case-Behandlung von Teilwörtern, wodurch (im emacs
Modus) Ctrl+ W(oder Alt+ Backspace) das Obige entfernen würde Friend
oder Alt+ Bzurück an den Anfang des Friend
Wortes gehen würde, usw.