Como ligar “\ C-;” em ~ / .inputrc?

3

Eu uso Meta-ijkl como setas no Emacs, e M-; como backspace, então eu quero fazer com que as chaves no bash representem o mesmo estilo. Mover e excluir funciona bem, mas, por algum motivo, não consigo vincular unix-line-discard a C-; que apagaria toda a linha do cursor até o início no buffer de eliminação. Como as chaves emacs padrão para copy, kill e yank são C-j , C-k e C-y , outra combinação C se encaixa muito bem. E \e: (Meta-Shift-;) já está vinculado a backward-kill-word . C-u que faz unix-line-discard por padrão funciona bem, mas é inconveniente pressionar. Se eu religar essa função para, digamos, \C-g , ela funcionará bem também.

No ~/.inputrc tenho

"\C-;": unix-line-discard

Eu também tentei

"\C-\;": unix-line-discard
"\C-\x3b": unix-line-discard

sem efeito. C-v C-; no shell não imprime nada, exceto o ponto-e-vírgula normal, e \C-; com todas as suas variantes só imprime também e nada mais.

Eu trabalho em Urxvt.

    
por tijagi 03.03.2016 / 18:10

1 resposta

5

Concordando com o comentário de @meuh, os terminais não geram um código distinto para controle ; (normalmente).

O link sugerido por @tijagi é para xterm e não se aplica a urxvt . Usar a página de manual para urxvt mostra que você pode começar aqui:

   keysym.sym: string
       Compile frills: Associate string with keysym sym. The intervening
       resource name keysym. cannot be omitted.

e use uma configuração como uma dessas:

*keysym.Control-semicolon: mybinding
URxvt.keysym.Control-semicolon: mybinding

usando o nome da classe conforme necessário para substituir os recursos existentes e onde mybinding é o que você deseja ter urxvt send quando você digita control ; (mas leia a página de manual para obter a sintaxe correta) . @meuh sugere usar 5 ( ^U ), já que normalmente é vinculado a unix-line-discard .

Leitura adicional:

por 03.03.2016 / 23:17