Palabra de eliminación hacia atrás compatible con CamelCase en readline

Palabra de eliminación hacia atrás compatible con CamelCase en readline

backward-kill-wordes una acción de lectura de línea que elimina la palabra alfanumérica anterior. Por ejemplo, aplicando esta acción en el siguiente escenario ( indica la posición del cursor)

echo hello-friend▯

resultados en

echo hello-▯

backward-kill-wordnormalmente está vinculado a <Alt-Backspace>, aunque esto se puede personalizar en el archivo de configuración de readline ~/.inputrc.

Mi pregunta es: ¿es posible personalizarlo backward-kill-wordpara que borre hasta el primer carácter no alfanumérico o la primera letra mayúscula? De esta manera, podría usarse para eliminar palabras de CamelCase. Por ejemplo, si empiezo con

echo HelloFriend▯

al presionar <Alt-Backspace>me gustaría obtener

echo Hello▯

Respuesta1

Si cambiar a zshes una opción, puede usarselect-word-stylewidget aportado por el usuarioque le permite seleccionar el estilo de palabra para todos los movimientos y operaciones de palabras.

Añadir ~/.zshrc:

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

Y presione Alt+ Zpara seleccionar estilos de palabras alternativos:

$ eco Hola amigo Alt+Z
Estilos de palabras (presione regresar para obtener más detalles):
(b)ash (n)ormal (s)infierno (w)hitespace (d)efault (q)uit
(B), (N), (S), (W) como arriba con coincidencia de subpalabras

Luego, las mayúsculas Bseleccionarían un bashestilo (molesto para mí, pero tal vez familiar para usted) de selección de palabras, pero con manejo de subpalabras en mayúsculas alterando el cual (en emacsmodo) Ctrl+ W(o Alt+ Backspace) eliminaría lo Friendanterior o Alt+ Bvolvería al inicio. de esa Friendpalabra, etc.

información relacionada