
backward-kill-word
es 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-word
normalmente 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-word
para 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 zsh
es una opción, puede usarselect-word-style
widget 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 B
seleccionarían un bash
estilo (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 emacs
modo) Ctrl+ W(o Alt+ Backspace) eliminaría lo Friend
anterior o Alt+ Bvolvería al inicio. de esa Friend
palabra, etc.