Editor Emacs

Typicke formy vyvolania Emacsu:

emacs Normalne vyvolanie Emacsu v novom okne
emacs <subor> Vyvolanie v novom okne s pre-otvorenym suborom
emacs -nw <subor> Vyvolanie v alfanumerickej konsole bez moznosti ovladania mysou.








K Emacsu sa viaze subor ".emacs" v domovskom adresari. Tento subor obsahuje kod v jazyku lisp, ktory sa vykona pri starte editora. Priklad mojho suboru .emacs.



V ramci Emacsovej dokumentacie sa pouziva terminologia s mierne posunutym vyznamom. Termin buffer sa pouziva pre otvoreny subor; termin window pre cast emacsu zobrazujucu jeden buffer na obrazovke; termin frame pre jedno okno s Emacsom. Jeden frame moze obsahovat viacero window (nie su to skutocne graficke okna, ale len oddelene casti textu v ramci jedneho grafickeho okna).



V dalsom texte, znak "^" znamena klavesu "Control", t.j. symbol "^c" znamena sucasne stlacenie klaves "Control" a "C". Viacero symbolov za sebou znamena sekvencne stlacanie, napr. "^x o" znamena sucasne stlacenie "Control" a "X" a potom stlacenie klavesy "O". Sucasne stlacenie klavesy Alt a nejakeho znaku x budeme oznacovat Alt-x.

Uplny zaklad


Nasledovna tabulka je uvadzana pre uplnost, vacsina tychto funkcii je dostupna z menu.

^x ^f Nacitanie suboru, Emacs sa spyta na meno suboru, pri pisani mena symbol ' ' (medzera) kompletuje meno suboru, ak je viacero moznosti ponukne ich. Otvorit mozno aj adresar a potom vyberat mysou (stredne tlacidlo).
^x ^s Zapis suboru
^x ^w Zapis suboru pod inym menom
^x ^c Ukoncenie editovania
   
^x 1 V pripade, ze sa vam Emacsove okno rozdeli na viac casti, tato kombinacia zatvori ostatne casti.
AaBb ... Standardne znaky (pismena, cisla, ...) sa do textu vsuvaju
^_ (Undo) "odrobi" posledne zmeny v subore. Viacnasobne stlacenie odrobi viacej zmien.
^G (Escape) Prerusi beh makra, prave vykonavaneho dialogu, etc. Ak sa nieco kazi a neviete, co sa deje, treba stlacit niekolkokrat ^G pokial sa veci neukludnia.









Dalsie funkcie



^k Zmaz zvysok riadku a vloz zmazany text do "kill-ring" registra. Niekolko po sebe nasledujucich "^k" apenduje text do "kill-ring" registra, aby ho potom bolo mozne vsunut jedinym vyvolanim "^y".
^y Vloz text ulozeny v "kill-ring" registry.
Alt-y Pri vyvolani po ^y, vlozi namiesto posledne vlozeneho textu, text ulozeny v predposlednom "kill-ring" registry. Zaroven preusporiada "kill-ring" takze viacnasobnym stlacenim Alt-y mozno prebiehat vsetky predtym zmazane texty.
^ (Control space) poloz znacku
^w zmaz text medzi znackou a kurzorom a vloz ho do "kill-ring" registra
   
^c ^q pri programovani v C, C++, Java odsadi text funkcie
   
Alt-q Naformatuj (pozalamuj) text na max 70 znakov v riadku
Alt-1 Alt-q Naformatuj a zarovnaj text na 70 znakov v riadku
   
Alt-x funkcia Vyvolanie lispovskej funkcie funkcia. Pri pisani funkcie mozno pouzit ' ' (medzera) na kompletovanie mena. Napr. vyvolanie "Alt-x" a medzera zobrazi zoznam vsetkych funkcii Emacs-u.
Alt-2 klavesa Zvacsa sposobi opakovane vyvolanie fukcie naviazanej na klavesu 2-krat.
Alt-n klavesa Zvacsa sposobi opakovane vyvolanie fukcie naviazanej na klavesu n-krat. V skutocnosti cislo sa posle funkcii ako argument, ale vacsina editovacich fcii ma volitelny argument pocet opakovani.
^x b Zmena editovaneho buffra (suboru)
^x ( Zacni zaznamenavanie makra
^x ) Ukonci zaznamenavanie makra
^x e Vykonaj posledne zaznamenane makro

