Observe que isso funcionará no terminal e no modo emacs padrão (que você está usando se Ctrl+ Wexcluir a palavra anterior para você). Ele não funcionará no modo vi do bash e não afetará o vi / vim. Portanto, essa é apenas uma resposta parcial, mas a melhor opção para esse usuário do emacs.
Esse tipo de coisa é gerenciada pela readline
biblioteca cujo comportamento pode ser controlado via ~/.inputrc
. Edite (ou crie, se não existir) ~/.inputrc
e adicione esta linha:
"\C-H":"\C-W"
Agora, abra um novo terminal e ele deve funcionar.
Explicação
O \C-H
é realmente Control+ BackSpace. Você pode ver os códigos de teclas pressionando Ctrl+ Ve a tecla que você procura. Você verá que BackSpaceretorna ^H
.
Agora, deve ser possível vincular Control+ BackSpaceà função bash que exclui a palavra anterior ( backward-kill-word
ou unix-word-rubout
) usando "\C-H": backward-kill-word
. No entanto, não consigo fazer isso funcionar. Funciona perfeitamente bem com teclas diferentes ( "\C-E": backward-kill-word
por exemplo, faz Ctrl+ Eexcluir a palavra anterior), mas por algum motivo, não consigo fazê-lo funcionar BackSpace.
Portanto, como solução alternativa, basta mapear Ctrl+ Backspacepara Ctrl+ Wque já está mapeado backward-kill-word
. Portanto, quando você pressiona Ctrl+ Backspace, isso será traduzido para Ctrl+ Wque, por sua vez, será enviado backward-kill-word
. Eu tive a idéia para esta solução alternativa neste post da SU .