readline: unix-word-rubout, pero al revés, ¿es posible?

readline: unix-word-rubout, pero al revés, ¿es posible?

Estoy intentando configurar mi .inputrcpara realizar una operación al revés, unix-word-ruboutpero actualmente no lo logro.
He M-wmapeado en mi .inputrc.

esto no funciona:

"\eu": universal-argument
"\ew":  "\eu-1\C-w"

tampoco esto:

"\ew":  "\e-1\C-w"

ni siquiera hacerlo de forma interactiva en el shell presionando M--seguido de C-wfunciona, es decir, sigue eliminando palabras a la izquierda del cursor.

PD: Sé que hay otros comandos de línea de lectura para eliminar/borrar, pero realmente me gustaría tener el C-wcomportamiento de eliminar palabras usando el espacio como separador, justo al revés.

Respuesta1

En resumen, agregue las siguientes líneas a ~/.inputrc:

"\ew": kill-region
"\ea": '\e \C-] \ew'

donde wy alos personajes se pueden cambiar a su voluntad.

Como funciona

Asignemos una secuencia de teclas al kill-regioncomando readline, por ejemplo Alt:w

"\ew": kill-region

luego asignemos la siguiente macro a otra secuencia, digamos Alt- a:

"\ea": '\e \C-] \ew'

que realiza las siguientes acciones:

\e<SPACE>:

establecer la marca donde está el cursor

\C-]<SPACE>:

busca un espacio y mueve el cursor allí

\ew:

matar la región entre la marca y el cursor

información relacionada