.inputrc settings: delete-char e [] keybindings não funcionam

0

Estou usando o mingw no windows. Quando estou usando ruby (irb), meus caracteres 'especiais' como [] {} e \ não estão funcionando. Isso é por causa do meu teclado alemão, onde essas teclas são usadas junto com o AltGr (Alt + Ctrl). Eu encontrei uma solução para este aqui ou aqui .

Agora, quando eu adicionar a linha

"\M-[": "["

ao meu arquivo .inputrc, a tecla delete não funciona mais. É definido como de costume:

"\e[3~": delete-char

Pressionar delete apenas retorna [3 , enquanto Ctrl + v, delete retorna ^[[3~ conforme o esperado.

De alguma forma, essas duas definições em .inputrc não funcionam juntas. Alguma idéia?

EDITAR:
É apenas a tecla delete que não está funcionando, todas as outras ligações funcionam, como:

"\e[1~": beginning-of-line              # home (ok)
"\e[2~": paste-from-clipboard           # insert (ok)
"\e[3~": delete-char                    # delete (PROBLEM)
"\e[4~": end-of-line                    # end (ok)
"\e[5~": history-search-backward        # pageup (ok)
"\e[6~": history-search-forward         # pagedown (ok)
    
por tanascius 08.01.2010 / 16:14

3 respostas

1

DEL: delete-char

Deve funcionar para você.

    
por 04.02.2012 / 01:13
0

\ M- [significa META- [que pode ser feito com ALT- [ou ESC, [ \ e [significa ESC, [mas isso foi redefinido anteriormente

    
por 08.01.2010 / 16:24
0

A solução foi introduzir uma construção de inicialização condicional :

$if ruby
  "\M-[": "["
  "\M-]": "]"
  "\M-{": "{"
  "\M-}": "}"
  "\M-\": "\"
  "\M-|": "|"
  "\M-@": "@"
  "\M-~": "~"
$else
  "\e[1~": beginning-of-line              # home
  "\e[2~": paste-from-clipboard           # insert
  "\e[3~": delete-char                    # delete
  "\e[4~": end-of-line                    # end
  "\e[5~": history-search-backward        # pageup
  "\e[6~": history-search-forward         # pagedown
$endif

Mas a pergunta original: o que está acontecendo aqui ainda existe:)

    
por 08.01.2010 / 17:11