OVH Cloud OVH Cloud

zsh keybinding

6 réponses
Avatar
William
bonjour,

avec mon terminal (un dérivé de gnome-terminal)

je n'arrive pas à aller en début de ligne et fin de ligne
touche HOME ou END // Ctrl+A ou Ctrl+E
je me demandais s'il est possible d'utilser la fcontion
bindkey pour cela et si oui quel en est le 3 eme paramètre ?

merci

PS oui zsh j'y viens petit à petit

--
William.

6 réponses

Avatar
Laurent Wacrenier
William écrit:
je n'arrive pas à aller en début de ligne et fin de ligne
touche HOME ou END // Ctrl+A ou Ctrl+E


Que signifie // ?

je me demandais s'il est possible d'utilser la fcontion
bindkey pour cela et si oui quel en est le 3 eme paramètre ?


Oui. bindkey n'a que 2 paramêtres.

Avatar
Stephane Chazelas
2003/10/29, 19:06(+01), William:
[...]
je n'arrive pas à aller en début de ligne et fin de ligne
touche HOME ou END // Ctrl+A ou Ctrl+E
je me demandais s'il est possible d'utilser la fcontion
bindkey pour cela et si oui quel en est le 3 eme paramètre ?


bindkey 'e[7~' beginning-of-line
bindkey 'e[8~' end-of-line

ou

bindkey 'e[1~' beginning-of-line
bindkey 'e[4~' end-of-line

Je ne sais pas ce que renvoie gnome-terminal sur la frappe de
HOME/END.

Si ta base terminfo est correcte (et que tu utilises zsh 4.1):

bindkey $terminfo[khome] beginning-of-line
bindkey $terminfo[kend] end-of-line

devrait le faire.

(c'est quoi cette histoire de 3e paramètre ?
info -f zsh --index-search=bindkey)

--
Stéphane ["Stephane.Chazelas" arobase "free.fr"]

Avatar
William
On Wed, 29 Oct 2003 19:09:57 +0100, Laurent Wacrenier wrote:

William écrit:
je n'arrive pas à aller en début de ligne et fin de ligne touche HOME
ou END // Ctrl+A ou Ctrl+E


Que signifie // ?


HOME et Ctrl+A sont sensé donner le même comportement
END et Ctrl+E de même le // rien d'autre qu'une mise en forme pour
mettre en parrallèle entre ces deux commande.


je me demandais s'il est possible d'utilser la fcontion bindkey pour
cela et si oui quel en est le 3 eme paramètre ?


Oui. bindkey n'a que 2 paramêtres.


pardon je voulais dire le second paramètre pour aller en début/fin de
ligne.

--
William.


Avatar
Stephane Chazelas
2003/10/29, 20:54(+01), William:
[...]
pardon je voulais dire le second paramètre pour aller en début/fin de
ligne.


Tu peux faire

bindkey '...' <Ctrl-D>

<Ctrl-D> (ou <Tab>) qui te donnera une liste de completions
possibles.

Exemple:

~$ bindkey $terminfo[k<Ctrl-D> 21:37
kDC kRIT kdch1 kf14 kf20 kf27 kf33 kf4 kf46 kf9
kEND kb2 kend kf15 kf21 kf28 kf34 kf40 kf47 khome
kHOM kbs kf1 kf16 kf22 kf29 kf35 kf41 kf48 kich1
kIC kcub1 kf10 kf17 kf23 kf3 kf36 kf42 kf5 km
kLFT kcud1 kf11 kf18 kf24 kf30 kf37 kf43 kf6 knp
kNXT kcuf1 kf12 kf19 kf25 kf31 kf38 kf44 kf7 kpp
kPRV kcuu1 kf13 kf2 kf26 kf32 kf39 kf45 kf8
(dans ce contexte, zsh complete sur les clef tu hash $terminfo)

~$ bindkey $terminfo[khome] beg<Ctrl-D> 21:37
beginning-of-buffer-or-history beginning-of-line
beginning-of-history beginning-of-line-hist
(ici, il complete sur les widgets zle)

sinon, dans info, tu as aussi en principe la completion sur
l'index, l'index des pages info de zsh est assez bien fait.

Tu fais 'i' pour avoir le prompt d'index, puis beg<Tab><Tab>

Si tu te mets à zsh, tu vas vite découvrir à quel point la
complétion peut etre utile.

Es-tu déjà passé par la case "compinstall" ?

Un véritable expérience, la complétion de zsh ; on en découvre
tous les jours. Hier, pour moi, c'était « cd ~-<Tab> »

--
Stéphane ["Stephane.Chazelas" arobase "free.fr"]

Avatar
Laurent Wacrenier
William écrit:

pardon je voulais dire le second paramètre pour aller en début/fin de
ligne.



Lancer
bindkey '^A'
bindkey '^E'
pour savoir quelles sont les fonction associées

Avatar
William
On Wed, 29 Oct 2003 19:49:13 +0100, Stephane Chazelas wrote:

bindkey 'e[7~' beginning-of-line
bindkey 'e[8~' end-of-line

ou

bindkey 'e[1~' beginning-of-line
bindkey 'e[4~' end-of-line


yep ça marche nickel maintenant ... Je me demande si ce n'est le fait de
l'avoir mis en shell par défaut qui change (il doit y avoir des variable
mal initialisé par mon .bashrc) Merci.

--
William.