Kot nov uporabnik bomo Emacs verjetno najprej hoteli pognati in
preskusiti. A ko bomo enkrat v njem in ga bomo želeli zapustiti, tega
najbrž 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 na poti do programov bodisi ni
nameščen.
Ko pa smo uspešno pognali Emacs, se moramo naučiti, kako ga
zapustiti. Vtipkati moramo ukaz C-x C-c
. Pisava C-x
pomeni, da pritisnemo tipko Ctrl
, jo pridržimo, nato
pritisnemo še tipko x
, 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 zdeli Emacsovi ukazi sprva čudni, nenavadni in
celo nerodni, še 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, na sredini 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 taka:
+----------------------------------------------------------------------+ |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 navadno zasede celotno okno ali zaslon.
Zgornjo skico sem okrnil, da bi jo lahko prikazal na omejenem
prostoru. Ko bomo prvič pognali Emacs, bomo opazili pozdravno
sporočilo. Da bi prihranil prostor, sem njegovo vsebino izpustil 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 na menuju vedle kot običajni 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 bomo govorili.
Zgornja od zadnjih dveh vrstic Emacsovega vmesnika je letev stanja (ang. status bar). Na njej so podatki 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.
Najnižja vrstica se imenuje pogovorni vmesnik (ang. mini-buffer). Od osrednjega vmesnika (ang. main buffer) ga na zaslonu loči pravkar opisana letev stanja. Pogovorni vmesnik si lahko predstavljamo 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 letev stanja (ang. status bar), Emacsova dokumentacija pravi načinovna vrstica (ang. mode line). Tudi Emacs prikazuje podatke o načinu ali načinih dela v trenutnem vmesniku pa tudi trenutni datum in čas, zaporedno številko vrstice, velikost datoteke, torej skoraj vse, kar bi si želeli videti v tej vrstici.
Ta razdelek obravnava najosnovnejšo terminologijo Emacsa. Treba jo je poznati, da bomo lahko brali o Emacsu in ga uporabljali.
Datoteka, ki jo odpremo v Emacsu, v primerjavi z nekaterimi drugimi urejevalniki 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. Tako delo ima prednosti in slabosti, a trenutno je pomembno le to, da razumemo ta pristop.
Posledica tega je, da isto besedo uporabljamo v Emacsovi dokumentaciji, načinih, paketih in tako naprej. Pomeni nam trenutno vsebino datoteke v pomnilniku. Eh, omeniti je treba, da vmesnik ni nujno povezan s katerokoli 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. Na splošno je točka utripalka (ang. cursor). Natančen razloček med točko in utripalko na začetku verjetno ni odločilen. Če vas muči radovednost, pa si predstavljajte razliko takole: utripalka je vidni prikaz točke. Utripalka je vselej vidna na določenem mestu trenutnega vmesnika. Točka pa, nasprotno, biva 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 tako kot številni sodobni urejevalniki omogoča urejanje vmesnika 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. Besedilo lahko označimo (ang. mark) s poudarjanjem (ang. highlight), tako da uporabimo miško, nato pa 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 priljubljeni grafični vmesniki in okenski upravljalniki.
Okno (ang. window) v Emacsu je območje na zaslonu, v njem pa je prikazan vmesnik. Ko Emacs prvič poženemo, je na zaslonu le eno okno. Nekateri ukazi (denimo pomoč ali dokumentacija) v Emacsu na Emacsovem zaslonu odpro dodatna začasna okna.
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 okviri. Berite naprej!
V Emacsu je okvir (ang. frame) ločeno okno X, ki prikazuje neki 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 pri večini zmogljivih urejevalnikov nas tudi pri Emacsu od vsega, kar lahko v njem postorimo, loči 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 se začeli z njimi brez težav premikati po
datoteki.
Emacs se v tem prav nič ne razlikuje. Tudi tu se moramo naučiti različnih
pritiskov na tipke in ukazov. Kakor v vi
se moramo naučiti le
nekaj osnov, pa že lahko postorimo večino dela. Sčasoma se lahko
priučimo tudi drugih ukazov in si razširimo znanje, tako da
znamo vedno hitreje opraviti delo.
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
treba 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 (navadno) takoj uboga.
Tipke, ki jih Emacs uporablja najpogosteje, so v dokumentaciji
navedene takole: C
za tipko Control ali Ctrl in M
za
tipko Meta. Večina sodobnih osebnih računalnikov ima eno ali
več tipk, ki so označene s Ctrl
, le redki imajo tipko z
oznako Meta
. V mislih vselej nadomestimo tipko Meta z eno od
tipk Esc
ali Alt
. Večinoma se
tipki Esc in Alt vedeta 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 takega kot 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,
krajše, 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. Po tej poti na primer zlahka poiščemo vse
ukaze, ki so povezani z okviri (ang. frame). Preprosto vnesemo
C-h a
in vpišemo frame
.
Zdaj ko vemo, 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 za vrstico navzgor C-n za vrstico navzdol C-f za znak naprej C-b za znak nazaj C-a začetek vrstice C-e konec vrstice C-v za celotno stran navzdol M-v za celotno stran navzgor M-f za besedo naprej M-b za besedo nazaj M-< začetek vmesnika M-> konec vmesnika C-g ustavi trenutni ukaz -----------------------------------
In natanko tako, kot bi si tudi želeli, smerne tipke (tiste s puščicami) navadno
delujejo v skladu z našimi pričakovanji. Tipka vračalka
(ang. backspace) pa morebiti ne. A to je druga zgodba. :-(
Zdaj ko se znamo premikati po vmesniku, ali smo že pripravljeni tudi za odpiranje in shranjevanje datotek? Morebiti celo za iskanje? Da, tu 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
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 funkcija, ki shrani vsebino vmesnika na disk, se imenuje
save-buffer
. Privzeto je pripeta na akord C-x
C-s
. Če želimo shraniti vsebino vmesnika, pritisnemo akord
ali pa vpišemo M-x save-buffer
in dosežemo popolnoma enak
učinek.
Vsem najpogosteje rabljenim funkcijam so vnaprej prirejeni akordi. 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 vgrajeno dobesedno na stotine funkcij, ki so vse dosegljive. Zgornji seznam je le izvleček ukazov, ki jih uporabljam najpogosteje. Če nas zanimajo podrobnejši opisi, kaj te funkcije počno, in želimo popolnejši seznam, pa si moramo ogledati neposredno pomoč.
Podobno kot številne 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 Emacs. Č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 je cel kup imen, ki se 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 na dve okni. V enem je vmesnik, ki ga urejamo, v drugem 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.
V Emacs je 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 po prvem berilu,
č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 sami izobrazili, napisano pa je kot
začetniški tečaj.
Če poganjamo Emacs v oknih X, bomo opazili, da je skrajni menu na menujski letvi označen s Help. Ko raziskujemo, kaj nam Help ponuja, najprej opazimo, da nekaj postavk na menuju na desni strani navaja akorde ukazov, s katerim jih na hitro poženemo.
Za konec si oglejmo še, koliko 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.