web-dev-qa-db-fra.com

Comment faire pour que les touches Ctrl-flèche avancent / reviennent d'un mot à la fois dans Cygwin bash?

Dans l'installation par défaut de Cygwin, l'utilisation de CTRL-LEFTARROW ou CTRL-RIGHTARROW imprime simplement 5C ou 5D au lieu de sauter un mot à la fois, comme prévu.

Les touches Home/End fonctionnent correctement, le remappage doit donc être possible.

94
Tom

Trouvé un solution , le poster ici pour la postérité.

Ajoutez les lignes suivantes à ~/.inputrc (C:\cygwin\home\<username>\.inputrc):

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

Une fois terminé, vous pouvez appuyer sur C-x C-r pour relire le fichier .inputrc de la session en cours.

Remarques à prendre en compte si vous souhaitez effectuer d'autres personnalisations similaires: Utilisez 5A et 5B pour les flèches vers le haut et le bas, et 2x pour les versions décalées.

Les mappages de touches "officielles" sont décrits dans le Manuel de référence de Bash , mais pour un moyen rapide de trouver un mappage de clés, sous bash:

  1. type Ctrl+V
  2. tapez la séquence de touches qui vous intéresse (par exemple, Alt+). Ceci afficherait ^[[1;3C
  3. supprimer le ^[ et le remplacer par \e pour créer \e[1;3C
  4. placez cette valeur dans votre fichier .inputrc.
128
Tom

Vous pouvez recharger le fichier .inputrc via:

bind -f ~/.inputrc

Source

14
Kdt

Si vous souhaitez que quelque chose fonctionne sans paramètres d'environnement personnalisés, par exemple lorsque vous travaillez sur un compte partagé sur un serveur ou simplement pour limiter le nombre de configurations personnalisées utilisées, Bash dispose pour cela de solutions intégrées qui fonctionnent dans Cygwin.

À savoir Alt+f pour avancer et Alt+b reculer.

http://www.gnu.org/software/bash/manual/html_node/Commands-For-Moving.html

7
Costa

Lors de l'utilisation de rxvt avec cygwin, la solution sur ce lien fonctionnait pour moi: control_arrow_keys_in_rxvt .

Ajoutez les lignes suivantes à ~/.inputrc:

"\eOd": backward-Word
"\eOc": forward-Word
0
Peter Tran

Cette solution fonctionne également dans les consoles msys2:

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

Il suffit de placer ces combinaisons de touches dans le fichier .inputrc.

0
f0nzie