Come posso passare alla parola successiva o precedente con i tasti CTRL + freccia in una console?


12

Nelle applicazioni di emulazione terminale, premendo le frecce CTRL+ Left/ Rightsi passa da una parola alla precedente o successiva. È possibile avere la stessa funzionalità in una console Linux, sia in modalità testo che in modalità framebuffer?

Nella mia configurazione, i CTRLtasti freccia + vengono trasformati in sequenze di caratteri di escape e non interpretati.

Risposte:


8

Ciò è possibile se e solo se il terminale invia diverse sequenze di escape per Ctrl+ Leftvs Left. Questo non è il caso per impostazione predefinita sulla console Linux (almeno sulla mia macchina). Puoi farlo modificando la mappa dei tasti. Il file esatto da modificare può dipendere dalla tua distribuzione; su Debian lenny, il file da modificare è /etc/console/boottime.kmap.gz. Hai bisogno di linee come

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

Puoi anche scegliere le stesse sequenze di escape dell'emulatore del terminale X. Per scoprire qual è la sequenza di controllo, digitare Ctrl+ V Ctrl+ Leftin una shell; Questo inserisce (sulla mia macchina) ^[O5D, dove ^[è un carattere di escape. Nel file keymap, \033rappresenta un carattere di escape.

Configurare l'applicazione nel terminale per decodificare la sequenza di escape è un problema separato,.


stai solo spiegando come hai ottenuto il "\033O5D"codice, ma omettendo completamente da dove hai ottenuto il codice keycode 105e F100. Inoltre, ottengo ^[[1;5Be ^[[1;5Aper ctrl + Giù e Ctrl + Su. Come devo gestire la 1;parte?
Martin Vegter,

1
@MartinVegter Controlla i file chiave per i file esistenti o usa il showkeyprogramma. La 1;parte non è diversa dalle altre: "\033[1;5B"e così via.
Gilles 'SO- smetti di essere malvagio' il

OK si keycode 105può trovare usando showkey. Ma dove hai preso F100?
Martin Vegter,

@MartinVegter Scegli uno che non è già in uso. Uno diverso per ogni keychord (ho appena corretto un refuso nella mia risposta).
Gilles 'SO- smetti di essere cattivo'

24

Le scorciatoie in stile Emacs Alt+ f, Alt+ bfunzionano di default con tutti i programmi della riga di comando basati su readline , come le shell.


2

Puoi impostare vim come editor della riga di comando e quindi premere ESC e saltare lo stile di vim (avanti, indietro, fine, $, 0, ecc.)


-1

Ho avuto questo problema su Debian con un ~/.inputrcfile vuoto . Risolto il problema rimuovendo questo file.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.