GNU Emacs

Z GeoWikiCZ

Domovská stránka editoru GNU Emacs je

http://www.gnu.org/software/emacs/

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
GNU Emacs

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.

Související články

Užitečné maličkosti