CamelCase-bewusstes Backward-Kill-Word in Readline

CamelCase-bewusstes Backward-Kill-Word in Readline

backward-kill-wordist 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-wordist 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-worddass 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 zsheine Option ist, können Sie verwendenselect-word-stylevom 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 Bwürde „uppercase“ einen (für mich ärgerlichen, Ihnen aber vielleicht bekannten) bashStil der Wortauswahl auswählen, allerdings mit Camel-Case-Behandlung von Teilwörtern, wodurch (im emacsModus) Ctrl+ W(oder Alt+ Backspace) das Obige entfernen würde Friendoder Alt+ Bzurück an den Anfang des FriendWortes gehen würde, usw.

verwandte Informationen