Comment passer confortablement en mode de commande vi sur la ligne de commande zsh?


22

Dans vi, j'ai mappé 'jj' pour s'échapper afin de pouvoir passer en mode commande sans utiliser la touche d'échappement ennuyeuse. Maintenant, je veux avoir la même chose pour l'édition de ligne de commande pour laquelle j'utilise vi-mode. J'ai déjà trouvé la solution suivante:

bindkey '^j' vi-cmd-mode

vous permet de passer avec control-j en mode commande. Toujours à la recherche d'une solution sans touches de modification comme 'jj' ou quelque chose de similaire.


4
Pourquoi ne pas simplement remapper Caps Lock à Escape?
kyrias

Réponses:


30

Remarque: vous devez rechercher man zshzlede nombreux avantages sur la personnalisation bindkeyet l'émulation GNU readline.

Voici comment je mappé jjà Esc:

bindkey -M viins 'jj' vi-cmd-mode

Si vous souhaitez faire la distinction entre le mode insertion et le mode normal, vous pouvez essayer la suggestion mentionnée par akira ici


Ouais! marche parfaitement. Merci beaucoup!
Eman Resu

Existe-t-il des conditions préalables qui doivent être remplies avant que cela fonctionne dans zsh? Ou des moyens de déboguer les raccourcis clavier? Après avoir inséré cette commande, rien ne se passe. jj ne fonctionne toujours pas.
UltraMaster

5
J'avais réglé KEYTIMEOUT trop bas, c'était la raison.
UltraMaster

@Ultramaster fait un bon point. Si vous définissez déjà la KEYTIMEOUT pour la vitesse, je recommanderais> = 20 millisecondes. Tels queexport KEYTIMEOUT=20
craft
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.