Respostas:
Você poderá usar Esc e retroceder para excluir palavras delimitadas por barras.
Você pode mudar isso colocando isso em você .bashrc:
bind '\C-f:unix-filename-rubout'
Agora use Ctrl+f para fazer o que quiser.
C-w:..., o comportamento padrão de excluir para o próximo espaço ainda entra em ação. Em uma tecla diferente (como F), se funciona bem.
stty -a? você tem control-w como caractere padrão para werase? Se você remover essa configuração do tty, com comman stty werase undef, o bash funcionará conforme o esperado?
Para esse problema específico, você também pode usar:
Alt + Backspace
$ cd /home/me/test/a_dir/ # Alt + Backspace
$ cd /home/me/test/ # Alt + Backspace
$ cd /home/me/ # ...
Boa referência: aventuras com a palavra bash apagar
Ctrl+wou Ctrl + b ou algo unix-filename-rubout, mas é muito melhor do que há um built-in de ligação: M-backspace (Alt + Backspace ou Esc backspace)
Com o bash, você pode obter o efeito desejado, colocando o seguinte no seu arquivo ~ / .bashrc:
bind '"\C-w":backward-kill-word'
Aperte CTRL+Ve sua combinação de teclas para ver como é o seu emulador de terminal. Por exemplo, CTRL+bksppode ser interpretado diferente em diferentes terminais, por exemplo, ^Hou ^?. O ^personagem é o mesmo que CTRL.
/como caractere de parada adicional, não uma maneira de vincular o comando delete-word-command em uma outra chave. Eu editei minha pergunta
^F- mas usando "\^F"no script acima não funciona
stty werase undefvocê vai parar de usar Cw em qualquer programa (ligamento permitirá que você usar em readline)