Sous Windows et Linux, je pouvais toujours taper ctrl + ← ou ctrl + → pour sauter un mot à gauche ou à droite dans le terminal. Dans les éditeurs de texte, il semble que ⌥ + ← / → fonctionne, mais pas dans le terminal. J'ai cherché sur Google et je n'ai rien trouvé, à part une page Wikipédia qui prétend que ⌥ + B / F fait le travail, mais tout ce qu'il fait, c'est d'imprimer les caractères et ƒ sur mon terminal (ou et Ï si je maintiens le bouton de la souris enfoncé). ⇧ ). Avez-vous des idées ?
Réponses
Trop de publicités?Cela me rendait fou aussi, mais je ne voulais pas d'un correctif spécifique à Terminal, car je n'utilise pas Terminal, et pour pouvoir se connecter en SSH à ma boîte OSX, il fallait aussi utiliser les bons raccourcis clavier.
Aussi, personnellement, je ne me suis pas soucié de la ⌥ comme nous l'avons vu plus haut ; je voulais conserver la touche ctrl + ← / → que j'ai l'habitude d'utiliser sous Linux.
Pour résoudre ce problème, j'ai ajouté ce qui suit à mon fichier ~/.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 y ssh entrant connexions. Ne me demandez pas pourquoi l'émulation du clavier est différente ;)
Pour l'anecdote, j'ai pu trouver quels étaient les codes clés grâce à un conseil de cette réponse de stackoverflow : Vous pouvez exécuter cat > /dev/null
pour surveiller les codes de touche exacts envoyés lors d'une combinaison de touches.
(Notez que pour moi, lorsque j'exécute cat > /dev/null
et appuyez sur ctrl + ← il produit ^[[1;5D
. Votre code clé exact peut être différent mais le premier ^[
est représenté par \e
comme le montre mon exemple de code).
BTW, si vous voulez voir toutes les combinaisons de touches actives de bash, exécutez bind -p
.
Si vous savez utiliser vi, vous pouvez également activer le mode d'édition de ligne vi en utilisant set -o vi
dans votre .bash_profile
ou à tout moment sur la ligne de commande. Vous pouvez alors passer du mode commande au mode insertion de vi. Vous pouvez donc appuyer sur Echap, 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 avez atteint la bonne position, vous pouvez utiliser les autres commandes vi pour passer en mode insertion ou ajout, ou supprimer les caractères un par un, etc.
Ouvrez le terminal, allez dans les préférences, le clavier. Dans la liste, vous trouverez "ctrl curseur droit" et "ctrl curseur gauche".
Changez leurs actions assignées en " \033f " et " \033b " respectivement, et vous serez en mesure d'utiliser ctrl + → y ctrl + ← pour bouger, sans perdre votre touche alt.
- Réponses précédentes
- Plus de réponses