Poprawne działanie klawiszy Home, End, Page-Up i Page-Down w Linuksie.

Niektóre dystrybucje Linuksa(na przykład Debian) nie mają domyślnie wyłączoną bądź niepoprawnie skonfigurowaną obsługę klawiszy Home, End, Page-Up i Page-Down i po ich wciśnięciu pojawiają się tylko jakieś dziwne znaczki(zwykle '~').

Można to w bardzo prosty sposób naprawić, plikiem odpowiedzialnym za te ustawienia jest /etc/inputrc, klawisze do akcji przypisujemy w tym pliku w postaci: "kod znaku": akcja. Aby dowiedzie się jakie kody znaków przypisane są do interesujących nas klawiszy wpisujemy polecenie: od -c, po czym wciskamy interesujące nas klawisze, a następnie ctrl+c aby zakończyć pobieranie kodów. W przypadku naciśnięcia po kolei klawiszy: Home, End, Page-Up i Page-Down, na moim laptopie wynik polecenia wygląda następująco:

[virhilo@hpek ~]$ od -c
^[[7~^[[8~^[[5~^[[6~^C
[virhilo@hpek ~]$

Gdy już znamy kody naszych znaków otwieramy do edycji plik /etc/inputrc i szukamy w nim linijki zaczynającej zawierającej interesujący nas kod znaku, jeśli taką znajdziemy po prostu ją dkomentowujemy usuwając '#' z początku linii. Jeśli jednak nie uda nam się odnaleźć odpowiednich linijek musimy dopisać je sami zgodnie z podaną przeze mnie powyżej składnią. Oto lista najbardziej interesujących akcji:

  • beginning-of-line - przesuwa kursor na początek linii, czyli robi to co powinien robić klawisz Home
  • end-of-line - przesuwa kursor na koniec linii(klawisz End)
  • beginning-of-history - przechodzi na początek historii ostatnio wpisywanych poleceń, zwykle robi to klawisz Page-Up
  • end-of-history - przechodzi na koniec listy ostatnio wykonywanych poleceń(klawisz Page-Down
  • delete-char - klawisz Delete

Jak już zapiszemy zmiany w naszym pliku wystarczy się prze logować i można cieszyć się poprawnie działającymi klawiszami.

Listę pozostałych akcji można znaleźć wpisując man /etc/inputrc. Przykładowy zapis dla klawisza Home wygląda następująco:

"\e[1~": beginning-of-line
MegiTeam - mówimy Twoim językiem

Komentarze do notki Poprawne działanie klawiszy Home, End, Page-Up i Page-Down w Linuksie.

  1. D4rky powiedział(a):

    > Niektóre dystrybucje Linuksa(na przykład Debian) nie mają domyślnie wyłączoną bądź niepoprawnie skonfigurowaną obsługę klawiszy Home, End, Page-Up i Page-Down i po ich wciśnięciu pojawiają się tylko jakieś dziwne znaczki(zwykle '~').

    Że co? Nigdy się z tym nie spotkałem :|

  2. 3ED powiedział(a):

    Można też zwyczajnie ctrl+v i [klawisz]. :) ZSH nie daje tak prostej obsługi tych klawiszy jak bash, po zmianie rxvt na gnome-terminal klawisze znów przestaną działać, itd. Na JakiLinux Gotar podsuną dobre rozwiązanie z tputem.. Cała "święta szóstka", z mojej konfiguracji:
    bindkey "`tput khome`" beginning-of-line # HOME
    bindkey "`tput kend`" end-of-line # END
    bindkey "`tput kpp`" up-history # P-UP
    bindkey "`tput knp`" down-history # P-DOWN
    bindkey "`tput kdch1`" delete-char # DEL
    bindkey "`tput kich1`" overwrite-mode # INS

  3. virhilo powiedział(a):

    @D4rky na moim domowym serwerze stoi Debian Lenny i przy logowaniu sie po SSH mialem taka 'niedogodnosc';)

    @3ED ano ciekawe rozwiazanie:)

  4. Kosma powiedział(a):

    Problemem tutaj jest niezgodność klawiszy wysyłanych przez Twój emulator terminala i wpisani terminfo/termcap na hoście, na który się logujesz. I zwykle, co ciekawe, wina leży po stronie emulatora terminala. Na Debianie nigdy nie miałem tego typu problemów, za to przy logowaniu się z Gentoo+rxvt na inne dystrybucje - notorycznie. Dlatego uważam, że to wina wadliwych paczek na Gentoo. :]

W górę » Strona główna

Dodaj komentarz: