Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

zle en mode vi

6 réponses
Avatar
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.

6 réponses

Avatar
Stephane Chazelas
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

Avatar
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.

Si ta base terminfo n'est pas a jour


... il faut la réparer :)

Avatar
Stephane Chazelas
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


Avatar
mpg
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.


Avatar
Stephane Chazelas
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



Avatar
mpg
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.