Question Comment puis-je faire avancer / reculer les mots ctrl-flèche d'un mot à la fois dans Cygwin bash?


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

Les touches Accueil / Fin fonctionnent correctement, donc le remappage devrait être possible.


84
2017-08-10 01:17


origine


Notez que cette question concerne Cygwin, mais peut avoir une application générale sur les systèmes Unix / Linux. Si vous utilisez PuTTY et que vous trouvez que les solutions ne vous conviennent pas, consultez une question spécifique sur les codes à utiliser pour PuTTY. - palswim


Réponses:


Trouvé un Solution, l'afficher 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 relire le .inputrc fichier pour la session en cours.

Choses à noter si vous souhaitez d'autres personnalisations similaires: 5A et 5B pour les flèches haut et bas, et 2x pour les versions décalées.

Les mappages de touches "officiels" sont décrits dans le Manuel de référence Bash, mais pour trouver rapidement un mappage de clé, en bash:

  1. type Ctrl+V
  2. tapez la séquence de touches qui vous intéresse (par exemple, Alt+). Cela imprimerait ^[[1;3C
  3. enlever le premier ^[ et le remplacer par \e faire \e[1;3C
  4. placer cette valeur dans votre .inputrc fichier.

117
2017-08-10 01:23



Certains codes de clavier ne s'affichent pas du tout comme <kbd> Shift </ kbd> + <kbd> Enter </ kbd>. Comment trouver ces codes de clavier via Mintty / Windows / Cygwin? - CMCDragonkai


Vous pouvez recharger le fichier .inputrc via:

bind -f ~/.inputrc

La source


14
2017-11-14 19:27



C'est utile, mais pas vraiment une réponse à la question - peut-être serait-il préférable de commenter une autre réponse? - Martin Thompson
Ajouté à la réponse de @ Tom ci-dessus - dovetalk


Si vous voulez quelque chose qui fonctionne sans les paramètres d'environnement personnalisés, par exemple lorsque vous travaillez sur un compte partagé sur un serveur ou simplement pour limiter la quantité de configuration personnalisée utilisée, Bash a des fonctions intégrées dans Cygwin.

À savoir Alt+F aller de l'avant et Alt+b pour reculer.

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


7
2018-03-20 21:11



Merci, bien que je connaisse ces clés et les utilise. J'utilise aussi les touches fléchées lorsque cela est pratique et je ne veux pas qu'elles crachent des codes d'échappement au lieu de faire la chose saine et de déplacer le curseur. - Tom


En utilisant rxvt avec cygwin, j'ai trouvé que la solution à ce lien fonctionnait pour moi: control_arrow_keys_in_rxvt.

Ajoutez les lignes suivantes à ~/.inputrc :

"\eOd": backward-word
"\eOc": forward-word

0
2017-10-15 18:44



C'est quand une couche supplémentaire change les clés transmises (mais elle ne répond pas à la question posée). - Nikana Reklawyks


Cette solution fonctionne également dans msys2 consoles:

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

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


0
2018-06-23 16:31