1 votes

Linux-like ^A (ctrl-a) in Cygwin

J'ai installé le dernier Cygwin sur Win10. Par habitude sur * nix, je me retrouve à appuyer sur ^A pour aller au début de la ligne en cours, mais le comportement par défaut (espérons modifiable) est qu'il sélectionne tout le contenu texte de la console (ce qui à mon avis est incohérent car d'autres raccourcis semblables à Emacs, comme ^E , ^D , ^K etc. fonctionnent comme prévu).

Y a-t-il un moyen de changer cela et de faire en sorte que ^A effectue la "bonne action" et me conduise au début de la ligne?

2voto

Steve Points 21

J'ai résolu cela en décochant l'option "Activer les raccourcis clavier de la touche Ctrl" dans les options du terminal. trouver le paramètre en -> cliquant avec le bouton droit sur le cadre du terminal -> sélectionnez Propriétés.

0voto

BoltClock Points 249668

Ceci est le domaine de inputrc et de la commande bind builtin.

Plus précisément, votre liaison ressemblerait à :

"\C-a": début-de-ligne

ou

bind '"\C-a":début-de-ligne'

C'est d'ailleurs la valeur par défaut, alors sur votre système, cela doit être redéfini quelque part.


Conformément au Manuel de référence Bash : Syntaxe du fichier d'initialisation Readline, section "Associations de touches", vous pouvez exécuter bind -p pour afficher toutes les associations actuelles et voir si elles sont redéfinies.

Si c'est le cas, utilisez procmon pour voir quels fichiers bash lit au démarrage.

Si ce n'est pas le cas, ce n'est pas Bash qui fait ça. Il est très probable que ce soit votre émulateur de terminal -- vérifiez ses paramètres pour toute association de touches et autres.

0voto

frooyo Points 658

Notez que Ctrl-A n'est probablement pas ce que la fonction "bind" de bash utilise pour déplacer le curseur au début de la ligne. En fait, bash répond au code ASCII un.

Avec de nombreux programmes de terminal, appuyer sur Ctrl-A enverra le code ASCII un au programme en premier plan. Cependant, il semble que votre programme de terminal utilise Ctrl-A pour accomplir une tâche différente. Par conséquent, lorsque vous appuyez sur Ctrl-A, le programme de terminal ne transmet pas le code ASCII un à bash, et bash ne le reçoit donc jamais. C'est pourquoi bash ne déplace pas votre curseur.

Une solution, et très probablement la meilleure solution, se trouve probablement dans les paramètres du programme de terminal (ce à quoi un commentaire, et une autre réponse sur cette page, font déjà référence).

Cependant, il existe probablement une autre solution de contournement facilement disponible. C'est simple : maintenez la touche Alt enfoncée et appuyez sur le chiffre un du pavé numérique. (Si vous utilisez un ordinateur portable, parfois les chiffres du pavé numérique ne sont pas disponibles à moins que vous ne mainteniez également enfoncée une touche étiquetée "Fn".) Après avoir appuyé et relâché le chiffre un du pavé numérique, relâchez la touche Alt.

Lorsque vous relâchez la touche Alt, le résultat sera probablement l'envoi du code ASCII spécifié (le code ASCII un) au programme de terminal.

Une autre approche, bien que certainement beaucoup plus compliquée, pourrait consister à somehow obtenir le code ASCII un dans votre presse-papiers, puis à faire coller le contenu de votre presse-papiers dans votre programme de terminal (ce qui peut souvent être fait en utilisant Ctrl-V).

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X