Terminal OS X équivalent à Ctrl + Gauche / Ctrl + Droite


19

Sous Windows et Linux, je pouvais toujours appuyer sur ctrl+ ou ctrl+ pour sauter un mot vers la gauche ou la droite dans le terminal. Dans les éditeurs de texte, il semble que + / fonctionne, mais pas de dés dans le terminal. J'ai cherché sur Google et je n'ai rien trouvé, sauf une page Wikipédia qui prétend + B/ Ffait le travail, mais tout ce qu'il fait, c'est imprimer les caractères ∫ et ƒ sur mon terminal (ou ı et Ï si je tiens ). Des idées?

Réponses:



12

Cela me rendait fou aussi, mais je ne voulais pas de correctif spécifique à Terminal car je n'utilise pas Terminal, et pour pouvoir SSH dans ma boîte OSX, il fallait aussi utiliser les raccourcis clavier appropriés.

Aussi, personnellement, je ne me souciais pas de la clé comme discuté plus tôt; Je voulais conserver la combinaison ctrl+ / à laquelle je suis habitué sous Linux.

Pour résoudre ce problème, j'ai ajouté ce qui suit à mon ~/.profile:

bind '"\e[5C": forward-word'
bind '"\e[5D": backward-word'
bind '"\e[1;5C": forward-word'
bind '"\e[1;5D": backward-word'

Notez que les deux premiers s'appliquent à bash dans Terminal ; les deux derniers s'appliquent à bash dans iTerm2 et aux connexions ssh entrantes . Ne me demandez pas pourquoi l'émulation du clavier est différente;)

Pour mémoire, j'ai pu trouver ce que les codes clés étaient réellement grâce à un indice de cette réponse stackoverflow : vous pouvez exécuter cat > /dev/nullpour surveiller les codes clés exacts envoyés lors d'une combinaison de touches.

(Notez que pour moi, lorsque je lance cat > /dev/nullet appuie sur ctrl+, cela produit ^[[1;5D. Votre code clé exact peut différer , mais le premier ^[est représenté comme \e, comme indiqué dans mon exemple de code.)

BTW, si vous voulez voir tous les raccourcis clavier bash actifs, exécutez bind -p.


J'aime utiliser xxdpour examiner la saisie au clavier. Vous pouvez voir le caractère affiché lorsque vous le tapez, puis xxdémet la valeur en hexadécimal lorsque vous tapez retour.
Chris Page

Parfait! Juste ce que je cherchais :) Je n'ai jamais eu la chance de faire les réglages "spécifiques à l'application" ci-dessus, mais cela fonctionne!
bisko

Assurez-vous que contrôle + gauche / droite ne sont pas mappés à des "espaces de commutation" dans vos sysprefs> clavier> raccourcis> exposé. Je n'avais pas d'autres espaces ouverts, il semblait donc que mon entrée au clavier ne fonctionnait pas.
sudo

6

À partir de Mac OS X Lion 10.7, Terminal mappe - / vers esc+ B/ Fpar défaut, il est donc désormais intégré pour bash et d'autres programmes qui utilisent ces raccourcis clavier compatibles emacs.


5

si vous savez comment utiliser vi, vous pouvez également activer le mode d'édition de ligne vi en utilisant set -o vivotre .bash_profileou à tout moment sur la ligne de commande. Ensuite, vous pouvez basculer entre les modes de commande vi et d'insertion. Vous pouvez donc appuyer sur Échap, puis utiliser les commandes vi pour naviguer sur la ligne:

0 = move to beginning of line
$ = move to end of line
w = move forward one word
b = move backward one word

Une fois que vous arrivez à la bonne position, vous pouvez utiliser les autres commandes vi pour entrer dans les modes d'insertion ou d'ajout, ou supprimer des caractères un par un, etc.


Je ne savais pas que vous pouviez utiliser 0 pour le début de la ligne, j'ai toujours utilisé ^
Jason Salaz

1
@vxjasonxv: ya, ^ se déplace vers le premier caractère non blanc, 0 se déplace vers la première colonne (que vous avez probablement déjà remarqué mais j'ai pensé que je le jetterais là pour les autres: P)
Robert S Ciaccio

1
OH WOW, C'EST MIEUX MIEUX, je ne l'avais pas encore remarqué! Oh mec, cette fonctionnalité (premier espace non blanc) de ^ m'a toujours énervé. Je vous remercie.
Jason Salaz

Bien sûr, ESC ^c'est génial quand vous en avez besoin, ce n'est ennuyeux que lorsque vous vouliez faire autre chose entièrement :)
ocodo

3

Ouvrez le terminal, accédez aux préférences, au clavier. Dans la liste, vous trouverez «Ctrl Curseur à droite» et «Ctrl Curseur à gauche».
Modifiez leurs actions attribuées respectivement à «\ 033f» et «\ 033b», et vous pourrez utiliser ctrl+ et ctrl+ pour vous déplacer, sans perdre votre touche alt.


2

Il semble que esc+ Bet esc+ Fsoient mappés par défaut pour aller au début et à la fin des mots. Cependant, pour mon système, vous ne pouvez pas maintenir enfoncé, escmais vous devez le ré-appuyer pour chaque mot.


1
Esc n'est jamais un modificateur, il passe simplement en mode "Escape" lorsque vous appuyez dessus, considérez-le comme une façon modale de faire les choses, contrairement à shift / ctrl / meta etc. (dans le schéma de
lecture

0

La dernière version du système d'exploitation mappe cela aux espaces. Même si vous avez désactivé les espaces, les raccourcis clavier peuvent toujours être court-circuités dans cet emplacement caché:

Touches de curseur Terminal.app: désactivez les Préférences Système -> Raccourcis -> Mission Control -> Déplacer vers la gauche d'un espace

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.