Note que isto funcionará no terminal e no modo padrão emacs (que você está usando se Ctrl + W apaga a palavra anterior para voce). Ele não funcionará no modo vi do bash e não afetará o próprio vi / vim. Esta é, portanto, apenas uma resposta parcial, mas o melhor que esse usuário do emacs pode oferecer.
Esse tipo de coisa é gerenciado pela biblioteca readline
cujo comportamento pode ser controlado via ~/.inputrc
. Edite (ou crie, se não existir) ~/.inputrc
e adicione esta linha:
"\C-?":"\C-W"
Agora, abra um novo terminal e ele deve funcionar.
Explicação
O \C-?
é, na verdade, Controle + BackSpace . Você pode ver os códigos de teclas pressionando Ctrl + V e depois a tecla que você está procurando. Você verá que BackSpace retorna ^?
.
Agora, deve ser possível ligar Control + BackSpace à função bash que apaga a palavra anterior ( backward-kill-word
ou unix-word-rubout
) usando "\C-?": backward-kill-word
. No entanto, não consigo fazer isso funcionar. Ele funciona perfeitamente com chaves diferentes ( "\C-E": backward-kill-word
, por exemplo, faz Ctrl + E deletar a palavra anterior) mas por alguma razão, não consigo fazer isso trabalhe com o BackSpace .
Então, como uma solução, apenas mapeamos Ctrl + Backspace para Ctrl + W que já está mapeado para backward-kill-word
. Então, quando você pressionar Ctrl + Backspace , isso será traduzido para Ctrl + W que, por sua vez, enviará backward-kill-word
. Eu tenho a idéia para essa solução alternativa de esta postagem SU .