Hlavní navigace

Emacs: viac než len editor (3)

26. 10. 2000
Doba čtení: 5 minut

Sdílet

Na editovanie je treba poznať nejaké klávesy. Každý editor má vyhradené nejaké. Je pravda, že emacs to možno trochu preháňa s tými modifikačnými klávesami, ale napokon veď prečo nie. EMACS = Escape Meta Alt Control Shift. Poďme sa teda pozrieť na editovanie v emacse do detailov.

Klávesnica

Jeden z čitateľom Rootu mi napísal, že šípky (na posun kurzora) v emacse nefungujú. Po malej výmene emailov sme zistili, že to nebola chyba emacsu, ale terminálu: štandardný telnet z windowsu naozaj nestojí za veľa. Ak nesedíte priamo na konzole, určite si zožente poriadny terminál (tie UN*X-ovské sú zväčša v poriadku). Ale i v prípade, že máte „neschopný“ terminál, môžete emacs používať.

Kurzor sa dá ovládať nielen šípkami, ale aj klávesovými kombináciami, ako napríklad C-b pre posun vľavo. Možno ich už poznáte z módu editovania príkazového riadku z bash-u, gnuplot-u či mysql.

Stručne si zhrnieme klávesy, s ktorými by ste pri editovaní mali vystačiť nadlho. Minule som vás nabádal, aby ste si prečítali tutoriál. Ak ste si to sami prešli, budú vám mnohé klávesy už povedomé.

šípka vľavo alebo C-b (pre ľahšie zapamätanie b je z anglického before)
Je podľa očakávania posun kurzora vľavo, teda na predchádajúci znak.

Za klasickými editovacími klávesami uvediem alternatívne klávesy. To sú tie, ktoré zaberú vždy a za každých okolností – teda aj na „nechopných“ termináloch. Nemusíte sa ich hneď učiť naspamäť, ale raz sa vám určite zídu.

V zátvorke je tiež mnemotechnická pomôcka (zväčša anglické slovo), aby sa dali alternatívne klávesy ľahšie naučiť.

šípka vpravo alebo C-f (forward)
Posun kurzora o znak doprava.
šípka hore alebo C-p (previous)
Posun hore, teda na predchádzajúci riadok.
šípka dole alebo C-n (next)
Posun o riadok nižšie.
Home alebo C-a (a je prvé v abecede)
Skok na začiatok riadku.
End alebo C-e (end)
Presunie kurzor na koniec riadku.
Page Down alebo C-v (v akoby šípka dole)
Skok na nasledujúcu stranu.
Page Up alebo M-v (Meta je akýsi protipól k Ctrl, teda M-v bude opak C-v)
Presun na predošlú stránku.

Tu si pripomenieme M-v znamená Meta-v a na PC-čkových klávesniciach to je jednoduché pridržanie Alt a stlačenie v. Je to to isté ako stlačiť a uvoľniť Esc a potom stlačiť v, toto však zafunguje aj pri nerozumných termináloch.

