English version

Utilisation de Ctrl+BackSpace dans xterm

Cet article explique comment on peut utiliser la combinaison de touches Ctrl+BackSpace dans xterm et certaines applications tournant dans ce terminal. On peut probablement faire le même genre de chose pour d'autres terminaux texte.

Dans un terminal texte, alors que certaines combinaisons de touches génèrent des séquences d'échappement spécifiques, ce n'est pas le cas de Ctrl+BackSpace, qui génère typiquement le caractère de code 8, exactement comme la combinaison Ctrl+H. Donc par défaut, on ne peut pas différencier ces deux combinaisons de touches. L'idée est de configurer xterm pour générer une séquence d'échappement inutilisée. J'ai choisi "\033[7;5~" (écrit aussi "\e[7;5~", suivant l'application), le code \033 ou \e représentant le caractère d'échappement Escape d'ASCII. Pour cela, on ajoute une ressource X du style:

*VT100*translations: #override \n\
        Ctrl<Key>BackSpace: string("\033[7;5~")

Il y a diverses façons de faire cela. Ce ne sera pas discuté ici. Une fois que cette configuration a été prise en compte, on peut le voir avec la commande cat > /dev/null, puis en tapant Ctrl+BackSpace:

$ cat > /dev/null
^[[7;5~

Il reste maintenant à configurer chaque application qui sera lancée dans xterm pour reconnaître cette séquence d'échappement et exécuter la fonction voulue: on parle de binding. Par cohérence avec GNU Emacs et sa propre interface graphique, j'ai choisi d'effacer le mot vers la gauche (backward-kill-word).

Pour GNU Emacs en mode texte:

(define-key global-map "\C-[[7;5~" 'backward-kill-word)

Pour le shell zsh:

bindkey '\e[7;5~' backward-kill-word

Pour les applications basées sur la bibliothèque GNU Readline, mettre dans le fichier ~/.inputrc:

"\e[7;5~": backward-kill-word


webmaster@vinc17.org