Hlavní navigace

Klávesové skratky

Stanislav Kuchár 29. 9. 2000

Pre niekoho je počítač zábavou, pre niekoho každodenný chlebíček. Či už patríte do prvej alebo druhej skupiny, určite sedíte za počítačom denne (no len si to priznajte, nemusíte sa za to hambiť) a tlačíte doňho príkaz za príkazom. A mnohé z nich sa často opakujú. Klávesnica má práve na tieto účely tzv. funkčné klávesy F1-F12, ktorým možno priradiť text, príkaz, ... čokoľvek.

Dajme tomu, že často kontrolujete, či žije váš server na druhom konci republiky. Treba napísať celý príkaz ping -c 10 moj.server.sk. Keď to už budete písať dvadsiaty krát za deň, určite si povzdychnete, či by sa to nedalo nejak zjednodušiť. (Najmä vtedy keď sa práve tento príkaz už nenachádza v histórii príkazov.)

Nebolo by super tak po stlačení F3 v termináli vidieť výstup príkazu ping -c 10 moj.server.sk? Jeden jediný kláves namiesto celého toho dlhého textu?

Nemusí to byť práve ping, môže to byť čokoľvek iné: nejaká dlhá cesta, shutdown servera, či pravidelné reštartovanie firemného winservera, editovanie súboru, do ktorého si píšete poznámky počas celého dňa, čítanie pošty, sťahovanie najnovšieho kernelu … čokoľvek.

Čo potrebujeme:

Bash
Shell, kde vkladáme príkazy. S rozmachom Linuxu sa stal bash asi najpoužívanejší. Beží na mnohých platformách, takže si ho určite môžete naištalovať a vyskúšať, aj keď nemáte Linux.
Readline
Knižnica Readline umožňuje okrem editácie príkazu, ktorý práve píšete do shell promptu, aj priraďovať jednotlivým klávesom príkazy. Štandardne je Readline súčasťou bashu a nemá dokonca vlastnú man stránku, je popisovaná na stránke k bashu.
Editor
Akýkoľvek textový editor. Budeme editovať inicializačný súbor pre Readline.

~/.inputrc

Readline sa inicializuje zo súboru ~/.inputrc. Tu definujeme všetky naše klávesové skratky. Okrem toho tu možno tiež nastavovať premenné knižnice Readline.

Komentáre sa začínajú, ako je už zvykom, znakom #. Všetko sa znakom # je ignorované. Podobne prázdne riadky sú ignorované.

Syntax pre klávesové skratky je celkom jednoduchý:

"kód klávesu":"funkcia alebo makro"

Každý kláves generuje kódy. Okrem zobraziteľných znakov (ako sú napr. písmená), existujú sekvencie pre špeciálne znaky:

\C-
Control predpona
\M-
Meta resp. Alt predpona
\e
Escape predpona
\\
spätné lomítko