C-Home alebo M-< (znak < ukazuje na začiatok)
Skok na samý začiatok buffra.
C-End M-> (znak > zase ukazuje na koniec)
Presunie kurzor na koniec bufra.
C-l (v tomto je trochu histórie, pretože Ctrl+L sa zvyklo používať na prekreslenie obrazovky)
Umiestni riadok, na ktorom je kurzor do stredu okna. Takto vidíme „okolie“ toho na čom práve pracujeme.
Delete alebo C-d (delete)
Zmaže znak na ktorom je kurzor.
C-k (kill)
Zmaže zbytok riadku (všetky znaky od aktuálnej pozície až do konca riadku budú zmazané z buffra). Ale zároveň si ich emacs uloží do kill ringu. Odtiaľ si ich môžete neskôr vyvolať. Niektorí z vás to asi poznajú ako clipboard. Emacs má proste svoju terminológiu.
C-y (yank)
Vlož text z kill ringu. Vloží naposledy vyseknutý text, ktorý sa nachádza v vrchole kill ringu. Ak by ste hneď po C-y stlačili M-y mohli by ste „listovať“ zoznamom textov, ktoré ste postupne ukladali do kill ringu. Kill ring je pamäť typu LIFO (Last In First Out).
C-_ alebo C-/ alebo C-x u (undo)
Odčiň posledné zmeny.
C-s (search)
Hľadanie. V emacse je hľadanie trochu iné, ako ste možno doteraz poznali, je interaktívne. Hneď po stlačení C-s emacs začne vyhľadávať: postupne presúva kurzor na hľadané znaky v texte tak, ako ich píšete. Stlačte C-s ešte raz a nájde ďalší výskyt hľadaného slova. Na ukončenie hľadania stlačte Enter.
C-r (reverse search)
Hľadanie v opačnom smere.
C-SPC (teda Crtl a medzerník) alebo C-@
Polož značku. Zapamätá si polohu kurzora pre ďalšie operácie. V emacse sa často operuje s regiónom. Je to časť buffra medzi aktuálnou pozíciou a značkou. S regiónom možno potom nakladať ako s celkom: možno ho zmazať, presunúť, zmeniť font, označiť HTML tagom, atď
C-w
Zmaž región a ulož ho do kill ringu.

Myš

V UN*Xe sa zvyknú používať všetky tri tlačidlá na myši. (Tí, ktorí majú len dve si určite emulujú to tretie stlačením oboch tlačidiel súčasne). Emacs samozrejme naplno využíva všetky tri tlačidlá.

CS24_early

mouse-1 teda ľavé tlačitdlo
Presunie kurzor na miesto kde sme klikli.
mouse-3 pravé tlačidlo
Označí text medzi poslednou pozíciou kurzora a miestom kde sme klikli (zároveň označený text uloží do kill ringu). Rovnaký výsledok dosiahneme aj stlačením ľavého tlačidla a ťahaním.
mouse-2 stredné tlačidlo
Vloží text z kill-ringu na miesto, kde sme klikli.

Aby to nebolo také suché, emacs má priradené funkcie aj pre kombinácie klávesnica a myš (Ctrl+ľavý a podobne). Možno práve preto som kedysi dávno začal používať myš na ľavej strane, aj keď som pravák: aby som mohol ovádať klávesnicu pravou rukou a zároveň myš ľavou rukou. (Ono sa to fakt dá, treba len trochu tréningu.)

C-down-mouse-1 (teda Ctrl a ľavé tlačidlo)
Zobrazí zoznam buffrov, z ktorého sa môžete pohodlne prepnúť do ktoréhokoľvek z nich.
C-down-mouse-2 (Ctrl a stredné tlačidlo)
Menu vlastností textu: farba, font… Tu je každý opis zbytočný – jednoducho si to vyskúšajte.
C-down-mouse-2 (Ctrl a pravé tlačidlo)
Menu aktuálneho módu. Každý editovací mód môže (ale nemusí) mať nejaké špecifické funkcie, ku ktorým sa dá pristupovať aj takto. Samozrejme okrem klasického prístupu z menu.
ľavé tlačidlo na módovom riadku
Posun módového riadku – užitočné najmä pri viacerých otvorených oknách. Skúste si C-x 2 a potom poposúvajte módový riadok, aby mali okná „tú správnu“ veľkosť.
C-mouse-2 (Ctrl a stredné tlačidlo) na módovom riadku
Rozdeľ okno vertikálne (C-x 1 návrat späť).
C-mouse-2 (Ctrl a stredné tlačidlo) na rolovacej lište
Rozdeľ okno horizontálne.

Tak sme sa dostali cez tak trochu nudný zoznam klávesov. Môžete ho používať ako rýchlu príručku na editovanie. A nezabúdajte, tréning robí majstrov – takže si rýchlo spustite emacs a hor sa do písania/editovania.

Linky

Byl pro vás článek přínosný?