zle en mode vi

Le
mpg
Bonjour,

Nouveau venu sous zsh, et utilisateur de vim, j'essaye le mode vi de zle, et
j'en suis globalement très satisfait, sauf sur un point. Quand, en "mode
insertion", j'essaie d'utiliser la touche suppr, cela ne produit pas du
tout l'effet escompté : l'effet semble être de changer la casse des
caractères suivants, avant de passer en mode normal Bon alors peut-être
que sous vi ça fait vraiment ça (?), mais ce n'est pas du tout ce à quoi je
suis habitué sous vim, donc ça me trouble un peu.

C'est normal ? Il y a moyen de régler ça ?

Manuel.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Stephane Chazelas
Le #115514
2007-11-04, 18:19(+01), mpg:
Bonjour,

Nouveau venu sous zsh, et utilisateur de vim, j'essaye le mode vi de zle, et
j'en suis globalement très satisfait, sauf sur un point. Quand, en "mode
insertion", j'essaie d'utiliser la touche suppr, cela ne produit pas du
tout l'effet escompté : l'effet semble être de changer la casse des
caractères suivants, avant de passer en mode normal... Bon alors peut-être
que sous vi ça fait vraiment ça (?), mais ce n'est pas du tout ce à quoi je
suis habitué sous vim, donc ça me trouble un peu.

C'est normal ? Il y a moyen de régler ça ?
[...]


Non, c'est parce que quand tu presses <Suppr>, le terminal
envoie quelquechose comme:

e[3~

Et c'est le ~ qui change la casse.

Essaie:

bindkey -M viins $terminfo[kdch1] vi-delete-char

Si ta base terminfo n'est pas a jour, tu peux le hardcoder:

bindkey -M viins 'e[3~' vi-delete-char

--
Stéphane

Nicolas George
Le #115377
Stephane Chazelas wrote in message
bindkey -M viins $terminfo[kdch1] vi-delete-char


Attention, avec certaines terminfo, les séquences de touches sont codées
pour un terminal en « mode application », où Esc[ est remplacé par EscO.

Si ta base terminfo n'est pas a jour


... il faut la réparer :)

Stephane Chazelas
Le #115374
2007-11-04, 20:21(+00), Nicolas George:
Stephane Chazelas wrote in message
bindkey -M viins $terminfo[kdch1] vi-delete-char


Attention, avec certaines terminfo, les séquences de touches sont codées
pour un terminal en « mode application », où Esc[ est remplacé par EscO.
[...]


Pas pour <Delete> toutefois je crois. Ca s'applique aux cursor
keys et parfois a <Home> et <End>.

--
Stéphane


mpg
Le #117167
Bonjour,

je reviens un peu tard sur cette question. Ce genre de trucs (problèmes
d'encodage des trucs avant d'arriver dans un fichier) me font toujours un
peu peur, mais j'essaie.

Le (on) dimanche 04 novembre 2007 20:12, Stephane Chazelas a écrit (wrote) :
C'est normal ? Il y a moyen de régler ça ?
[...]


Essaie:

bindkey -M viins $terminfo[kdch1] vi-delete-char

Oki, alors j'essaie de comprendre.


bindkey -M viins : je veux modifier une association de touches dans le mode
d'insertion du mode vi...
$terminfo : visiblement un tableau qui comporte des infos sur mon (?)
terminal, créé par je ne sais qui à partir de je ne sais quoi
[kdch1] : alors ça veut dire que dans ce tableau, on va regarder la case qui
correspond à la touche suppr ? Comme on sait qu'il faut écrire kdch1 pour
ça ?
vi-delete-char : bah là je crois que c'est clair.

C'est bien ça ?

Si ta base terminfo n'est pas a jour, tu peux le hardcoder:

Elle vient d'où ma base terminfo ? C'est zsh qui la génère en se basant sur

ce que je déclare comme $TERM, et des infos personnelles qu'il a sur les
terminaux, ou c'est un truc centralisé au niveau du système ? Parce que si
c'est la deuxième option, j'ai peur que ça passe pas dans certains cas
(genre si je me connecte en ssh sur un système ou rxvt n'est pas installé,
alors que j'utilise justement rxvt chez moi).

bindkey -M viins 'e[3~' vi-delete-char

Par contre si je change de terminal régulièrement, ça risque d'être un peu

lourd, de hardcoder les trucs comme ça ?

Manuel.


Stephane Chazelas
Le #117024
On Wed, 14 Nov 2007 16:14:44 +0100, mpg wrote:
Bonjour,

je reviens un peu tard sur cette question. Ce genre de trucs (problèmes
d'encodage des trucs avant d'arriver dans un fichier) me font toujours un
peu peur, mais j'essaie.

Le (on) dimanche 04 novembre 2007 20:12, Stephane Chazelas a écrit (wrote) :
C'est normal ? Il y a moyen de régler ça ?
[...]


Essaie:

bindkey -M viins $terminfo[kdch1] vi-delete-char

Oki, alors j'essaie de comprendre.

[...]


Des fois, le manuel, ca aide pour comprendre:

info -f zsh -n 'The zsh/terminfo Module'

Ou tape "info zsh", puis "i" puis "terminfo" (tu peux utiliser
<Tab> pour la completion).

Au sujet de terminfo:

man 5 terminfo

--
Stephane



mpg
Le #117021
Le (on) jeudi 15 novembre 2007 15:50, Stephane Chazelas a écrit (wrote) :
Oki, alors j'essaie de comprendre.
[...]


Des fois, le manuel, ca aide pour comprendre:

Pas faux. Sur le coup, j'étais tellement persuadé que terminfo était un truc

compliqué planqué dans un des nombreuses pages de man de zsh, que je n'ai
même pas essayé de chercher. Le pire c'est que quand c'est mes étudiants
qui cherchent même pas parce qu'ils y croient pas, ça m'énerve. Bref.

info -f zsh -n 'The zsh/terminfo Module'

Ou tape "info zsh", puis "i" puis "terminfo" (tu peux utiliser
<Tab> pour la completion).

Là ça confirme qu'un de ces 4 il faut que j'apprenne à utiliser info, ça a

l'air cool le i. (Oui, je sais, man info ou info info...)

Au sujet de terminfo:

man 5 terminfo

Là par contre je suis vraiment trop c*n de pas avoir essayé.


Bon, vais lire tout ça et reviens vous voir si ça bloque toujours.

Manuel.


Publicité
Poster une réponse
Anonyme