Como faço para que as teclas de seta com a tecla Ctrl se movam para frente / para trás uma palavra por vez no Cygwin bash?
97
Na instalação padrão do Cygwin, o uso de 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 é necessário remapear.
Observe que esta pergunta aborda o Cygwin, mas pode ter aplicação geral nos sistemas Unix / Linux. Se você estiver usando o PuTTY e descobrir que as soluções aqui não funcionam para você, consulte uma pergunta especificamente sobre quais códigos usar para o PuTTY .
palswim
Isso também aconteceu comigo sob um linux completo; em alguns conselhos online, adicionei um ~/.inputrcarquivo - que anulava todos os padrões do linux mint. Você pode recuperá-los adicionando $include /etc/inputrcao topo do seu ~ / .inputrc (assumindo que / etc / inputrc seja o seu inputrc de todo o sistema, que está no Linux Mint)
user208769
Respostas:
134
Encontrei uma solução , postando-a aqui para posteridade.
Adicione as seguintes linhas a ~/.inputrc( C:\cygwin\home\<username>\.inputrc):
Quando terminar, você pode pressionar C-x C-rpara reler o .inputrcarquivo da sessão atual.
Pontos a serem observados se você quiser outras personalizações semelhantes: Use 5Ae 5Bpara as setas para cima e para baixo, e 2xpara 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 de teclas, no bash:
tipo Ctrl+V
digite a sequência de teclas em que está interessado (por exemplo, Alt+ →). Isso imprimiria^[[1;3C
Alguns códigos de teclado não são exibidos como <kbd> Shift </kbd> + <kbd> Enter </kbd>. Como encontro esses códigos de teclado no Mintty / Windows / Cygwin?
Isso é útil, mas não é realmente uma resposta para a pergunta - talvez seja melhor como comentário para outra resposta?
Martin Thompson
Adicionado à resposta de @ Tom acima
dovetalk
7
Caso você queira algo que funcione sem configurações de ambiente personalizadas, por exemplo, ao trabalhar em uma conta compartilhada em um servidor ou apenas para limitar a quantidade de configuração personalizada em uso, o Bash tem built-ins para isso que funcionam no Cygwin.
Ou seja, Alt+ fpara avançar e Alt+ bpara retroceder.
Obrigado, embora eu esteja ciente dessas chaves e as use. Também uso as teclas de seta quando é conveniente e não quero que vomitem códigos de escape em vez de fazer a coisa sã e mover o cursor.
Tom
0
Ao usar o rxvt com o cygwin, encontrei a solução neste link que funcionou para mim: control_arrow_keys_in_rxvt .
~/.inputrc
arquivo - que anulava todos os padrões do linux mint. Você pode recuperá-los adicionando$include /etc/inputrc
ao topo do seu ~ / .inputrc (assumindo que / etc / inputrc seja o seu inputrc de todo o sistema, que está no Linux Mint)Respostas:
Encontrei uma solução , postando-a aqui para posteridade.
Adicione as seguintes linhas a
~/.inputrc
(C:\cygwin\home\<username>\.inputrc
):Quando terminar, você pode pressionar
C-x C-r
para reler o.inputrc
arquivo da sessão atual.Pontos a serem observados se você quiser outras personalizações semelhantes: Use
5A
e5B
para as setas para cima e para baixo, e2x
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 de teclas, no bash:
^[[1;3C
^[
e substitua-a por\e
para\e[1;3C
.inputrc
arquivo.fonte
Você pode recarregar o arquivo .inputrc via:
Fonte
fonte
Caso você queira algo que funcione sem configurações de ambiente personalizadas, por exemplo, ao trabalhar em uma conta compartilhada em um servidor ou apenas para limitar a quantidade de configuração personalizada em uso, o Bash tem built-ins para isso que funcionam no Cygwin.
Ou seja, Alt+ fpara avançar e Alt+ bpara retroceder.
http://www.gnu.org/software/bash/manual/html_node/Commands-For-Moving.html
fonte
Ao usar o rxvt com o cygwin, encontrei a solução neste link que funcionou para mim: control_arrow_keys_in_rxvt .
Adicione as seguintes linhas a
~/.inputrc
:fonte
Esta solução também funciona em
msys2
consoles:Basta colocar essas combinações de teclas no
.inputrc
arquivo.fonte