Kódy klávesov si môžeme jednoducho zistiť, keď stlačíme Ctrl-V a potom daný kláves (v bashi samozrejme). Stlačíme teda Ctrl-V F3 s zobrazí sa ^[[13~. Vidíme, že F3 generuje sekvenciu Escape [ 1 3 ~. (Escape sa zobrazuje ako ^[). Toto je kód klávesu F3 pod X Windows Systémom. Ak pracujeme textovej (virtuálnej) konzole, F3 generuje ^[[[C, čiže  Escape [ [ C.

Príklad

Nebudeme chodiť okolo horúcej kaše. Ukážeme si ako priradiť klávesu F3 ten náš pingovací príkaz. Do súboru .inputrc v domácom adresári pridáme:

# žije môj server?
"\e[13~":"ping -c 10 moj.server.sk\C-M"

Klávesu F3, ktorý generuje "\e[13~" priradíme makro ping -c 10 moj.server.sk nasledovaný Ctrl-M, čiže Enter, aby ho nebolo treba odosielať.

Inicializačný súbor sa načítava vždy pri štarte bashu. Aby sme nemuseli kôli tomu nanovo púšťať terminál so shellom, stačí použiť funciu re-read-init-file, pomocou klávesovej kombinácie Ctrl-X Ctrl-R, ktorá nanovo načíta obsah ~/.inputrc.

Stlačíme F3 a … pingujeme. Žiadne dlhé vypisovanie, žiadny Enter. Prosto paráda.

S funkčnými klávesami to nekončí. Keď využijete všetkých 12 klávesov, môžete použiť modifikáry (Ctrl, Alt, Shift) a ich kombinácie. Pozor niektoré z nich sú už použité vo window manageri; tie sa vám nepodarí využiť, pretože window manager sa k nim dostane skôr ako Readline.

Ďalšie tipy

# nepípaj po mne!
set bell-style none

Odvykol som si od toho, aby po mne môj počítač pípal – odpájal som interný speaker. Dnes to už robím softwarovo. Toto je príklad nastavovania premennej knižnice Readline.

# vstup/výstup národných znakov (ISO 8859.2)
set meta-flag on
set convert-meta off
set output-meta on

Aj vstup (z klávesnice) našich národných znakov podlieha Readline.

Tipy na ďalšie čítanie

Našli jste v článku chybu?

29. 9. 2000 16:57

torr (neregistrovaný)

Jeste jedna rada pro Tomase. Pokud telnetis z Windozu, tak s
nejvetsi pravdepodobnosti ti nefunguje pokus s F3kou proto, ze
telnetovy program kontroluje klavesove zkratky sam. Zkus se podivat
po nastaveni v nabidce.




Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

Lupa.cz: Seznam mění vedení. Pavel Zima v čele končí

Seznam mění vedení. Pavel Zima v čele končí

Vitalia.cz: Paštiky plné masa ho zatím neuživí

Paštiky plné masa ho zatím neuživí

Vitalia.cz: Manželka je bio, ale na sex moc není

Manželka je bio, ale na sex moc není

Podnikatel.cz: Alza.cz má StreetShop. Mall.cz více výdejních míst

Alza.cz má StreetShop. Mall.cz více výdejních míst

Vitalia.cz: Chtějí si léčit kvasinky. Lék je jen v Německu

Chtějí si léčit kvasinky. Lék je jen v Německu

Vitalia.cz: Jsou čajové sáčky toxické?

Jsou čajové sáčky toxické?

120na80.cz: Jak oddálit Alzheimera?

Jak oddálit Alzheimera?

Měšec.cz: Air Bank zruší TOP3 garanci a zdražuje kurzy

Air Bank zruší TOP3 garanci a zdražuje kurzy

Podnikatel.cz: Babiše přesvědčila 89letá podnikatelka?!

Babiše přesvědčila 89letá podnikatelka?!

Vitalia.cz: Často čůrá a má žízeň? Příznaky dětské cukrovky

Často čůrá a má žízeň? Příznaky dětské cukrovky

Vitalia.cz: Dáte si jahody s plísní?

Dáte si jahody s plísní?

Podnikatel.cz: Víme první výsledky doby odezvy #EET

Víme první výsledky doby odezvy #EET

120na80.cz: Na ucho teplý, nebo studený obklad?

Na ucho teplý, nebo studený obklad?

Vitalia.cz: Mondelez stahuje rizikovou čokoládu Milka

Mondelez stahuje rizikovou čokoládu Milka

Podnikatel.cz: Babiš: E-shopy z EET možná vyjmeme

Babiš: E-shopy z EET možná vyjmeme

Lupa.cz: Proč firmy málo chrání data? Chovají se logicky

Proč firmy málo chrání data? Chovají se logicky

120na80.cz: Rakovina oka. Jak ji poznáte?

Rakovina oka. Jak ji poznáte?

DigiZone.cz: Sony KD-55XD8005 s Android 6.0

Sony KD-55XD8005 s Android 6.0

Lupa.cz: Co se dá měřit přes Internet věcí

Co se dá měřit přes Internet věcí