readline: unix-word-rubout, mas ao contrário, é possível?

2

Estou tentando configurar meu .inputrc para executar um unix-word-rubout para trás, mas não estou conseguindo fazer isso.
Eu tenho M-w mapeado no meu .inputrc .

isso não funciona:

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

nem isso:

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

nem mesmo fazendo isso interativamente no shell pressionando M-- seguido por C-w works, ou seja, ele mantém as palavras excluídas à esquerda do cursor.

PS Eu sei que existem outros comandos killline / rubout readline, mas eu realmente gostaria de ter o comportamento C-w de matar palavras usando espaço como separador, apenas para trás.

    
por Giuseppe Rota 28.03.2012 / 12:19

1 resposta

2

Em resumo, adicione as seguintes linhas a ~/.inputrc :

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

onde w e a caracteres podem ser alterados para sua vontade.

Como funciona

Vamos atribuir uma seqüência de teclas ao comando kill-region readline, por exemplo Alt - w

"\ew": kill-region

então vamos atribuir a seguinte macro a outra sequência, digamos Alt - a :

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

que realiza as seguintes ações:

\e<SPACE>:

defina a marca onde o cursor está

\C-]<SPACE>:

procure por um espaço e mova o cursor para lá

\ew:

mata a região entre marca e cursor

    
por 28.03.2012 / 16:08