
backward-kill-word
é uma ação readline que exclui a palavra alfanumérica anterior. Por exemplo, aplicando esta ação no seguinte cenário ( ▯
indica a posição do cursor)
echo hello-friend▯
resulta em
echo hello-▯
backward-kill-word
normalmente está vinculado a <Alt-Backspace>
, embora isso possa ser personalizado no arquivo de configuração do readline ~/.inputrc
.
Minha pergunta é: é possível personalizar backward-kill-word
para excluir até o primeiro caractere não alfanumérico ou a primeira letra maiúscula? Dessa forma, poderia ser usado para excluir palavras do CamelCase. Por exemplo, se eu começar com
echo HelloFriend▯
ao pressionar <Alt-Backspace>
eu gostaria de obter
echo Hello▯
Responder1
Se mudar para zsh
for uma opção, você pode usarselect-word-style
widget contribuído pelo usuárioque permite selecionar o estilo da palavra para todos os movimentos e operações da palavra.
Adicionar à ~/.zshrc
:
autoload -U select-word-style
zle -N select-word-style
bindkey '\ez' select-word-style
select-word-style default
E pressione Alt+ Zpara selecionar estilos de palavras alternativos:
$ echo Olá amigo Alt+Z Estilos de palavras (pressione Enter para obter mais detalhes): (b)ash (n)normal (s)inferno (w)hitespace (d)efault (q)uit (B), (N), (S), (W) como acima com correspondência de subpalavras
Em seguida, letras maiúsculas B
selecionariam um bash
estilo (irritante para mim, mas talvez familiar para você) de seleção de palavras, mas com tratamento de subpalavras em caixa de camelo, alter qual (no emacs
modo) Ctrl+ W(ou Alt+ Backspace) removeria o Friend
acima ou Alt+ Bvoltaria ao início dessa Friend
palavra, etc.