Emacs je vhodný na úpravu dlhších textových súborov a poskytuje
užitočné skratky pre pohyb po odstavcoch (Control a šípka nahor/nadol
alebo M-{
/M-}
), pohyb po vetách (M-a
/M-e
, no je nutné dávať za
vetou 2 medzery) alebo pohyb po slovách (Control a šípky do strán
alebo M-f
/M-b
). M-q
zarovná odstavec na šírku podľa premennej
fill-column
(je nastavená na šírku vhodnú pre terminál alebo mail).
Dlhé riadky sa zobrazujú zalomené a C-PgUp
/C-PgDn
stránkuje po
šírke.
Vyhľadávanie
Ďalší dôležitý posun je podľa inkrementálneho vyhľadávania (známe
napr. z webových browserov), kedy sa hneď prechádza na najbližšie
iesto výskytu zadávaného textu. C-s
vyhľadáva dopredu, C-r
vzad
(oba môžu prechádzať znovu na začiatok/koniec súboru po ďalšom
stlačení príslušnej skratky). C-g
zruší vyhľadávanie a prejde na
pôvodné miesto. Variácia s pridaným modifikátorom Meta (Alt) umožňuje
použitie regulárnych výrazov.
Nahradenie textu
M-%
nahradí výskyt jednej frázy druhou, C-M-%
umožňuje použiť
regulárne výrazy.
Označenie a práca s blokmi textu
Na označenie sa používa Mark (značka). Značka nie normálne nijak
viditeľná a slúži na označenie začiatku alebo konca bloku (Region v
terminológii Emacsu), druhý koniec označuje poloha kurzoru. Značka sa
umiestňuje skratkou C-SPC
(SPC
je medzerník). V novších verziách
je možné aktivovať mód zvýraznenia bloku (transient-mark-mode
) tým,
že "umiestnime" značku dvakrát na tom istom mieste.
Keď už máme nejaký región označený, možeme ho skopírovať M-w
(kill-ring-save
) alebo vystrihnúť C-w
(kill-region
). Oba
príkazy vkladajú text do "kill ring". Skratka C-y
(yank
) vloží
text z "kill ring". Je vhodné si zapamätať termíny kill a yank aj
preto, že vystupujú v názvoch mnohých funkcií a ich popisoch.
Pretože toto je v porovnaní s bežným ovládaním exotické, existuje
cua-mode
, ktorý nastaví bežne používané skratky (celkovo nezapadajú
do prostredia, kolidujú s inými skratkami a poskytujú menšiu
flexibilitu).
Ďalšie vystrihnutie je možné na základe viet alebo slov.
C-DEL
(DEL
nie je delete
, backspace by mal byť náhradou)
vystrihne predchádzaúce slovo a M-d
nasledujúce (pokiaľ sa
nachádzame v slove tak po začiatok resp. koniec slova).
C-x DEL
vystrihne predchádzajúcu vetu a M-k
nasledujúcu (pokiaľ sa
kurzor nachádza vo vete, tak po začiatok resp. koniec vety).
C-x r k
(kill-rectangle
) vystrihne pravoúhly útvar z textu podľa
značky a polohy kurzora, C-x r y
(yank-rectangle
) ho naopak vloží.
Na prvý pohľad sa to nemusí zdať, ale je to užitočná funkcia.
C-k
(kill-line
) je skratka na vystrihnutie textu po koniec riadku.
M-z
vystrihne text po prvý výskyt zadaného znaku. Emacs má množstvo
funkcií pre narábanie z textom, takže ak niečo často potrebujeme, tak
sa to oplatí skúsiť nájsť a uľahčiť si tým život.
Jednoduché opakovanie
V tomto kontexte je vhodné si predstaviť numerický argument (M-N
alebo M-- N
pre záporné N
). Podobne je možné použiť C-u
(universal-argument
), ktorému je tiež možné zadať číslo a skratku,
ktorú má opakovať (bez zadania čísla sa použije 4). Takto je možné
napríklad vystrihnúť predchádzajúcich N
riadkov a pod.
Zložité opakovanie – makrá
Pokiaľ máme nejaký text, nad ktorým potrebujeme vykonať opakujúce sa
operácie, je veľmi pravdepodobné, že to dokážeme zadefinovať veľmi
presne a nechať Emacs aby to opakoval za nás. Začiatok makra sa
označí stlačením C-x (
a koniec C-x )
(zrušiť zadávanie je možné
pomocou C-g
). Takto sa nahrajú naše operácie, ktoré je možné
spustiť pomocou C-x e
(opakované spustenie cez numerický/univerzálny
argument).
Nekonečné "undo"
Ukázali sme si množstvo operácií, ktoré môžu byť nebezpečné pre náš
text, preto potrebujeme aj ukladať históriu. Nekonečné undo
znamená, že ak vrátime nejaké operácie, toto sa tiež ukladá do
histórie a teda pôvodné operácie tiež nie sú nikdy stratené (stačí
prerušiť sekvenciu volania undo napríklad pohybom kurzoru).
Samozrejme, "nikdy" je silné slovo, toto je obmedzené pamäťou a
limitom v premennej undo-limit
(alebo undo-strong-limit
), ktorú je
možné nastaviť napríklad interaktívnou funkciou set-variable
(C-h
v
je funkcia nápovedy zobrazujúca informácie o premennej).
Vrátiť stav je možné skratkou C-x u
, C-_
alebo C-/
.
Vkladanie špeciálnych znakov
Pokiaľ je nutné vložiť špeciálny znak, na to slúži funkcia
quoted-insert
(C-q
), ktorá buď vloží znak podľa číselného kódu
alebo priamo stlačený špeciálny znak.
Informácia o znaku na kurzore si môžeme zobraziť funkciou
describe-char
(funkciu cez meno spúšťame pomocou M-x
alebo
klávesou menu napravo od medzerníka).
Zmena textu
Občas sa zíde zmena veľkosti písmen, na to je tu M-u
(upcase-word
)
pre veľké písmená, M-l
(downcase-word
) pre malé a M-c
(capitalize-word
) pre veľké začiatočné. Dostupné su aj ďalšie
funkcie, ktoré menia označený text (Region).
Presun podľa riadku
M-g g
alebo M-g M-g
presunie kurzor na zadaný riadok. S
univerzálnym argumentom sa presunie kurzor v poslednom navštívenom
bufferi a aktivuje sa.
Dopĺňanie
Niekdy potrebujeme často písať opakujúce sa slová, vtedy je možné
nechať si ich doplniť skratkou M-/
(dabbrev-expand
).
Prácu s textom by sme mali celkom detailne prebratú, nabudúce si povieme ako ovládať okná.
M-x cua-mode
pri akychkolvek pochybnostich staci pozriet help "C-h k" a stlacit prislusne klavesy
Není. Stačí nastavit hodnotu 'Editing' > 'Fill' > 'Sentence End Double Space' na off (nil). Ručně v konfiguračním souboru .emacs pak v 'custom-set-variables' jako '(sentence-end-double-space nil).