156 votes

Comment faire en sorte que contrôle + flèche gauche permettent de revenir en arrière d'un mot dans iTerm2 ?

En lisant le manuel de Linux, j'ai remarqué qu'il était indiqué que je pouvais utiliser les touches Ctrl+gauche et Ctrl+droite pour avancer ou reculer d'un mot dans le terminal pendant l'édition.

"En appuyant sur Ctrl et sur la touche de déplacement vers la gauche ou la droite, vous pouvez avancer ou reculer d'un mot à la fois, tout comme en appuyant sur Esc puis sur B ou F."

Sur OS X control+left y control+right contrôlent normalement les espaces. Je les ai désactivés. J'ai également essayé d'utiliser le volet des préférences pour définir les raccourcis clavier :

enter image description here

enter image description here

Cependant, cela ne fonctionne pas et provoque cette erreur :

enter image description here

De même, si je suis dans iTerm et que j'utilise alt+escape puis B ou F, le personnage se déplace d'avant en arrière. Cela se produisait avant tous mes changements de configuration. Mais j'aimerais vraiment pouvoir utiliser le contrôle + les touches fléchées.

169voto

slhck Points 209720

Bash

Il suffit d'ajouter ce qui suit à ~/.inputrc :

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

Voir ce post archivé du Wiki pour plus d'explications. Si vous voulez utiliser le alt pour le déplacement mot à mot (comme le comportement par défaut d'OS X), utilisez la touche :

"\e[1;9D": backward-word
"\e[1;9C": forward-word

zsh

Par défaut, zsh n'utilise pas l'option readline bibliothèque et ne liront donc pas ~/.inputrc . Pour obtenir la même fonctionnalité, vous pourriez ajouter ce qui suit à votre fichier ~/.zshrc à utiliser ctrl :

bindkey -e
bindkey '\e\e[C' forward-word
bindkey '\e\e[D' backward-word 

Pour utiliser le alt clé :

bindkey -e
bindkey '^[[1;9C' forward-word
bindkey '^[[1;9D' backward-word

Voir cette documentation pour en savoir plus sur l'éditeur de ligne intégré de zsh (zle).


Pourquoi ? Vous avez configuré votre profil pour utiliser les valeurs par défaut de Xterm :

enter image description here

C'est pourquoi vous devrez "attraper" cette séquence et dire à readline ce qu'il faut faire.


Si ce qui précède ne fonctionne toujours pas et que vous utilisez OS X 10.9 (Mavericks) ou plus, vous devez probablement désactiver les raccourcis globaux de Mission Control qui empêchent les touches Control+flèche d'atteindre iTerm, même si Mission Control lui-même est désactivé. Vous pouvez le faire à partir de Préférences système Raccourcis clavier Mission Control :

mission control keyboard prefs

112voto

Happy Torturer Points 901

Solution de travail pour zsh. Simple, direct, prêt à l'emploi.

  1. Goto : , Preferences Profiles Keys Keyboard Behavior

  2. Chargement de la présélection : Natural Text Editing

Load Preset "Natural Text Editing"

21voto

jbochi Points 181

Je l'ai réparé de cette façon :

Dans le menu supérieur, allez à

Profiles 
-> Open profiles... 
-> Edit profiles... (button) 
-> Keys (tab) 
-> Load Preset... (dropdown) 
->  Choose "Natural text editing". Done! :-)

enter image description here

7voto

chmac Points 457

J'ai utilisé une approche différente. En utilisant BetterTouchTool J'ai programmé un raccourci clavier personnalisé pour iTerm2. Lorsque j'appuie sur alt-gauche dans iTerm2, il envoie le raccourci clavier ctrl-gauche avec l'action "Envoyer le raccourci clavier à une application spécifique". L'application est iTerm2. J'ai fait la même chose pour alt-droite mappé sur ctrl-droite.

L'effet est que l'appui sur alt-gauche ou alt-droite dans iTerm envoie un ctrl-gauche ou un ctrl-droite directement à iTerm2, en contournant le raccourci habituel du système pour déplacer un bureau vers la gauche ou la droite. De cette façon, j'obtiens le comportement typique de Mac dans iTerm2, sur les sessions de terminal locales, mais aussi sur les sessions SSH distantes et je peux utiliser le ctrl-gauche / ctrl-droite standard pour passer à différents bureaux. Je l'ai écrit ici :

http://www.callum-macdonald.com/2013/04/17/ctrl-left-and-ctrl-right-on-iterm2/

7voto

nayyarv Points 71

En fait, j'ai trouvé que la solution la plus simple était d'aller dans mes paramètres de profil (trouvés dans Profils/Keys), en supprimant les raccourcis de profil en question (car le profil a priorité sur le global dans iTerm), dans mon cas alt+gauche et alt+droite et ensuite les raccourcis globaux ont fonctionné parfaitement pour moi !

De plus, si vous utilisez OS X, il est probablement préférable de s'en tenir aux raccourcis du système, c'est-à-dire d'utiliser plutôt alt+gauche et alt+droite dans ce but, avoir un comportement différent dans le terminal est voué à devenir pénible.

A part cela, la solution de chmac d'utiliser le Better Touch Tool était un moyen élégant de changer le comportement de control+flèche dans iterm seulement.

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