Comment passer au mot suivant ou précédent avec les touches fléchées CTRL + dans une console?


11

Dans les applications d'émulation de terminal, appuyer sur les flèches CTRL+ Left/ permet de passer Rightd'un mot au précédent ou au suivant. Est-il possible d'avoir les mêmes fonctionnalités dans une console Linux, que ce soit en mode texte ou en mode framebuffer?

Dans ma configuration, les CTRLtouches fléchées + sont transformées en séquences de caractères échappés et non interprétées.

Réponses:


8

Cela est possible si et seulement si le terminal envoie des séquences d'échappement différentes pour Ctrl+ Leftvs Left. Ce n'est pas le cas par défaut sur la console Linux (du moins sur ma machine). Vous pouvez le faire en modifiant le clavier. Le fichier exact à modifier peut dépendre de votre distribution; sur Debian lenny, le fichier à modifier est /etc/console/boottime.kmap.gz. Vous avez besoin de lignes comme

control keycode 105 = F100
string F100 = "\033O5D"
control keycode 106 = F101
string F101 = "\033O5C"

Vous pourriez aussi bien choisir les mêmes séquences d'échappement que votre émulateur de terminal X. Pour savoir quelle est la séquence de contrôle, tapez Ctrl+ V Ctrl+ Leftdans un shell; cela insère (sur ma machine) ^[O5Doù se ^[trouve un personnage d'échappement. Dans le fichier keymap, \033représente un caractère d'échappement.

La configuration de l'application dans le terminal pour décoder la séquence d'échappement est un problème distinct,.


vous expliquez seulement comment vous avez obtenu le "\033O5D"code, mais en omettant complètement d'où vous avez obtenu les codes keycode 105et F100. En plus, j'obtiens ^[[1;5Bet ^[[1;5Apour ctrl + Down et Ctrl + Up. Comment dois-je manipuler la 1;pièce?
Martin Vegter

1
@MartinVegter Vérifiez le fichier existant pour les codes clés ou utilisez le showkeyprogramme. La 1;partie n'est pas différente des autres: "\033[1;5B"et ainsi de suite.
Gilles 'SO- arrête d'être méchant'

OK, le keycode 105peut être trouvé en utilisant showkey. Mais où avez-vous obtenu le F100?
Martin Vegter

@MartinVegter Choisissez-en un qui n'est pas déjà utilisé. Un autre par clé (je viens de corriger une faute de frappe dans ma réponse).
Gilles 'SO- arrête d'être méchant'

24

Raccourcis de style Emacs Alt+ f, Alt+ btravail par défaut avec tous les readline programmes de ligne de commande -powered, comme des coquillages.


2

Vous pouvez définir vim comme éditeur de ligne de commande, puis appuyer sur ESC et sauter dans le style de vim (avant, arrière, fin, $, 0, etc.)


-1

J'ai eu ce problème sur Debian avec un ~/.inputrcfichier vide . Correction du problème en supprimant ce fichier.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.