Usando Ctrl ou Alt AND backspace para excluir a última palavra no Bash


16

No Linux, estou acostumado a pressionar Ctrl- Backspacepara excluir a última palavra, mas não sei como fazê-lo no terminal Bash.

No OS XI, use Alt- Backspacepara fazer a mesma coisa.

Existe alguma maneira de fazer Bash reconhecer o Ctrl- ou Alt- Backspacecombinação de teclas para apagar a última palavra?

No Linux eu uso terminatorcomo emulador de terminal, no OSX eu uso iTerm2.


1
Alt-⌫ aka Alt- ← aka Alt-Backspace funciona perfeitamente para mim. Estou usando o Terminator 0.93.
Teddy

Respostas:


31

Você sempre pode usar Ctrl- W. Exclui a palavra antes do cursor e funciona em todos os Bash.

Veja aqui uma lista de atalhos de teclado do Bash .


1
Uau, isso pode ter mudado a maneira como eu uso o terminal para sempre. Obrigado!
David

2
Isso não responde à pergunta
Sel

5

Você só precisa definir Option como chave Meta nas preferências do iTerm ( Perfis »Chaves ).

backward-kill-wordestá vinculado a Meta-Rubout(por exemplo, Opt-Backspace) por padrão.

A mesma opção existe (embora menos flexível) no Terminal.app da Apple.


2
Na verdade, você precisa usar a configuração "+ Esc". Somente configurá-lo para "atua como: Meta" resulta em ?impressão, em vez de a palavra ser excluída.
slhck

@slhck Não é para mim. Mas como os desenvolvedores recomendam de qualquer maneira, não pode ser uma coisa ruim.
Daniel Beck

2

No terminator, você pode usar o seguinte " plugin ", juntamente com

[keybindings]
    kill_word = <Control>BackSpace

no seu arquivo de configuração. Isso mapeará Ctrl- Backspacepara ESCDEL, outro atalho para excluir a última palavra.


Infelizmente, isso parou de funcionar no terminador 1.9. Você poderia fornecer uma correção por acaso?
Sel

1
Desculpe, parou de usar terminator há muito tempo ...
OlivierBlanvillain

2

Você pode criar um arquivo .inputrcno diretório inicial e adicionar este conteúdo dentro de:

"\C-h": backward-kill-word

1
Observe que isso e C-wna resposta aceita diferem pelo que é considerado uma "palavra". C-wexcluirá da posição do cursor até encontrar caracteres que não sejam espaços e, em seguida, um espaço (ou seja, "this is a/se=weird |test"onde |marca a posição do cursor "this is test"). Por outro lado, o C-hvínculo aqui (que pode ser vinculado usando bind '"\C-h": backward-kill-word"a .bashrc) renderia "this is a/se= test", pois basicamente delimita palavras sobre o que uma variável bash produziria , não apenas espaços.
Jeremysprofile

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.