GNU Emacs
Domovská stránka editoru GNU Emacs je
Emacs je textový editor, který
- pracuje prakticky na libovolné platformě
- lze v něm všechny operace provádět pouze s využitím klávesnice
Některé základní operace
- C-_
- operace undo vrací zpět provedené editace
- M-/
- autokomlementace, doplňuje běžné rozepsané slovo podle slov v otevřeném bufferu. Pokud daná nabídka nevyhovuje, opakované zadání příkazu M-/ přechází na další alternativu.
- M-q
- formátování textu daného odstavce. Pro formátování zvolené oblasti zdrojového kódu (region) slouží příkaz C-M-\. Zarovnání edntlivého řádku zdrojového kódu zajišťuje znak tabelátor.
- TAGS
- jsou nástrojem pro navigaci ve zdrojovém kódu. Využíván je přitom nástroj Exuberant Ctags, který generuje seznam symbolů vyskytujících se v daném projektu. Seznam lze například vygenerovat takto
- ctags -e -o TAGS -R ~/GNU/gama
- kde parametr -e je požadavek na implicitní format používaný Emacsem, -o udává jméno výstupního soubru a -R udává, že zadaný adresář má být prohledán rekursivně.
- M-.
- přechod na definici symboly (na kterém je umístěn kurzor)
- M-0 M-.
- přechod na další vyhovující definici
- M-*
- návrat na počátek
Ladění programů
- M-x compile
- M-x recompile
- příkaz pro sestavení programu, resp. opakované zadání příkazů pro kompilaci. Implicitně make -k. Lze zadat i více příkazů, např.
- cd adresář && make && ./program
- Explicitní přechod do základního adresáře projektu je nutný, pokud jsou zdrojové kódy umístěny v různých podadresářích.
- M-x first-error
- přejde ve zdrojovém textu na místo první chyby detekované při překladu.
- C-x `
- přechod na následující chybu
GNU debugger
- M-x gdb
- spouští gdb (GNU debugger)
- C-x SPC
- nastavuje breakpoint na běžnou pozici v otevřeném souboru.
Základní příkazy gdb. Pro práci s debugerem je nunté použít při překladu parametr -g.
- run parametry
- spouští laděný program, volitelně umožňuje zadat paramatry programu, které jsou implicitní i pro další volání příkazu run
- n
- přechod na další příkaz, volání funkce je poavažována za jediný příkaz
- s
- přechod na další příkaz, vstup do volané funkce
- p výraz
- tisk zadaného výrazu
- p *adresa@n
- vytiskne n prvků pole na zadané adrese
- bt
- spouští příkaz backtrace, který vypisuje posloupnost volání funkcí, které vedly na segmentation fault.
Editace minibufferu
Protože minibuffer Emacsu používá klávesu Ret pro ukončení příkazu, musím pro vložení nového řádku (LF) použít C-o nebo C-q LF
Jak uložit makro
Editor GNU Emacs umožňuje definovat makra (keyboard
macro). Definice makra začíná zadáním C-x (
a je ukončena zadáním
kombinace kláves C-x )
.
Pokud chceme makro uložit pro pozdější použití, musíme makro nejprve pojmenovat. To učiníme funkcí
M-x name-last-kbd-macro
Jméno je načteno jako argumen v minibufferu. Jméno makra je Lisp symbol a je voláno pomocí M-x
. Pokud se pokusíme uložit makro pod již existujícím jménem, nic se nestane a je vypsána chybová zpráva.
Pokud je makro pojmenováno, můžeme je uložit do souboru. Nejprve otevřeme soubor a do něj pak makro zapíšeme příkazem
M-x insert-kbd-macro <RET> jméno makra <RET>
Uložený Lisp kód lze později znovu vyhodnotit C-x C-e a makro tak opět definovat Pokud makro uložíte do souboru ~/.emacs, bude automaticky definováno při každém spuštění Emacsu.