Emacs (1) - úvod a základné používanie - AKTUALIZOVANÉ

Emacs (1) - úvod a základné používanie - AKTUALIZOVANÉ
22.08.2008 07:50 | Články | Adam Sloboda
Tento seriál bude venovaný populárnemu textovému editoru Emacs. V tejto úvodnej časti je nutné vysvetliť základné termíny, usporiadanie a ovládanie za účelom základnej úpravy textu.

,,Operačný systém, ktorému nechýba ani dobrý editor."

O Emacse sa žartovne hovorí, že je operačný systém a nie je to ďaleko od pravdy. Emacs je napísaný v dialekte jazyka Lisp, ktorý je špeciálne vybavený na vývoj textového editoru, ale poskytuje aj možnosť za behu rozšíriť editor o rôznu funkcionalitu (napr. IRC klient, e-mail klient, hry).

Základná terminológia

Módy

Emacs pracuje v takzvaných editačných módoch (režimoch). Mód v Emacse môže byť major (hlavný) a k tomu môže mať viacero minor (vedľajších) módov.

  • Hlavný mód sa nastavuje zvyčajne podľa typu súboru a mení pravidlá pre zvýrazňovanie textu (syntax highlighting), funkcie kláves a klávesové skratky.
  • Vedľajšie módy sú možné rozšírenia módu. Tie môžu byť nezávislé na hlavnom móde (napr. pridanie kontroly pravopisu) a tiež môžu meniť klávesové skratky.

Pomocou módu je možné zapnúť prostredie pre zdrojový kód mnohých programovacích jazykov (zvýrazňovanie a pomocné funkcie), používať shell (ansi-term, eshell), debugger, REPL interpretery jazykov (Perl, Ruby, ...), zobrazovať interaktívne chybové výstupy kompilátorov aké sa používajú v mnohých IDE alebo aj emuláciu editoru Vi (viper-mode).

Skratky

Emacs poskytuje mnoho funkcií a preto sa zvyknú používať ,,exotické" skratky - klávesové modifikátory a skratky pozostávajúce z postupnosti viacerých znakov. Jeho pôvod siaha ďaleko za hranice ,,vynájdenia" klávesnice IBM PC a preto aj modifikátory sa zvyknú nazývať inak.

Prefix C- znamená klávesu (alebo aj iný znak) v kombinácii s modifikátorom Control.

M- znamená modifikátor Meta, ktorého funkciu na klávesnici PC nahrádza stlačený Alt alebo Esc stlačený pred samotnou skratkou (C-M-s je ekvivalentné Ctrl+Alt+s alebo Esc Ctrl+s).

V skratkách záleží aj na stlačenom Shifte (niekedy môže Shift figurovať v skratke ako S-).

Klávesa Windows (winkey) slúži ako modifikátor Super (s-).

Ďalší existujúci modifikátor je Hyper (H-), ktorú ja osobne nemám nastavenú a ani nepoužívam, a spolu so Super nie sú bežne používané v skratkách.

Modifikátory (ale aj iné klávesy) si každý užívateľ môže konfigurovať pomocou xmodmap konfiguračného súboru.

Buffer, Window, Frame

  • Buffer je oblasť, ktorá zobrazuje nejakú informáciu (výstup programu, nejakej zabudovanej funkcie alebo jednoducho súbor). Buffer môže byť aj zamknutý pre zápis. Medzi buffermi je možné prepínať pomocou C-x b. Pokiaľ je nutné zadávať nejakú hodnotu, používa sa minibuffer, ktorý tiež môže pracovať v nejakom móde a tak umožní dopĺňanie tabulátorom, vkladanie zo schránky alebo aj bežné klávesy pre orientáciu v texte.
  • Frame (rámec) je samostatné okno editoru. Jeden spustený Emacs môže zobrazovať viacero rámcov.
  • Window (okno) zobrazuje buffer. Táto schéma oddelených vrstiev umožňuje rôzne kombinácie - môžeme mať viacero rámcov a každý môže mať viacero okien, pričom buffer nie je exkluzívne viazaný na žiadne okno (inými slovami, je možné nechať si zobraziť jeden súbor viackrát a v každom okne mať nastavenú inú pozíciu).

Základné ovládanie

Každá uvedená skratka vždy vykonáva nejakú funkciu (tzv. binding funkcií na skratky), ktorú je možné zadať aj menom (po stlačení M-x alebo klávesy menu napravo od medzerníka, je možné dopĺňanie tabulátorom).

Odporúčam písať si často používané skratky a vytvoriť si tak dočasný ťahák. Niektoré funkcie nie sú tak často používané, vtedy je vhodnejšie zapísať si názov funkcie, ktorá sa ľahšie zapamätá. Pokiaľ poznáme skratku, môžeme si zobraziť nápovedu o nej pomocou C-h k (interaktívna funkcia, ktorá čaká na stlačenie skratky a zobrazí informácie o priradenej funkcii). Emacs sám seba výborne dokumentuje, C-h ? zobrazí nápovedu o nápovede (o ďalších možnostiach ako vyhľadávanie funkcie, popis funkcie, premennej a pod.). C-h l zobrazí posledných 100 stlačených kláves, čo je vhodné, ak sa nám niečo podarilo a nevieme ako... C-h m zobrazí informácie o aktuálnom móde.

Otvorenie a uloženie súboru

Na otvorenie existujúceho alebo nového súboru sa používa C-x C-f (k tejto funkcii sa dá dostať aj cez grafické menu alebo textové menu M-`), minibuffer pozná dopĺňanie tabulátorom a tiež znak ~ (alebo znak /) po predchádzajúcom lomítku ignorujú predchádzajúcu cestu a prejdú do domovského (alebo koreňového) adresára. Zrušiť zadávanie je možné stlačením C-g alebo 3x Esc (táto kombinácia vždy funguje ako zrušenie akejkoľvek operácie). Súbor sa ukladá skratkou C-x C-s.

Pohyb v texte

Pohyb v texte je celkom bežný, fungujú šípky, page up/down, home/end a tiež bežné kontrolné znaky terminálu sú nastavené na vykonanie ekvivalentných funkcií (napr. C-a/C-e pre kontrolný znak ekvivalentný Home/End).

Ukončenie

Nakoniec môžeme ukončiť Emacs skratkou C-x C-c (save-buffers-kill-emacs).

To by bolo k tejto časti všetko a malo by to stačiť na úspešný začiatok. Nabudúce si povieme niečo viac ovládaní.

    • imgs 22.08.2008 | 13:31
      Avatar Tommy Angelo   Používateľ
      chcelo by to obrazky :)
    • Emacs rulezzzzz 22.08.2008 | 14:07
      Avatar juraj GNU/Linux / FSF priority  Používateľ
      Ideeeees, moj oblubeny editor, kde sa hrabe Vim :D Dufam ze budu aj pokracovania.
      • Re: Emacs rulezzzzz 22.08.2008 | 16:17
        martin   Návštevník
        emacs ide proti zakladnej filozofii unixu - jeden program robi jednu vec, ale poriadne ;-)

        vim rulez
        • Re: Emacs rulezzzzz 22.08.2008 | 21:50
          Avatar juraj GNU/Linux / FSF priority  Používateľ
          To je dost mozne, asi preto preferujem GNU/Linux a FSF. Mimochodom Emacs robi dobre okrem jednej veci aj xy dalsich. Ved povodne to bol iba subor makier nad obycajnycm textovym editorom.
          • Re: Emacs rulezzzzz 22.08.2008 | 21:55
            skywaker   Návštevník
            Dufam ze tu bude zmienka aj o klonoch Emacsu..
            • Re: Emacs rulezzzzz 22.08.2008 | 22:28
              autor   Návštevník
              dobry napad
            • Re: Emacs rulezzzzz 23.08.2008 | 01:22
              Avatar Tomi Windows XP Pro/Ubuntu  Používateľ
              napriklad o http://macromates.com/ ;-)
              Nobody is perfect. I am Nobody.
    • co si mysli linus o emacse 24.08.2008 | 00:11
      martin   Návštevník
      An infinite number of monkeys typing into GNU emacs would never make a good program.

      --Linus Torvalds
      :)
      • Re: co si mysli linus o emacse 24.08.2008 | 00:42
        Avatar uid0 Debian  Používateľ
        tento vyrok je zjavne prvoplanovo vtipny, nevyjadruje co si mysli o GNU Emacs a uz vobec ponechava stranou jeho oblubeny microemacs
        Debian. apt-get into it…