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.

Pedro Palhoto
la source

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,.

Gilles 'SO- arrête d'être méchant'
la source
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.

alex
la source
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.)


la source
-1

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

Talkerbox
la source