Jak przejść do następnego lub poprzedniego słowa za pomocą CTRL + klawiszy strzałek w konsoli?

12

W aplikacjach emulacji terminala naciśnięcie strzałek CTRL+ Left/ Rightpowoduje przejście z jednego słowa do poprzedniego lub następnego. Czy można mieć tę samą funkcjonalność w konsoli Linux, czy to w trybie tekstowym, czy w trybie buforowania ramki?

W mojej konfiguracji CTRLklawisze strzałek + są przekształcane w sekwencje znaków i nie są interpretowane.

Pedro Palhoto
źródło

Odpowiedzi:

8

Jest to możliwe tylko wtedy, gdy terminal wysyła różne sekwencje ucieczki do Ctrl+ Leftvs Left. Nie jest tak domyślnie w konsoli Linux (przynajmniej na moim komputerze). Możesz to zrobić, modyfikując mapę klawiszy. Dokładny plik do modyfikacji może zależeć od twojej dystrybucji; na Debian Lenny plik do modyfikacji to /etc/console/boottime.kmap.gz. Potrzebujesz linii takich jak

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

Równie dobrze możesz wybrać te same sekwencje specjalne, jak emulator terminala X. Aby dowiedzieć się, co to jest sekwencja kontrolna, wpisz Ctrl+ V Ctrl+ Leftw powłoce; wstawia (na mojej maszynie) ^[O5Dgdzie ^[jest znak ucieczki. W pliku mapy klawiszy \033reprezentuje znak zmiany znaczenia.

Konfigurowanie aplikacji w terminalu w celu zdekodowania sekwencji ucieczki to osobny problem,.

Gilles „SO- przestań być zły”
źródło
wyjaśniasz tylko, skąd masz "\033O5D"kod, ale całkowicie pomijasz, skąd go masz keycode 105i F100. Poza tym dostaję ^[[1;5Bi ^[[1;5Aza ctrl + Dół i Ctrl + Góra. Jak mam obsługiwać tę 1;część?
Martin Vegter,
1
@MartinVegter Sprawdź istniejący plik w poszukiwaniu kodów dostępu lub użyj showkeyprogramu. Ta 1;część nie różni się od reszty: "\033[1;5B"i tak dalej.
Gilles 'SO - przestań być zły'
OK keycode 105można znaleźć za pomocą showkey. Ale skąd masz F100?
Martin Vegter,
@MartinVegter Wybierz taki, który nie jest już używany. Inny dla każdego słowa kluczowego (właśnie poprawiłem literówkę w swojej odpowiedzi).
Gilles „SO- przestań być zły”
24

Skróty w stylu Emacsa Alt+ f, Alt+ bdziałają domyślnie ze wszystkimi programami wiersza poleceń opartymi na readline , takimi jak powłoki.

alex
źródło
2

Możesz ustawić vima jako edytor wiersza poleceń, a następnie nacisnąć ESC i przeskakiwać styl vima (do przodu, do tyłu, na końcu, $, 0 itd.)


źródło
-1

Miałem ten problem na Debianie z pustym ~/.inputrcplikiem. Naprawiono problem poprzez usunięcie tego pliku.

Talkerbox
źródło