Existem dois editores de linhas em jogo aqui: o editor de linhas básico fornecido pelo kernel (editor de linhas tty no modo canônico) e o editor de linhas do bash (implementado através da biblioteca readline). Ambos têm um comando de apagar para a palavra anterior, que é vinculado a Ctrl+ Wpor padrão. A chave pode ser configurada para o editor de linha tty no modo canônico stty werase; O bash imita a ligação de chave encontrada na configuração tty, a menos que substituída em sua própria configuração.
A weraseação no editor de linhas tty não pode ser configurada. Ele sempre apaga (ASCII) palavras delimitadas por espaços em branco. É raro interagir com o editor de linhas tty - é o que você obtém, por exemplo, quando digita catsem argumento. Se você quiser teclas fantasia lá, você pode executar o comando em uma ferramenta como rlwrap que usa readline.
O Bash fornece dois comandos para excluir a palavra anterior : unix-word-rubout( Ctrl+ wou conforme definido stty werase) e backward-kill-word( M-DEL, ie Esc Backspace), que trata uma palavra como uma sequência de caracteres alfanuméricos no código de idioma atual e_ . Se você deseja Ctrl+ Backspaceapagar a sequência anterior de caracteres alfanuméricos, não defina stty werasee, em vez disso, coloque a seguinte linha no seu .inputrc:
"\C-h": backward-kill-word
Note que este assume que o seu terminal envia o caráter Ctrl + H para Ctrl+ Backspace. Infelizmente, é uma daquelas chaves sem ligação padrão (e, Backspaceem particular, é uma bagunça por razões históricas).
Há também um comando simétrico kill-wordque é vinculado a M-d( Alt+ D) por padrão. Para vinculá-lo ao Ctrl+ Delete, primeiro você precisa descobrir qual sequência de escape o seu terminal envia e, em seguida, adicionar uma linha correspondente no seu .inputrc. Digite Ctrl+ Ve Ctrl+ Delete; isso irá inserir algo como ^[[3;5~onde a inicial ^[é uma representação visual do caractere de escape. Então a ligação é
"\e[3;5~": kill-word
Se você não estiver satisfeito com a definição de uma palavra, poderá fornecer o seu próprio no bash: veja um comportamento confuso das combinações de teclas no estilo emacs no bash