lier la séquence de touches à Escape, zsh


11

Comment puis-je la carte jjà Escen zsh?

J'essaie de recréer un mappage de touches que j'ai configuré dans vim, où j'ai jjmappé pour ESCque chaque fois que j'appuie deux fois j, il envoie l'an <Esc>à vim - me permettant d'entrer en mode normal avec plus de commodité.

J'ai déjà essayé bindkey 'jj' ^[et je suis sur le point d'essayer bindkey 'jj' ^[[, mais je doute que cela fonctionne. J'ai également vérifié la liste des commandes fournies par zsh en mode normal, mais je n'ai rien vu qui contenait normalou escape.

REMARQUE
Les ^[caractères de mon ~/.zshrcfichier sont de véritables échappements codés en dur; pas seulement les personnages ^et [.

Réponses:


12

Vous devez -slier des chaînes réelles au lieu de widgets:

bindkey -s jj '\e'

Bien que vous souhaitiez probablement mapper jjle vi-cmd-modewidget ici:

bindkey jj vi-cmd-mode

(notez que c'est pour la liaison en mode insertion, pas en mode normal / commande)


1
le second fonctionne comme un charme, merci!
Alexej Magura

2
Le paramètre REMARQUEKEYTIMEOUT semble rompre le raccourci clavier.
Alexej Magura

@AlexejMagura vient d'ajouter: un réglage KEYTIMEOUT trop bas interdit à zle de reconnaître le double appui.
UltraMaster
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.