CamelCase-учет обратного удаления слов в readline

CamelCase-учет обратного удаления слов в readline

backward-kill-wordэто действие readline, которое удаляет предыдущее буквенно-цифровое слово. Например, применение этого действия в следующем сценарии ( указывает положение курсора)

echo hello-friend▯

результаты в

echo hello-▯

backward-kill-wordобычно привязан к <Alt-Backspace>, хотя это можно настроить в конфигурационном файле readline ~/.inputrc.

Мой вопрос: можно ли настроить backward-kill-wordтак, чтобы он удалял все до первого небуквенно-цифрового символа или первой заглавной буквы? Таким образом, его можно использовать для удаления слов CamelCase. Например, если я начну с

echo HelloFriend▯

при нажатии <Alt-Backspace>я хотел бы получить

echo Hello▯

решение1

Если zshвозможен переход на , вы можете использоватьselect-word-styleвиджет, добавленный пользователемчто позволяет вам выбрать стиль слова для всех движений и операций со словом.

Добавить в ~/.zshrc:

autoload -U select-word-style
zle -N select-word-style
bindkey '\ez' select-word-style
select-word-style default

И нажмите Alt+, Zчтобы выбрать альтернативные стили слов:

$ эхо ПриветДруг Alt+Z
Стили слов (нажмите «Ввод» для получения более подробной информации):
(b)ash (n)normal (s)hell (w)hitespace (d)efault (q)uit
(B), (N), (S), (W) как указано выше с сопоставлением подслов

Затем заглавные буквы Bвыберут (раздражающий меня, но, возможно, знакомый вам) bashстиль выделения слов, но с обработкой подслов в стиле camelcase, который (в emacsрежиме) Ctrl+ W(или Alt+ Backspace) удалит Friendуказанное выше или Alt+ Bпереместит вас обратно в начало этого Friendслова и т. д.

Связанный контент