En fonction du terminal, les touches spéciales génèreront une séquence de caractères particuliers (peut-être configurable au niveau du terminal), dont il faut ensuite que ton shell tienne compte.
Par exemple sur ma machine, la touche End produit ^[[F sous xterm, ^[[8~ sous rxvt. Pour voir la séquence exacte, j'utilise la commande "cat" sans rien, puis je tappe sur la touche, puis Ctrl+C pour quitter le cat.
Ensuite, il faut que le shell en tienne compte. A priori avec bash c'est readline qui s'en charge, et les fichiers /etc/inputrc et ~/.inputrc qui sont sollicités. Je copie là mon ~/.inputrc qui contient la séquence incriminée, et d'autres trucs pratiques :
-=-=---=-=---=-=---=-=---=-=--
# Show all if ambigious.
set show-all-if-ambiguous on
# 8Bits supports.
set meta-flag on
set convert-meta off
set input-meta on
set output-meta on
[^] # Re: Ctrl+e
Posté par gc . En réponse au message Touche fin de ligne ne fonctionne pas. Évalué à 4.
Par exemple sur ma machine, la touche End produit ^[[F sous xterm, ^[[8~ sous rxvt. Pour voir la séquence exacte, j'utilise la commande "cat" sans rien, puis je tappe sur la touche, puis Ctrl+C pour quitter le cat.
Ensuite, il faut que le shell en tienne compte. A priori avec bash c'est readline qui s'en charge, et les fichiers /etc/inputrc et ~/.inputrc qui sont sollicités. Je copie là mon ~/.inputrc qui contient la séquence incriminée, et d'autres trucs pratiques :
-=-=---=-=---=-=---=-=---=-=--
# Show all if ambigious.
set show-all-if-ambiguous on
# 8Bits supports.
set meta-flag on
set convert-meta off
set input-meta on
set output-meta on
# Keyboard configuration
"^[[2~": yank # Insert
"^[[3~": delete-char # Suppr
"^[[7~": beginning-of-line # Home
"^[[8~": end-of-line # End
"^[[1~": beginning-of-line # Home
"^[[4~": end-of-line # End
"^[[5~": previous-history # Previous
"^[[6~": next-history # Next
"^[^[": kill-whole-line # Escape-Escape
-=-=---=-=---=-=---=-=---=-=--
Il y a des tonnes de choses intéressantes dans bash(1).