Como eu faço com que as teclas ctrl-arrow movam para frente / para trás uma palavra por vez no Cygwin bash?

89

Na instalação padrão do Cygwin, usar CTRL-LEFTARROW ou CTRL-RIGHTARROW simplesmente imprime 5C ou 5D em vez de pular uma palavra por vez, conforme o esperado.

As teclas Início / Fim funcionam corretamente, portanto, o remapeamento deve ser possível.

    
por Tom 10.08.2011 / 03:17

5 respostas

125

Encontrou uma solução , postando aqui para a posteridade.

Adicione as seguintes linhas a ~/.inputrc ( C:\cygwin\home\<username>\.inputrc ):

"\e[1;5C": forward-word   # ctrl + right
"\e[1;5D": backward-word  # ctrl + left 

Quando terminar, pressione C-x C-r para reler o arquivo .inputrc da sessão atual.

Pontos a serem observados se você quiser outras personalizações semelhantes: use 5A e 5B para as setas para cima e para baixo e 2x para versões deslocadas.

Os mapeamentos de teclas "oficiais" são descritos no Manual de Referência do Bash , mas para uma maneira rápida de encontrar um mapeamento chave, no bash:

  1. digite Ctrl + V
  2. digite a sequência de teclas em que você está interessado (por exemplo, Alt + ). Isso imprimiria ^[[1;3C
  3. remova o ^[ inicial e substitua-o por \e para gerar \e[1;3C
  4. insira esse valor em seu arquivo .inputrc .
por 10.08.2011 / 03:23
14

Você pode recarregar o arquivo .inputrc via:

bind -f ~/.inputrc

Fonte

    
por 14.11.2012 / 20:27
7

Caso você queira algo que funcione sem configurações de ambiente personalizadas, por exemplo, quando estiver trabalhando em uma conta compartilhada em um servidor ou apenas para limitar a quantidade de configurações personalizadas em uso, o Bash tem internos para isso que funcionam em Cygwin.

A Alt + f move-se para frente e Alt + b para retroceder.

link

    
por 20.03.2013 / 22:11
0

Ao usar o rxvt com o cygwin, descobri que a solução neste link funcionou para mim: control_arrow_keys_in_rxvt .

Adicione as seguintes linhas a ~/.inputrc :

"\eOd": backward-word
"\eOc": forward-word
    
por 15.10.2012 / 20:44
0

Esta solução também funciona em msys2 consoles:

"\e[1;5C": forward-word   # ctrl + right
"\e[1;5D": backward-word  # ctrl + left 

Basta colocar essas combinações de teclas no arquivo .inputrc .

    
por 23.06.2017 / 18:31

Tags