É possível configurar ctrl-w (delete word)?

38

Normalmente, Ctrl + W é excluído de volta para o último espaço em branco.

É possível configurá-lo para usar caracteres adicionais, como / ?

Editar: para ser mais claro: não quero configurar a chave para isso, quero que a exclusão também pare em / .

Exemplo:

vim /foo/bar^W
vim /foo/
    
por SkaveRat 29.12.2011 / 20:00

4 respostas

27

O que funcionou para mim foi adicionar as seguintes linhas ao meu .bashrc

stty werase undef
bind '\C-w:unix-filename-rubout'

Você precisa da linha undef, caso contrário, o bash ignora sua nova ligação para C-w

    
por 14.12.2012 / 12:52
23

Você deve ser capaz de usar o Esc, em seguida, 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.

    
por 30.12.2011 / 01:00
20

Para este 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 do bash apagam

    
por 13.03.2014 / 14:00
7

Com o bash você pode obter o efeito desejado, colocando o seguinte no seu arquivo ~ / .bashrc:

bind '"\C-w":backward-kill-word'

Acerte CTRL+V e sua combinação de teclas para ver como é o seu emulador de terminal. Por exemplo, CTRL+bksp pode ser interpretado de forma diferente em diferentes terminais, por ex. ^H ou ^? . O caractere ^ é o mesmo que CTRL .

    
por 30.12.2011 / 01:33