Comme souvent, en console, par défaut, il y a certaines touches qui ne marchent pas comme on voudrait, qui renvoient un “beep” ou affichent un '~'. Je pense en particulier a inser/suppr/home/fin/pgup/pgdown.. la manip suivante a été testée sur zsh/bash/tcsh.

La méthode la moins gruiik que j'ai trouvé juste ici consiste a binder ces touches sur les commandes appropriées du shell (liste des commandes possibles du shell accessible par bind -v)

Tout d'abord, on récupère le keycode correspondant à la touche, grâce a cat -v. Ici, YMMV évidemment. Les codes suivants sont pour mon OpenBSD :

landry@spud[~]#cat -v
^[[2~ <= appui sur la touche 'inser'
^[[3~ <= appui sur la touche 'suppr'
^[[1~ <= appui sur la touche 'home'
^[[4~ <= appui sur la touche 'end'
^[[5~ <= appui sur la touche 'pgup'
^[[6~ <= appui sur la touche 'pgdown'

Ensuite, on rajoute les commandes suivantes a son .profile/.bashrc/.zshrc/.cshrc/.BLAHrc. Pareil, ce sont mes réglages perso, YMMV itou.

bind '"\M-[3~": delete-char'
bind '"\M-[4~": end-of-line'
bind '"\M-[5~": history-search-forward'
bind '"\M-[6~": history-search-backward'

Nota: ici, le \M- serait un caractère caballistique d'échappement, il faudra surement adapter sur votre setup. Par exemple, avec vim, entrez le début de la ligne jusqu'à la double-quote, puis Ctrl-V puis la touche désirée : vim convertira tout seul votre entrée avec le bon caractère d'échappement.

addendum: sur mon zsh, ca passe pas dans le .zshrc apres avoir essuyé un echec en essayant dans le .profile, une rapide recherche m'a indiqué que pour que zsh râle pas il fallait en fait lui mettre :

 bindkey '^[[1~' beginning-of-line       # Home
 bindkey '^[[3~' delete-char             # Del
 bindkey '^[[4~' end-of-line             # End
 bindkey '^[[2~' overwrite-mode          # Insert
 bindkey '^[[5~' history-search-backward # PgUp
 bindkey '^[[6~' history-search-forward  # PgDn

et hop, cette fois ci zsh est aussi beau que le bash de mon voisin.

Et voila, fini les ~~~~ et les 'BEEPtusaispasconfigurertonclavier' en console !!!

unix/console_inser_suppr.txt · Last modified: 2010/01/12 13:29 (external edit)