readline
não liga ao Ctrl - W porque é tratado pelo driver do terminal por padrão:
$ stty -a
(...) werase = ^W; (...)
Para desabilitar isso, você precisa executar (em ~/.bashrc
):
stty werase undef
bind '"\C-w": backward-kill-word'
.inputrc
não ajudará aqui, pois ele é lido quando Ctrl - W ainda está atribuído a werase
.
Observe também que \C-w
format keyseqs deve ser colocado entre aspas duplas, como acima.
Terminais diferentes podem lidar com Alt - Backspace de forma diferente.
- PuTTY e Terminal GNOME (com configurações padrão) envia
1b 7f
(ESC DEL
) - Xterm com
metaSendsEscape: true
envia1b 08
(ESC BS
). - Xterm sem
metaSendsEscape
envia88
(HTS
ouBS
com o maior conjunto de bits).
O Xterm tem algumas configurações para controlar o comportamento da tecla Alt (chamada Meta no Xterm e no X11 em geral). Com metaSendsEscape
, manter Alt prefixará o pressionamento de tecla com ESC
(hex 1b
). Sem a configuração (modo padrão), Alt define o bit mais alto do caractere de entrada, resultando em caracteres especiais. (Por exemplo, Alt - N resulta em ESC n
e î
, respectivamente.)
Tanto quanto me lembro, o Terminal.app também tem uma configuração semelhante para controlar o comportamento do uso de Meta / Alt / qualquer-Mac.