Question

Je trouve généralement des paramètres intéressants de KeyBinding zsh (par commande bindkey) sur le web. Ma question est de savoir comment puis-je interpréter ce que ces séquences échappées mis en correspondance? Par exemple, voici un extrait de oh-my-zsh 's key-bindings.zsh

bindkey "^[[H" beginning-of-line
bindkey "^[[1~" beginning-of-line
bindkey "^[[F"  end-of-line
bindkey "^[[4~" end-of-line

Y at-il une référence sur comment ces keymaps représentés? Aussi, est-il zsh spécifique ou spécifique plate-forme du tout?

Je sais que je peux utiliser soit cat ou Ctrl-V pour trouver la séquence correspondante pour échapper certaines touches. Étant donné que je pouvais la force brutale pour trouver le match inverse, mais cela ne marcherait pas pour les clés qui n'existent pas sur mon clavier (par exemple Accueil / Fin sur les ordinateurs portables Mac). Ainsi, je préfère les méthodes qui pourraient déterminer les touches du clavier quel que soit physique.

Était-ce utile?

La solution

Si on parle d'un unix / linux typique flux d'événements l'image est à peu près ce qui suit.

Le programme d'émulation de terminal les événements recieves X tels que Untel bouton enfoncé, un autre bouton est relâché. Ces événements peuvent être suivis avec xev utilitaire, par exemple. L'émulateur de terminal se traduit alors ces événements dans séquences d'échappement .

Cette traduction n'est pas gravée dans le marbre. Il peut être configuré. Différents émulateurs de terminaux sont configurés différemment. Par exemple xterm traduction peut être mis en place dans .Xdefaults comme ça:

XTerm*VT100*Translations:#override \
Ctrl<Key>Left:          string(0x1B) string(OD) \n\
Ctrl<Key>Right:          string(0x1B) string(OC) \n\

Note 0x1B qui est ESC. ESC est également imprimé ^ [.

, les utilisations zsh ZLE (et bash utilise la bibliothèque readline dans le même but) qui interprète certaines des séquences de se déplacer autour de la ligne d'entrée et effectuer des actions d'édition.

Les textes suivants devraient fournir des détails supplémentaires plus.

zsh Description de l'éditeur ligne

article de Wikipedia sur les séquences d'échappement

et

Xterm contrôle Sequences

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top