Je suis récemment passé de bash à zsh, mais je manque mon Alt+LeftArrowKey et Alt+RightArrowKey pour aller et venir une Parole à la fois.
En ce moment, si j'appuie sur Alt+LeftArrowKey Je remonte quelques lettres et puis je suis coincé. Je n'irai pas plus loin en arrière et ça ne reviendra pas à la fin de la ligne avec Alt+RightArrowKey comme je m'y attendais. Je ne peux même pas utiliser les touches fléchées pour aller à la fin de la ligne, seulement à l'avant-dernière. Impossible de saisir de nouveaux caractères sur la ligne ou de supprimer.
Comment récupérer mon raccourci bien-aimé?
Je suis sur Mac OS X en utilisant Terminal si c'est important.
Exécutez cat
puis appuyez sur les touches pour voir les codes envoyés par votre raccourci.
(Presse Ctrl+C pour tuer le cat
lorsque vous avez terminé.)
Pour moi, (ubuntu, konsole, xterm) en appuyant Alt+← envoie ^[[1;3D
, donc je mettrais mon . zshrc
bindkey "^[[1;3C" forward-Word
bindkey "^[[1;3D" backward-Word
(En fait, je préfère utiliser Ctrl + flèche pour déplacer Word par Word, comme dans une zone de texte normale sous windows ou linux gui.)
Question connexe: Correction des paramètres clés (Accueil/Fin/Insérer/Supprimer) dans .zshrc lors de l'exécution de Zsh dans Terminator Terminal Emulator
Pour toute personne utilisant iTerm, indépendamment de Shell
À mon avis, toutes les solutions proposées ici ont une approche à rebours. Vous dites essentiellement à votre shell d'écouter une séquence esc ou une autre liaison de clé que vous avez définie dans votre terminal, créant des problèmes de compatibilité lorsque vous changez de shell (si vous SSH dans un autre shell, passez de BASH à ZSH, etc. et vous perdez certains sinon tous vos raccourcis clavier).
La plupart des shells ont un ensemble de séquences par défaut qui sont pré-liées. De plus, bien qu'ils ne soient pas 100% cohérents, ils sont assez proches. Ainsi, le moyen le plus simple que j'ai trouvé pour créer des raccourcis clavier pour une action particulière dans le shell est de dire à votre application de terminal de se lier aux raccourcis clavier par défaut qui sont cohérents entre les shells.
J'ai écrit une solution compressive pour obtenir que votre terminal réponde au plus près des raccourcis clavier natifs ici
Ouvrez les préférences iTerm ⌘+, et accédez à l'onglet Profiles
(l'onglet Keys
peut être utilisé, mais l'ajout de raccourcis clavier à votre profil vous permet de enregistrer votre profil et de le synchroniser avec plusieurs ordinateurs) et le sous-onglet keys
et entrez les informations suivantes:
Déplacer le curseur d'un mot vers la gauche
⌥+← Envoyer des codes hexadécimaux:
0x1b 0x62
Déplacer le curseur d'un mot vers la droite
⌥+→ Envoyer des codes hexadécimaux:
0x1b 0x66
Et cela devrait vous donner le comportement souhaité non seulement dans ZSH, mais aussi si vous vous connectez à un serveur exécutant BASH, irb/pry, node, etc.
L'ajout de ce qui suit à ~/.zshrc a fonctionné pour moi sur OSX Mountain Lion.
bindkey -e
bindkey '[C' forward-Word
bindkey '[D' backward-Word
Sur MacOS High Sierra 10.13.6 ou Mojave 10.14.2 et en utilisant iTerm2 avec ZSH Pour passer des mots, je dois mettre comme ceci:
bindkey "\e\e[D" backward-Word
bindkey "\e\e[C" forward-Word
Une autre solution ne marche pas
Bien que ne répondant pas strictement à votre question, la liaison par défaut pour forward-Word
et backward-Word
sont alt-f
resp. alt-b
.
Cela fonctionne partout, ne vous oblige pas à quitter la ligne de départ et possède une propriété mnémonique Nice (f = avant, b = arrière), tout en étant cohérent avec ctrl-f
et ctrl-b
étant forward-character
et backward-character
.
Déchirez vos touches fléchées!
Sur Mavericks (10.9.4), le code est 1; 5 ... donc pour lier alt avec des flèches, j'ai mon .zshrc en utilisant ceci:
bindkey "^[[1;5C" forward-Word
bindkey "^[[1;5D" backward-Word
Vous pouvez utiliser CTRL + V puis la commande que vous souhaitez utiliser
à Yosemite, utilisez la solution de Rob
Pour que cela fonctionne pour moi, j'ai utilisé cette réponse , mais j'ai dû échanger les codes (gauche <-> droite)
⌥ + ← Envoyer des codes hexadécimaux: 0x1b 0x66
⌥ + → Envoyer les codes hexadécimaux: 0x1b 0x62
et ajoutez ce qui suit à mon ~/.zshrc
bindkey -e
bindkey "^[b" forward-Word
bindkey '^[f' backward-Word
Dans zsh, vous pouvez utiliser la commande bindkey
pour voir les raccourcis clavier.
Utilisez bindkey
pour explorer les options disponibles sans raccourcis clavier personnalisés.
À savoir ^[b
pour reculer d'un mot et ^[f
pour avancer un mot.