Ovládání

Základní klávesové zkratky naleznete v tomto souboru. Velice dobrým místem k seznámení se je tutoriál k emacsu. (Spouští se <ctrl><h> <t>). Pokud máte nainstalován počešťující balíček, bude tutoriál pravděpodobně v češtině.

Přizpůsobení emacsu

Pro hraní si s nadstavením slouží buffer *scratch*. Všechno nadstavení se provádí pomocí lispových příkazů (už víte proč se učíte scheme-dialekt lispu?). Vše co si zde nadstavíte, platí pouze do ukončení editoru. Při novém spuštění byste mohli vše nadstavovat znovu. Z tohoto důvodu máte k dispozici soubor .emacs ve svém domovském adresáři, do kterého zkopírujete příslušné lispové příkazy ze *scratch*. (Nikdo vám nebrání psát příkazy rovnou do .emacs bez vyzkoušení ve *scratch*).

Přepněte se do bufferu *scratch* a napište třeba následující kód:

((lambda (x)
    (* x x)) 5)
a vyhodnoťte jej ctrl+x ctrl+e (nebo taky ctrl+j). Vidíte, že kód pracuje stejně jako známá fce x na druhou. Příklad je to zajímavý, ale v našem případě neužitečný.

Zkuste si ale vyhodnotit následující kód:

(defun toggle-buffers()
  (interactive)
  (switch-to-buffer (other-buffer)))

(global-set-key [f5] 'toggle-buffers)
Co se stane? Nadefinujete si funkci toggle-buffers, která provede přepnutí mezi dvěma posledními buffery. Poté navážete tuto funkci na klávesu F5. Od nynějška se budete touto klávesou přepínat mezi aktuálním a "předchozím" bufferem.

Pokud to na vás bylo moc silné, máme tu jiný, méně drastický příklad.

(global-set-key [(f12)] 'delete-other-windows)
Jednoduše namapuje funkci delete-other-windows (interní fce emacsu) na klávesu F12. Tato funkce skryje všechna okna (buffery) na obrazovce (kromě aktuálního). Užitečné například pokud se vám zobrazí okno s výsledky kompilace a chcete se ho zbavit.

Nudí vás už standartní barva textu? Chcete syntax highlighting pro všechny možné módy? (viděli jste scheme v barvách? :-) Vaši Winblows kolegové budou závidět). Přidejte do svého .emacs řádku:

(global-font-lock-mode t)
V některých případech editace souboru je vhodné vědět pozici kurzoru (point) v textu. Dole na informačním řádku emacsu vidíte mj. Lxx kde xx jsou čísla. Znamená to Line xx (jste na xx-tém řádku). Zobrazení aktuálního sloupce není žádný problém:
(column-number-mode t)
No a na závěr ještě něco pro psaní a čtení českých znaků (funguje i na alfách!):
(set-language-environment "czech")

(if window-system
    (setq selection-coding-system 'latin-2)
  (set-terminal-coding-system 'latin-2))

(setq process-coding-system-alist '((".*" . iso-8859-2)))

(setq default-input-method "czech-qwerty")
Pokud vidíte místo českých znaků obdélníčky, nic si z toho nedělejte - pouze nepoužíváte český font (obraťte se na roota). Vězte ale, že ikdyž znaky "nejsou vidět", do souboru se uloží.

Emacs pro programátory

Předpokladem efektivní práce se zdrojovými soubory je asi zapnutí syntax highlightingu.
Dále se naučte používat klávesu tab. Tab nezpůsobí chaotické skákání po tabulátorech, ale (automatické) inteligentní odsazování řádků. Můžete jej použít kdekoliv na řádku. Pokud je zarovnání "divné", pravděpodobně máte někde v kódu chybu. (pitomé středníky.)

Kompilovat céčkové zdrojáky můžete příkazem compile

(M+x compile)
Na výzvu make -k odpovězte jménem editovaného souboru (bez přípony). Obrazovka se rozdělí na dva buffery. V horním okně zůstává váš zdrojový text, ve spodním okně se zobrazuje výsledek kompilace (a případné chyby).
Pokud chceme zdroják znovu přeložit (po opravení chyb), stačí spustit kompilaci příkazem recompile. Pokud si navážete tuto funkci na nějakou vhodnou klávesu (jako třeba F9), stává se práce dosti efektivní.

Málokdo asi bude překládat pouze jeden soubor. Obvykle se pracuje na více zdrojácích, které se samostatně přeloží a potom slinkují dohromady do spustitelného souboru. Automatizaci těchto kroků usnadňuje soubor makefile. (jeho použití zde nebudeme probírat).
Při kompilaci tedy nezadávejte jméno souboru, ale pravidlo ze souboru makefile ležícího ve stejném adresáři jako editované soubory. (make -k all).

Využití emacsu jako frontendu k jazyku scheme je popsáno na samostatné stránce

Zdroje:

Další věci si už musíte naprogramovat sami (fantazii se meze nekladou), nebo hledat na internetu.

V případě nejasností se mě můžete na cokoliv zeptat