[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: readline & séquence ESC : comment ça marche ?



Le Wed, 25 Feb 2009 08:18:14 +0100,
pfx <patrick.ficheux@wanadoo.fr> a écrit :

> bonjour,

	Salut,
 
> je rencontre des différences de fonctionnement pour l'édition de la
> ligne de commande du shell (bash)
vaste problème...
> parfois home/end/Ctrl-FlecheGauche fonctionne comme attendu, parfois
> cela ne fait que des tilde ou autres symboles
> ces différences apparaissent lorsque j'utilise le bash dans différents
> contextes (rxvt, console linux, ssh via putty, ssh via cygwin ...)
> 
> j'ai compris, me semble t il, que les actions affectées aux touches
> sont définies dans ~/.inputrc et utilisées par readline.
Entre autres ; bash y est aussi pour quelque chose, mais surtout la
librairie terminfo (qui utilise la variable d'environnement TERM)...
 
> Chaque touche est défini par une séquence d'échappement ... et c'est
> là que cela devient moins clair
> 
> Je crois comprendre que chaque terminal génère sa propre séquence ESC
> pour une touche (ou combinaison de touches) données. Et ces séquences
> ne sont pas forcément identiques selon le terminal.
> Est ce parce qu'à l'origine les fabricants de terminaux faisaient leur
> sauce chacun dans leur coin ?
fabricants, systèmes d'exploitations, applications...

> Pour que readline fonctionne avec différents terminaux, il suffirait
> donc que je mette des sections $if / $endif avec les paramètres
> spécifiques ?
Généralement la variable TERM sert à cela. inputrc peut également
jouer, surtout pour des réglages fins. Voir également le mode d'édition
de bash, à savoir 'set -e vi' ou 'set -e emacs' ...
> 
> Les séquences ESC ne sont pas franchement très lisible :
> par ex, [HOME] me donne ^[[1~
> Y a t il un "dictionnaire" quelque part associant des noms symboliques
> de touches aux séquences ESC ?
> (comme XK_Home pour X11 par exemple)
> Existe t il une commande affichant la correspondance <nom de la
> touche> / <séquence escape correspondante> ?
Cela dépend du terminal :-(

	Fred.


Reply to: