- předchozí článek - následující článek - obsah - úvodní stránka - - předchozí část - následující část - první část -

Linuxové noviny 11-12/98

Začínáme s Emacsem: III

Michal Fadljevič, 4. listopadu 1998

Vítám vás u dalšího pokračování našeho mini-seriálu. Vlastně už snad ani není třeba pokračovat ve výuce, protože si všechno můžete přečíst v dokumentaci :-)(viz čtení dokumentace systémem Info). Dnes bych vás chtěl krátce upozornit na to, jak efektivně s Emacsem editovat.

Efektivní editování

Člověk zřejmě na začátku práce s novým editorem i několik měsíců podvědomě využívá především šipka_vlevo, šipka_vpravo, šipka_nahoru, šipka_dolů, BackSpace, Delete a Enter. Na tom není nic špatného (sám jsem takhle začínal), ale nebojte se naučit se používat šikovnější klávesy. Například slovo vpřed (forward-word), slovo vzad (backward-word, odstavec vzad (backward-paragraph), odstavec vpřed (forward-paragraph) a podobně.

Pro přehlednost jsem pro vás nejpoužívanější příkazy a klávesy připravil do tabulky Příkazy Emacsu.

Některé klávesy mohou na různých klávesnicích fungovat různě. To je způsobeno mapováním kláves systémovým prostředím - k Emacsu se dostávají různé klávesové symboly.

Záměrně jsem zopakoval (opakování je matka moudrosti) i prazákladní klávesy z prvního dílu seriálu. Všimněte si jednoduché logické stavby klávesových sekvencí, která vám může významně pomoci při zapamatovávání.

Klávesa Nebo také Popis akce Funkce v Emacsu
šipka_vpravo C-f znak vpřed (forward-char)
šipka_vlevo C-b znak vzad (backward-char)
šipka_nahoru C-p řádek nahoru (previous-line)
šipka_dolů C-n řádek dolů (next-line)
Delete C-d smaž znak pod kurzorem
BackSpace smaž znak vlevo (delete-backward-char)
C-šipka_vpravo M-f slovo vpřed (forward-word)
C-šipka_vlevo M-b slovo vzad (backward-word)
C-šipka_nahoru M-{ odstavec vzad (forward-paragraph)
C-šipka_dolů M-} odstavec vpřed (backward-paragraph)
M-Delete smaž slovo vzad (backward-kill-word)

Výpis č. 1: Příkazy Emacsu

V Emacsu platí velmi často, že pokud např. klávesa f dělá v danou chvíli "cosi", pak C-f dělá to samé, ale "silněji", potom M-f "ještě silněji" a C-M-f "úplně nejsilněji". [To zní jako reklama, co :-)?] Tento princip funguje tak v 90% případů, takže mě nekamenujte, že jste našli nějakou výjimku :-)- výjimky samozřejmě existují.

Malá vsuvka pro přemýšlivé. To označení "v danou chvíli" v minulém odstavci je zcela záměrné. V Emacsu je použit princip kontextově závislého významu kláves. Je to realizováno režimy (modes). V Emacsu je spousta režimů předinstalována (Text, TeX, LaTeX, Gnus, Shell mode) a v případě potřeby si můžete klidně vyrobit svůj vlastní. Ještě se jim budeme věnovat.

A ještě jedna rada. Opět připomínám, že každá operace v Emacsu má své jméno - to je ten poslední sloupec v tabulce - např. forward-paragraph (interně je to jméno lispové funkce, která realizuje tento příkaz) a právě toto jméno si můžete navázat (v souboru .emacs) podle libosti na nějakou klávesu. Výborný způsob, jak se něco nového přiučit, je spustit nějakou funkci ručně pomocí jejího jména. Vyzkoušejte si M-x forw Tab para Tab nebo třeba M-x del Tab Tab ch Tab. Kromě toho, co přesně tato funkce udělala, vám Emacs navíc řekne, jakou klávesovou sekvenci můžete použít. Takže já si samozřejmě také nepamatuji jakou klávesou se zavolá funkce upcase-word, ale zadám jednoduše M-x upc Tab wo Tab a když už to potom člověk třeba dělá po 151. tak už sám rád výhodně použije M-u z nápovědy. Snadné, ne ?

Pro takovéto experimenty a i jinak se velmi hodí si zjistit, co se skrývá pod nějakou funkcí, nebo co je právě navázáno na nějakou klávesovou kombinaci - např. ve chvíli, kdy se chystáte něco si nastavit a jen pro kontrolu hledáte, jestli tam už něco jiného šikovného nebylo. Už vás nebudu déle napínat, jsou to tyto sekvence:

C-h k (nějaká klávesová sekvence xyz)
co normálně udělá xyz
C-h f (jméno funkce xyz)
co dělá funkce xyz (function)
C-h m
popiš tento režim (mode)
C-h b
co v této chvíli dělá která klávesa (bindings)

Pokud chcete mít jistotu, že vaše namapování kláves se nestane v budoucí verzi Emacsu standardní klávesovou zkratkou pro něco jiného, používejte pro své vlastní zkratky kombinace rezervované pro uživatele. Těmi jsou C-c písmeno a klávesy F5F9 bez modifikátoru.

Doplňování

A teď poslední tip: V Emacsu platí dále princip "doplňování" snad takřka všude, kde je to možné. Myslím, že je to fantastická věc. Jak se to používá? Jednoduše - v každém místě, kde se očekává Váš vstup můžete kromě všech editovacích kláves jako je Del, šipky, M-Del, C-a, C-k a podobně používat navíc tyto dvě vlastnosti:

  • Mezera a Tab vám nabídne možnosti, které se dají doplnit. Stačí pak napsat jedno, dvě písmena a opět stiskněte Mezera nebo Tab

  • šipka_nahoru a šipka_dolů vám umožní procházet se historií tohoto místa. Tzn. nabízí se vám hodnoty, které jste posledně zadával(a).

Tyto věci patří k velmi silným zbraním Emacsu a byla by škoda je nepoužívat, když tam jsou.

Za úkol máte vyzkoušet si všechny zmíněné funkce. Jsou opravdu ze všech nejpoužívanější. Tento díl byl poněkud kratší, ale musím také pracovat :-)Příště bych vám rád ukázal vyhledávání v textu, funkci najdi a nahraď, něco málo vysvětlení o režimech (modes) a nastavení stavové řádky. Všechny Vaše komentáře jsou vítány. *


- předchozí část - následující část - první část - - předchozí článek - následující článek - obsah - úvodní stránka -