Kot novi uporabnik Emacsa ga bomo sprva verjetno hoteli pognati in
preskusiti. A ko smo enkrat v njem in ga želimo zapustiti, tega
verjetno sprva ne bomo znali. Če ga nismo še nikoli uporabili, ga
poskusimo pognati prav zdaj. V svoji ukazni lupini za pozivnikom
vpišimo emacs
in pritisnimo tipko Enter. Emacs bi se moral
zagnati. Če se ne zažene, bodisi ne leži v poti do programov bodisi ni
nameščen.
Ko pa smo uspešno pognali Emacs, se moramo naučiti, kako ga
zapustimo. Vtipkati moramo ukaz C-x C-c
. Pisava C-x
pomeni, da pritisnemo tipko Ctrl
, jo pridržimo, nato
pritisnemo še tipko x
, zatem pa popustimo x
in še
Ctrl
. V zgornjem primeru moramo za prvim delom pritisniti in
pridržati še tipko Ctrl
in pritisniti c
, da
zapustimo urejevalnik.
Morebiti se nam bodo sprva zdeli Emacsovi ukazi čudni, nenavadni in
celo nerodni, posebej če smo vajeni urejevalnika vi
. V
nasprotju z urejevalnikom vi
Emacs nima posebnih načinov za
vnašanje besedila in ukazov.
Na kratko: ukaz emacs
požene urejevalnik Emacs. Z
Emacsovim ukazom C-x C-c
urejevalnik zapustimo.
Ko poženemo Emacs, njegov izpis zasede vse okno X ali zaslon, če ga poganjamo v konzoli. Na vrhu opazimo menujsko letev, v srednjem delu nekaj besedila in nekaj vrstic na dnu.
Zaslon je podoben tej skici z znaki:
+----------------------------------------------------------------------+ |Buffers Files Tools Edit Search Mule Help | | | |Welcome to GNU Emacs, one component of a Linux-based GNU system. | | | | | | | | ... | | | |---1:---F1 *scratch* (Lisp Interaction)--L1--All-------------| |For information about the GNU Project and its goals, type C-h C-p. | +----------------------------------------------------------------------+
Različica v slovenskem jeziku pa je takšna:
+----------------------------------------------------------------------+ |Buffers Files Tools Edit Search Mule Help | | | |Dobrodošli v GNU Emacs, sestavnem delu sistema GNU v Linuxu. | | | | | | | | ... | | | |---1:---F1 *scratch* (Lisp Interaction)--L1--All-------------| |Pritisnite C-h C-p, da dobite opis projekta GNU in njegovega namena. | +----------------------------------------------------------------------+
Opomba: Emacs običajno zavzame celotno okno ali zaslon.
Zgornjo skico sem okrnil, da bi jo lahko prikazal na omejenem
prostoru. Ko prvič poženemo Emacs, bomo opazili pozdravno
sporočilo. Da bi prihranil prostor, sem njegovo vsebino izpusti in jo
nadomestil z znaki ,,...
''. Pozdravno sporočilo navaja
različico Emacsa, ki ga uporabljamo, in nas vabi, da si ogledamo
dostopno pomoč na zvezi.
Vrhnja vrstica v Emacsovem vmesniku je menujska letev (ang. menu bar). Če poganjamo Emacs v oknih X, se bodo izbire v menuju obnašala kot običajni potezni menuji (ang. pull-down menu), do katerih pridemo z miško. Drugače pa moramo za dostop do menujev uporabiti tipkovnico z ustreznimi bližnjicami tipk, o čemer tu ne govorimo.
Zgornja od zadnjih dveh vrstic Emacsovega vmesnika je statusna letev (ang. status bar). Vsebuje podatke o vmesniku, v katerem delamo, o načinu dela v trenutnem vmesniku in podobne koristne informacije. Zaenkrat se zadovoljimo s tem, da se zavedamo obstoja te letve.
Najspodnejša vrstica se imenuje pogovorni vmesnik (ang. mini-buffer). Od osrednjega vmesnika (ang. main buffer) ga na zaslonu loči pravkar opisana statusna letev. Pogovorni vmesnik si lahko zamišljamo kot Emacsovo ukazno vrstico. Vanj vnašamo ukaze, ki jih dajemo Emacsu, in v njem nam Emacs izpisuje svoja sporočila in odgovore na naše ukaze.
Ugotovili boste, da tistemu, kar sem pravkar imenoval statusna letev (ang. status bar), Emacsova dokumentacija pravi načinovna vrstica (ang. mode line). To je mesto, kjer Emacs prikazuje podatke o načinu ali načinih dela v trenutnem vmesniku kot tudi trenutni datum in čas, zaporedno številko vrstice, velikost datoteke, torej skoraj vse, kar bi si želeli videti v tej vrstici.
Ta razdelek obravnava najbolj osnovno terminologijo Emacsa. Potrebno jo je poznati, de bomo lahko brali o Emacsu in ga uporabljali.
Za razliko od nekaterih drugih urejevalnikov datoteka, ki jo odpremo v Emacsu, ne ostane odprta ves čas dela. Namesto tega jo Emacs prebere v vmesnik (ang. buffer) v pomnilniku. Ko urejamo datoteko, se njena vsebina na disku ne spremeni, dokler vsebine vmesnika na shranimo na disk. Tak način dela ima svoje prednosti in slabosti, a trenutno je pomembno le, da razumemo ta pristop.
Posledica tega je, da to isto besedo uporabljamo v Emacsovi dokumentaciji, načinih, paketih in tako naprej. Pomeni nam trenutno vsebino datoteke v pomnilniku. Eh, potrebno je omeniti, da vmesnik ni nujno povezan s kakršnokoli datoteko na disku. Velikokrat Emacs ustvari vmesnik, v katerega bo shranil izhod ukazov, ki smo jih izvedli. Nekateri vmesniki bodo vsebovali izpis ukaza, seznam izbir, med katerimi lahko izbiramo, in podobno.
V Emacsovem žargonu bomo velikokrat slišali za točko (ang. point) ali o njej brali. V splošnem je točka utripalka (ang. cursor). Natančen razloček med točko in utripalko na začetku verjetno ni odločilen. A če ste radoveni, si predstavljajte razliko takole: utripalka je vidni prikaz točke. Utripalka je vselej vidna na določenem mestu trenutnega vmesnika. Točka pa nasprotno prebiva v prostoru med dvema znakoma trenutnega vmesnika. Če vidimo utripalko na črki ,o' besede ,,zob'', to pomeni, da je točka v resnici med črkama ,z' in ,o'.
Emacs omogoča urejanje vmesnika kot mnogi sodobni urejevalniki z naslednjimi funkcijami: zamikanje (ang. indent), črkovanje (ang. spell-check), preoblikovanje (ang. reformat), izrezovanje (ang. cut), prepisovanje (ang. copy), lepljenje (ang. paste) in podobno na delu besedila trenutnega vmesnika. Označimo (ang. mark) lahko besedilo s poudarjanjem (ang. highlight), tako da uporabimo miško, in nato izvedemo ukaz le na izbranem območju besedila. Tak del besedila se v Emacsu imenuje območje (ang. region).
Res je, nadaljevanje bo zmedlo marsikoga, ki je že uporabljal grafični vmesnik. Spomniti pa se moramo, da je bil Emacs razvit veliko preden so postali popularni grafični vmesniki in okenski upravljaniki.
Okno (ang. window) v Emacsu je območje na zaslonu, v njem pa je prikazan vmesnik. Ko Emacs prvič poženemo, dobimo na zaslonu le eno okno. Nekateri ukazi (denimo pomoč ali dokumentacija) v Emacsu odpro dodatna začasna okna na Emacsovem zasonu.
Emacsovo okno nima nič skupnega z okni X v smislu grafičnega vmesnika. Odpremo lahko dodatna okna X, v katerih prikažemo Emacsove vmesnike, denimo za vzporedno primerjavo vsebine dveh datotek, ta nova okna X pa se imenujejo v Emacsovem žargonu okvirji. Nadaljujte z branjem!
V Emacsu je okvir (ang. frame) ločeno okno X, ki prikazuje nek Emacsov vmesnik. A vsa so del iste Emacsove seje. Obnašajo se skoraj tako, kot če v Netscapovem Navigatorju uporabimo ukaz Alt+N.
Ta razdelek opisuje osnove igranja na tipkovnico v Emacsu. Kot v večini zmogljivih urejevalnikov, je tudi v Emacsu vse, kar lahko v njem storimo, od nas oddaljeno le nekaj pritiskov na tipke.
Če ste uporabnik urejevalnika vi
, ste se nekaj časa morali
privajati na tipke k, j, l, h
, s katerimi se v njem pomikamo
za vrstico navzgor ali navzdol ali za znak naprej ali
nazaj. Priznajmo, da smo potrebovali nekaj ur ali tednov, da smo se
jim privadili in jih začeli udobno uporabljati za premikanje po
datoteki.
Emacs se v tem ne razlikuje. Tudi tu se moramo naučiti različnih
pritiskov tipk in ukazov. Kakor v vi
se moramo naučiti le
nekaj osnov, pa že lahko opravimo večino dela. Sčasoma se lahko
počasi priučimo tudi drugih ukazov in razširimo svoje znanje, tako da
znamo vedno hitreje opraviti svoje stvari.
Kot se bomo kmalu naučili, Emacs zelo pogosto uporabljamo z
večtipkovnimi kombinacijami, akordi. Ker Emacs ni načinovni
urejevalnik (ang. modal editor), kakršen je vi
, nam ni
potrebno pomniti, kdaj smo v ,,ukaznem'' (ang. command mode) ali
,,urejevalnem'' načinu (ang. editing mode), da bi premaknili utripalko
ali izvedli ukaz. Zato večinoma le pritisnemo pravo zaporedje ukazov
in Emacs nas (običajno) takoj uboga.
Tipke, ki jih Emacs uporablja najpogosteje, so v dokumentaciji
navedene takole C
za tipko Control ali Ctrl in M
za
tipko Meta. Medtem ko ima večina sodobnih osebnih računalnikov eno ali
več tipk, ki so označene s Ctrl
, imajo le redki tipko z
oznako Meta
. V mislih vselej nadomestimo tipko Meta z eno od
tipk Esc
ali Alt
. V večini običajnih primerov se
obnašata tipki Esc in Alt enako.
Kadarkoli potemtakem vidite v Emacsovi dokumentaciji sklic na
C-x f
, to pomeni ,,pritisnite Control-x in zatem tipko f''. In
če vidite omenjeno kaj podobno temu M-x shell
, to v resnici
pomeni ,,pritisnite alt-x in vpišite besedo shell''.
Za začetnika zelo koristen ukaz je M-x apropos
ali
skrajšano C-h a
. Ukaz apropos preišče Emacsovo dokumentacijo
na zvezi in poišče vse funkcije, katerih imena ustrezajo regularnemu
izrazu, ki smo ga vpisali. Na ta način na primer zlahka poiščemo vse
ukaze, ki so povezani z okvirji (ang. frame). Preprosto vnesemo
C-h a
in zatem vpišemo frame
.
Ko smo spoznali, kaj pomenijo čudne okrajšave zaporedij tipk, je čas, da si ogledamo seznam najpogostejših ukazov za premikanje po vmesniku:
tipke učinek ----------------------------------- C-p navzgor za vrstico C-n navzdol za vrstico C-f naprej za znak C-b nazaj za znak C-a začetek vrstice C-e konec vrstice C-v navzdol za celo stran M-v navzgor za celo stran M-f naprej za besedo M-b nazaj za besedo M-< začetek vmesnika M-> konec vmesnika C-g prekini trenutni ukaz -----------------------------------
In kot bi si želeli, tudi smerne tipke (tiste s puščicami) običajno
delujejo po naših pričakovanjih. Tipka vračalka
(ang. backspace) pa morebiti ne. A to je druga zgodba. :-(
Potem ko smo se naučili, kako se premikamo po vmesniku, ali smo že pripravljeni tudi za odpiranje in shranjevanje datotek? Morebiti celo za iskanje? Ja, tukaj bomo našli teh nekaj najpomembnejših ukazov.
Preden pa se zapodimo med ukaze, naj na kratko pojasnim, kako delujejo.
Vsi ,,ukazni akordi'' v Emacsu (ti, ki jih zapišemo kot
M-nekaj
ali C-nekaj
) so v resnici le bližnjice do
funkcij, ki so del Emacsa. Vsako izmed funkcij lahko pokličemo po njenem
imenu, tako da vpišemo M-x ime-funkcije
in pritisnemo
Enter
. Če pa je na tipkovnico prilepljena bližnjica do te
funkcije, zadošča, da uporabimo bližnjico.
Emacsova funkcja, ki shrani vsebino vmesnika na disk, se imenuje
save-buffer
. Privzeto je pripeta na akord C-x
C-s
. Da bi shranili vmesnikovo vsebino, lahko pritisnemo akord
ali pa vpišemo M-x save-buffer
in dosežemo popolnoma enak
učinek.
Vse najpogosteje uporabljane funkcije imajo vnaprej prirejene akorde. Nekaj jih navajamo spodaj.
akord funkcija opis ------------------------------------------------------------------- C-x C-s save-buffer shrani trenutni vmesnik na disk C-x u undo razveljavi zadnji ukaz C-x C-f find-file odpri datoteko na disku C-s isearch-forward poišči niz znakov v smeri naprej C-r isearch-backward poišči niz znakov v smeri nazaj replace-string poišči niz znakov in ga zamenjaj replace-regexp poišči regularni izraz in ga zamenjaj C-h t help-with-tutorial poženi učenje Emacsa s prvim berilom C-h f describe-function izpiši opis funkcije C-h v describe-variable izpiši opis spremenljivke C-h x describe-key izpiši pomen akorda C-h a apropos poišči dokumentacijo z regularnim izrazom C-h F view-emacs-FAQ prikaži odgovore na pogosta vprašanja o Emacsu C-h i info izpiši dokumentacijo o Emacsu C-x r m bookmark-set označi trenutno mesto z zaznamkom C-x r b bookmark-jump skoči na zaznamek -------------------------------------------------------------------
Ko bomo uporabljali te funkcije, bomo opazili, da mnoge od nas
pričakujejo vnos. Tega vselej vnesemo v pogovornem oknu, kar spominja
na ukaze :
v vi
.
V Emacs je vgrajenih dobesedno stotine funkcij, ki so vse dosegljive. Zgornji seznam je le izvleček ukazov, ki jih uporabljam najpogosteje. Za bolj podrobne opise, kaj te funkcije počno, in za njihov popolnejši seznam pa si moramo ogledati neposredno pomoč.
Podobno kot mnoge priljubljene ukazne lupine v Unixu (bash, csh,
tcsh...) tudi Emacs omogoča dopolnjevanje imen ukazov s tipko
Tab
. Resnici na ljubo je treba priznati, da dopolnjevanje
ukazov v lupini bash posnema to v Emacsu. Če ga uporabljamo v lupini,
se nam bo prikupilo tudi v Emacsu.
Poskusimo ga uporabiti tako, da vnesemo M-x search
in nato
pritisnemo Tab
. Emacs bo imenu dodal pomišljaj in tako
označil, da obstaja mnogo imen, ki se vsa začno s tem nizom in imajo
pomišljaj. Ponovimo pritisk na tipko Tab
in Emacs bo
prikazal vsa imena, ki se začno z izpisanim nizom. Opazimo, da Emacs
za ta seznam odpre novo okno. Emacs začasno prepolovi
prikazovalnik v dve okni. Eno vsebuje vmesnik, ki ga urejamo, drugo pa
seznam vseh dopolnjenih imen, ki se začno na ,,search-''. Če
pritisnemo ukaz za prekinitev C-g
, zapustimo okno z
izbiranjem in se vrnemo v prvotni vmesnik.
Emacs ima za novince vgrajeno prvo berilo, ki nas popelje prek osnovnih ukazov za urejanje in funkcij, ki jih vsi uporabljamo. Tečaj nas tudi nauči, kako uporabljamo druge sisteme pomoči v Emacsu.
Priporočam, da si vzamemo čas in se sprehodimo skozi prvo berilo,
če se želimo Emacsa res naučiti. Kot prikazuje zgornja preglednica,
poženemo prvo berilo z akordom C-h t
. Prvo berilo je
namenjeno novincem, ki bi se radi samoizobrazili, narejeno pa je kot
začetni tečaj.
Če poganjamo Emacs v oknih X, bomo opazili, da je skrajni menu v menujski letvi označen s Help. Ko raziskujemo, kaj nam Help nudi, najprej opazimo, da ima nekaj postavk v menuju na desni strani navedene akorde ukazov, s katerim jih na hitro poženemo.
Za konec si lahko ogledamo, kolikšna količina dokumentacije je na
voljo v Emacsu. Vpišimo M-x info
ali C-h i
, kar
požene sistem Info, brskalnik po dokumentaciji v Emacsu.