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+w
ou 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+V
e sua combinação de teclas para ver como é o seu emulador de terminal. Por exemplo, CTRL+bksp
pode ser interpretado diferente em diferentes terminais, por exemplo, ^H
ou ^?
. 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 undef
você vai parar de usar Cw em qualquer programa (ligamento permitirá que você usar em readline)