Je viens de passer de bash à zsh, mais mon Alt+ LeftArrowKeyet Alt+ me manque RightArrowKeypour aller et venir un mot à la fois.
En ce moment, si j'appuie sur Alt+, LeftArrowKeyje recule quelques lettres et je suis coincé. Je n'irai pas plus loin en arrière et je ne reviendrai pas à la fin de la ligne avec Alt+ RightArrowKeycomme 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-dernier. Impossible de saisir de nouveaux caractères sur la ligne ni de supprimer.
Comment récupérer mon raccourci préféré?
Je suis sur Mac OS X en utilisant Terminal si c'est important.
^[[D
pour moi tandis que ctrl + v faisait un rapport^[OD
. La suggestion de Ctrl + v a fonctionné, mais pas celle de chat. De plus, ctrl + v signalait la même chose pour les deux alt + <- et alt + ->. J'ai pu ajouter ces deux en regardant la sortie de chat et en remplaçant tout "[[" par "O"^[^[[C
pour le mot avant et^[^[[D
pour le mot arrière, mais la mise à jour pour ceux-ci dans .zshrc n'a pas fonctionné pour une raison quelconque.bindkey "^[^[[D" backward-word
etbindkey "^[^[[C" forward-word
dans ~ / .zprofile travaillé pour moi!Pour toute personne utilisant iTerm, quel que soit le shell
Toutes les solutions proposées ici adoptent une approche à rebours à mon avis. 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, ce qui crée des problèmes de compatibilité lorsque vous changez de shell (si vous vous connectez à 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 pré-liées. De plus, bien qu'ils ne soient pas cohérents à 100%, ils sont suffisamment proches. Donc, 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 que votre terminal réponde au plus près des raccourcis clavier natifs ici
Ouvrez les préférences iTerm ⌘+ ,et accédez à l'
Profiles
onglet (l'Keys
onglet peut être utilisé, mais l'ajout de raccourcis clavier à votre profil vous permet d' enregistrer votre profil et de le synchroniser sur plusieurs ordinateurs) et lekeys
sous-onglet et entrez ce qui suit:Déplacer le curseur d'un mot vers la gauche
Déplacer le curseur d'un mot vers la droite
Et cela devrait vous donner le comportement souhaité non seulement dans ZSH, mais également si vous vous connectez à un serveur exécutant BASH, irb / pry, node, etc.
la source
bindkey | grep forward-word
vous devriez voir"^[f" forward-word
renvoyé, mais si vous ne le faites pas, vous avez 2 options. map à l'un des autres retournés, ou ajouter"^[f" forward-word
à votre.zshrc
."^[f"
semble être la liaison la plus systématiquement utilisée pour lesforward-word
shells, et la seule définie par défaut dans ma version de bash.L'ajout de ce qui suit à ~ / .zshrc a fonctionné pour moi sur OSX Mountain Lion.
la source
bindkey "\e\e[D" backward-word
bindkey "\e\e[C" forward-word
Sur MacOS High Siera 10.13.6 ou Mojave 10.14.2 et en utilisant iTerm2 avec ZSH Pour passer des mots, je dois mettre comme ceci:
Une autre solution ne fonctionne pas pour le moment
la source
Bien que ne répondant pas strictement à votre question, la liaison par défaut pour
forward-word
etbackward-word
sontalt-f
resp.alt-b
.Cela fonctionne partout, ne vous oblige pas à quitter la ligne de départ et a une belle propriété mnémotechnique (f = avant, b = arrière), tout en étant cohérent avec
ctrl-f
etctrl-b
étantforward-character
etbackward-character
.Arrachez vos touches fléchées!
la source
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 des codes hexadécimaux: 0x1b 0x62
et ajoutez ce qui suit à mon
~/.zshrc
la source
bindkey
s à la place, pour vous lier^[f
àforward-word
et non pourbackward-word
.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:
Vous pouvez utiliser CTRL + V puis la commande que vous souhaitez utiliser
dans Yosemite, utilisez la solution de Rob
la source
bindkey "[C" forward-word bindkey "[D" backward-word
Dans zsh, vous pouvez utiliser la
bindkey
commande pour afficher les raccourcis clavier.Permet
bindkey
d'explorer les options disponibles sans raccourcis clavier personnalisés.A savoir
^[b
reculer d'un mot et^[f
avancer d'un mot.la source