J'utilise Vim /etc/zsh/zshrc
pour append des raccourcis keyboard pour zsh
car cela ne fonctionne pas avec inputrc
. Dans mon terminal avec tmux quand je tape Ctrl + v puis Ctrl + LeftArrow le shell montrera ^[OD
. Cependant, lorsque je suis en mode d'insertion Vim, en appuyant sur la même séquence, ^[[D
J'ai découvert que ^[[D
est ce que le shell produit quand je tape Ctrl + v puis LeftArrow . J'ai également changé ^[[D
à ^[OD
dans le file /etc/zsh/zshrc
et cela fonctionne comme prévu (en appuyant sur Ctrl + LeftArrow , le slider returnne un mot). Voici la ligne dont je parle:
bindkey "^[OD" backward-word
Je suppose que quelque chose ne va pas avec Vim car il consum le Ctrl . Comment puis-je réparer ça?
C'est en fait votre terminal qui fait quelque chose de bizarre, pas Vim. Les terminaux ont deux séries de séquences de contrôle associées aux touches de slider, pour des raisons historiques : une pour les applications en plein écran, souvent appelées «mode touches de slider d'application» et une pour les applications d' printing en lecture-écriture .
Autrefois, les applications d'printing en lecture-écriture n'avaient pas de fonctions d'édition de ligne, et le terminal, ou le pilote du terminal OS, devait éventuellement devenir plus sophistiqué. Le terminal a donc envoyé des séquences de contrôle destinées au pilote du terminal. D'une manière ou d'une autre, les pilotes de terminal Unix n'ont jamais obtenu de fonctionnalités d'édition de ligne décentes; ceux-ci ont été ajoutés aux applications à la place (par exemple à travers la bibliothèque readline).
Votre terminal envoie des commands ␛OD
pour Ctrl + Gauche en mode édition de ligne et ␛[D
dans le mode des touches de slider d'application. Vous avez deux options: