- 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 F5 a╛ F9 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 -