Vyhladavanie retazca

^s Vyhladaj retazec (polozi znacku na zaciatok hladania). Hladanie sa ukonci znakom <return>. Pri zadavani retazca na vyhladanie mozno pouzivat specialne znaky, napr. ^s nasledujuci vyskyt retazca, ^w vlozi slovo z originalneho textu, Alt-p a Atl-n prebiehaju predchadzajuci alebo nasledujuci hladany retazec.
Alt-^s Vyhladaj regularny vyraz (polozi znacku na zaciatok hladania)
Alt-% Nahradenie retazca inym retazcom.

Zaklad Emacsovej samodokumentacie, Emacs help

^h b (bindings) Pomoc, zobrazi vo vedlajsom okne vsetky kombinacie klaves a funkcie, kotre sa pri ich stlaceni vykonaju
^h f (function) Vypise manualovy text k danej funkcii. Pri pisani mena mozno vyuzit ' '(medzeru) na kompletovanie.

Kompletovanie

Pocas dialogov v dolnom riadku zvycajne funguje kompletovanie mien suborov alebo emacsovych funkcii a premennych. Kompletovanie sa vyvola klavesou medzera alebo tabulator.

Zvlastne funkcie

Alt-x compile Vyvola externy kompilator (alebo make) a spravy kompilatora zobrazi vo zvlastnom okne, takze je potom mozne prezerat subory a riadky, kde boli chyby.
Alt-x grep Vyvola externy grep process a jeho vysledok zobrazi vo zvlastnom okne, takze je potom mozne prezerat indikovane subory a riadky.
Alt-x shell Vyvola externy interaktivny shell process.
Alt-x calendar Interaktivny kalendar pre tento rok.
Alt-x doctor Elisa

Editovanie suboru cez ftp

Ak nazov suboru zacina //meno:/subor, tak emacs interpretuje meno ako meno pocitaca a edituje subor zo vzdialeneho pocitaca. K suboru sa pritom pristupuje cez ftp. Pri pisani mena suboru funguje kompletovanie (na medzeru).

Emacs podpora: news skupiny: "comp.emacs", "comp.emacs.xemacs"

Emacs manual
Manual k emacs lispu

Vsetko, co budete chciet pre Emacs urobit je uz urobene!

Emacs prichadza s mnozstvom modulov v rozsahu asi 500 000 riadkov lispovskeho kodu. Tieto subory su standardne ulozene v suboroch s koncovkou .el a (na linuxe) by mohli byt v adresari s menom ako "/usr/share/emacs/20.4/lisp/". Ak sa rozhodnete pisat zlozitejsiu lispovsku funkciu je lepsie sa najskor pozriet, ci uz nie je niekde implementovana.




Cvicenia



1.) Pouzite funkciu 'Save Page As' prehliadaca a ulozte subor cvikaemacs do svojho domovskeho adresara.

2.) Otvorte subor cvikaemacs v editore Emacs. Vyhladajte retazec 'auto-mode-alist'. Presunte cely blok textu (ktory nadstavuje hodnotu premennej 'auto-mode-alist' a je oddeleny prazdnymi riadkami) na zaciatok suboru.

3.) Pomocou funkcie opakovania oddelte niekolko blokov kodu riadkami pozostavajucimi z 80 bodkociarok. T.j. vsunte riadky
;;;;;;;;;;;;;;;;;;;;;;;;; (80 krat) 
do textu suboru.

4.) Definujte jednoduche makro, ktore vlozi do textu dva znaky medzera a potom prejde na nasledujuci riadok (dvomi sipkami vlavo a sipkou nadol).

5.) Pouzite toto makro na odsadenie niekolkych textov komentarov o dva znaky dalej od znakov ;;. T.j. z kazdeho riadku:
;; text
vyrobte
;;   text


6.) Predpokladajme, ze v danom riadku je text obsahujuci prave jeden _ (podciarovnik) a ze kurzor (point) je prave na tomto znaku. Napiste makro, ktore vezme posledny znak riadku a presunie ho pred podciarovnik. Napr. z riadku po_tom vyrobi pom_to. Opakovanim tohto makra na riadku, kde bol podciarovnik na zaciatku riadku sa da dany riadok "obratit", pouzite toto makro na 'obratenie' vety 'kobyla ma maly bok'.