Não é mais possível usar CTRL + Esquerda / Direita no Terminal Bash

13

Eu costumo usar CTRL+ Lefte CTRL+ Rightpara navegar entre as palavras na linha de comando. Troquei meu laptop esta manhã e não posso mais fazer isso. Em vez disso, o código de entrada CTRL+ Lefté impresso no terminal.

Ou seja: Aqui está a minha saída quando tento navegar com CTRL+ Left:

~ $ test test ;5D;5D;5D

Curiosamente, ainda posso usar CTRL+ Left/ Rightmuito bem no VIM.

Suculento
fonte
Você pode colocar algo no seu bashrc para permitir isso? Porque ele não funciona por padrão para mim no Ubuntu 15.10 ...
Martin Tournoij 11/03/16
Por favor, publique a saída de grep bind ~/.bashrc . Você está adquirindo outros arquivos em ~/.bashrc( grep source ~/.bashrc)?
kos
1
Apenas curioso, mas qual é o resultado echo $0?
Aaron

Respostas:

15

Abra o ~/.inputrcarquivo e adicione as seguintes linhas:

# mappings for Ctrl-left-arrow and Ctrl-right-arrow for word moving
"\e[1;5C": forward-word
"\e[1;5D": backward-word

Feche e reabra o shell. Agora você deve poder usar essas chaves.

Razões para esse comportamento? Não tenho muita certeza. Por alguma razão ou outra, seu arquivo bashparou de ler /etc/inputrc, mas deve estar lendo o da sua pasta pessoal

Sergiy Kolodyazhnyy
fonte
Acho que esse problema começou para mim quando criei um arquivo ~ / .inputrc. Isso faria isso?
Wjandrea
1
@ Wjandrea sim, eu testei isso agora. Antes de deixar o espaço em branco, ~/.inputrco bash funcionava bem, começou a mostrar os mesmos caracteres de controle para a saída depois que o espaço em branco ~/.inputrcfoi criado. Removido - as teclas Ctrl + seta funcionam novamente. stracerevela que, se .inputrcexistir, bash não lerá /etc/inputrc. Eu vou ao redor mexer com isso um pouco mais e atualizar a minha resposta
Sergiy Kolodyazhnyy
1
Se você adicionar $include /etc/inputrcà parte superior do seu ~/.inputrcarquivo, poderá incluir o comportamento em todo o sistema e, em seguida, estendê-lo.
Cory bruto