Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > 12801f336d9e363d2d56a08891cdf472 > files > 8

howto-text-sl-2006-5mdv2010.0.noarch.rpm

  Spis HOWTO za zaèetnike v Emacsu
  Jeremy D. Zawodny: jzawodn@wcnet.org, prevod v sloven¹èino
  Ale¹ Ko¹ir: ales.kosir@hermes.si
  14. oktober, 1999 ($Razlièica: 1.7 $)

  Ta spis seznanja uporabnika operacijskega sistema Linux z urejeval­
  nikom Emacs. Predpostavlja, da uporabnik pozna urejevalnik vi ali
  podobnega. Zadnja razlièica tega spisa je na voljo v spletu na naslovu
  http://www.wcnet.org/jzawodn/emacs/.
  ______________________________________________________________________


  Kazalo


  1. Uvod

     1.1 Copyright
     1.2 Ciljna skupina in namen
     1.3 Kaj je Emacs?
        1.3.1 Prilagoditve in razlièice
        1.3.2 Kako pridobimo Emacs?

  2. Uporaba Emacsa

     2.1 Zagon in zapustitev Emacsa
        2.1.1 Kaj vidimo?
           2.1.1.1 Menujska letev
           2.1.1.2 Statusna vrstica in pogovorni vmesnik
     2.2 Nekaj o terminologiji
        2.2.1 Vmesniki in datoteke
        2.2.2 Toèka in obmoèje
        2.2.3 Okna
        2.2.4 Okvirji
     2.3 Osnove tipkovnice
        2.3.1 Ukazne tipke (Meta, Esc, Control in Alt)
        2.3.2 Premikanje po vmesniku
        2.3.3 Najpomembnej¹i ukazi
        2.3.4 Dopolnjevanje s tipko Tab
     2.4 Prvo berilo, pomoè in strani info

  3. Naèini v Emacsu

     3.1 Glavni naèini in podnaèini
     3.2 Naèini za programiranje
        3.2.1 C, C++ in Java
        3.2.2 Perl
        3.2.3 Python
        3.2.4 Drugi naèini
     3.3 Pisanje
        3.3.1 Èrkovanje (naèin
        3.3.2 HTML (naèin
        3.3.3 TeX (
        3.3.4 SGML (
     3.4 Drug naèini
        3.4.1 Nadzor razlièic (naèin
        3.4.2 Naèin za ukazno lupino
        3.4.3 Telnet in FTP
        3.4.4 Man
        3.4.5 Ange-FTP

  4. Emacs po meri

     4.1 Zaèasno prilagojevanje
        4.1.1 Prirejanje vrednosti spremenljivkam
        4.1.2 Zveze z datotekami
     4.2 Uporaba datoteke
     4.3 Paket za prilagojevanje
     4.4 Zaslon oken X

  5. Priljubljeni paketi

     5.1 VM (po¹tni program)
     5.2 Gnus (program za po¹to in novice)
     5.3 BBDB (rollodex)
     5.4 AucTeX (¹e en naèin za TeX)

  6. Drugi viri

     6.1 Knjige
        6.1.1 Learning GNU Emacs
        6.1.2 Writing GNU Emacs Extensions
        6.1.3 Programming in Emacs Lisp: An Introduction
        6.1.4 The GNU Emacs Lisp Reference Manual
     6.2 Spletna mesta
        6.2.1 EMACSulation
     6.3 Novièarske skupine
     6.4 Seznami elektronskih naslovov
     6.5 Arhiv za Emacsov lisp

  7. Zahvale



  ______________________________________________________________________

  1.  Uvod

  1.1.  Copyright

  Copyright © 1998 - 1999 Jeremy D. Zawodny. Dovoljenje za raz¹irjanje
  in spreminjanje tega dokumenta daje splo¹no dovoljenje GNU (General
  Public License). Izvod dovoljenja je dostopen na strani
  http://www.gnu.org/copyleft/gpl.html


  1.2.  Ciljna skupina in namen

  Ta spis je namenjen uporabniku sistema Linux, tistemu, ki bi se rad
  nauèil uporabljati urejevalnik Emacs. Spis je zaèel nastajati kot
  povzetek za kratko predstavitve, ki sem jo pripravil za tole¹ko
  obmoèno sreèanje uporabnikov Linuxa (Toledo Area Linux User Group)
  http://www.talug.org/. Spis je kasneje zrasel zaradi pomoèi skupnosti,
  kakor ka¾e razdelek z zahvalami.


  Posebej moram poudariti, da ni v spisu skoraj niè, kar bi veljalo le
  za Linux. Povedano  se nana¹a na vse vrste Unixov in celo na Emacs, ki
  teèe v okolju Microsoft Windows. A ker je ta spis del linuxovskega
  dokumentacijskega projekta (Linux Documentation Project), trdim, da je
  spis pripravljen za uporabnike Linuxa, ker je bil prav njim resnièno
  namenjen.


  Tisti izmed bralcev, ki imate ime GNU/Linux raje kot preprosto
  ,,Linux'' (preberite http://www.gnu.org/gnu/linux-and-gnu.html, da
  boste zvedeli, zakaj bi to kdo rad razloèeval) pa ste vabljeni, da v
  mislih z nizom GNU/Linux nadomestite vse besede Linux v tem spisu.
  Èetudi ne nasprotujem utemeljitvi in duhu zamisli, ki je v ozadju, ne
  èutim potrebe, da bi zapisal ,,GNU/Linux''.


  1.3.  Kaj je Emacs?

  Emacs pomeni razliènim ljudem razliène stvari. Odvisno od tega, koga
  boste vpra¹ali, boste morebiti dobili naslednje odgovore:


  *  urejevalnik besedil,

  *  odjemalec za elektronsko po¹to,

  *  pregledovalnik novièarskih skupin,

  *  program za stavljenje besedila,


  *  vero,

  *  integrirano razvojno okolje,

  *  karkoli bi vi ¾eleli, da je!


  Za na¹ namen se pretvarjajmo, da je Emacs urejevalnik besedila, in
  sicer neverjetno zmogljiv urejevalnik besedila, kasneje pa bomo
  globlje obravnavali to vpra¹anje. Emacs je napisal Richard Stallman
  (ustanovitelj fundacije za prosto programje, Free Software Foundation
  http://www.fsf.org/, in projekta GNU http://www.gnu.org/) in ga ¹e
  danes vzdr¾uje.


  Emacs je eden od najbolj raz¹irjenih in zmogljivih urejevalnikov v
  Linuxu (in Unixu) in je po priljubljenosti takoj za urejevalnikom vi.
  Slovi po ogromnem naboru funkcij, zmo¾nosti preprostega prilagojevanja
  in po tem, da nima napak. Obse¾ni nabor funkcij in zmo¾nost
  prilagojevanja sta posledica naèina, na katerega je bil Emacs
  naèrtovan in izveden. Ne da bi se spustil v podrobnosti, trdim, da
  Emacs ni le urejevalnik. Velik del ga je napisanega v programskem
  jeziku lisp. Jedro Emacsa je v jeziku C napisan popolnoma funkcionalen
  tolmaè za jezik lisp in le najbolj osnovni in nizkonivojski del
  predstavlja prevedena koda C, veèina Emacsove kode pa je napisana v
  jeziku lisp. Trdimo lahko, da je v Emacs vgrajen celotni programski
  jezik, njegovo kodo pa lahko po potrebi spreminjamo, prilagajamo,
  dodajamo in tako prikrojujemo Emacsovo obna¹anje.


  Emacs je hkrati tudi eden od najstarej¹ih urejevalnikov.  Dejstvo, da
  ga zadnjih dvajset let (?) uporabljajo tisoèi programerjev, je razlog,
  da je zanj na voljo veliko dodatnih paketov. Ti paketi omogoèajo, da
  vi postorite stvari, o katerih se Stallmanu, ko je Emacs zaèel pisati,
  ¹e sanjalo ni. Veè o tem pa v nadaljevanju.


  Na voljo je mnogo spletnih mest in spisov, ki dajo bolj¹i pregled
  Emacsa, njegove zgodovine in podobnega od tega, ki je pred vami. Raje
  kot da bom posku¹al zajeti èimveè znanega, svetujem, da si ogledate
  nekaj mest, ki jih navajam v razdelku ``Drugi viri''.


  1.3.1.  Prilagoditve in razlièice

  Potrebno je omeniti, da obstajata dva razlièna urejevalnika: GNU Emacs
  in XEmacs.  Oba izvirata iz skupnega prednika in veèina funkcij je
  skupna. To besedilo se nana¹a na GNU Emacs (izrecno na razlièico
  20.3), a veèina zapisanega velja tudi za XEmacs in zgodnej¹e razlièice
  GNU Emacs. V tem besedilu se sklicujem preprosto na ,,Emacs'', kar
  upo¹tevajte.


  1.3.2.  Kako pridobimo Emacs?

  Emacs zlahka pridobimo. Èe uporabljate raz¹irjeno distribucijo Linuxa,
  kakr¹na je Debian, RedHat, Slackware ali podobna, je Emacs zelo
  verjetno ¾e prilo¾en kot paket, ki ga namestimo z na¹ega nosilca za
  distribucijo. Èe Emacsa nimamo, lahko dobimo tudi njegovo izvorno kodo
  in jo sami prevedemo. Obi¹èite spletno mesto
  http://www.gnu.org/software/emacs/emacs.html, kjer boste na¹li toèna
  navodila, kako ga pridobite.




  2.  Uporaba Emacsa

  2.1.  Zagon in zapustitev Emacsa

  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.


  2.1.1.  Kaj vidimo?

  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.


  2.1.1.1.  Menujska letev

  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.


  2.1.1.2.  Statusna vrstica in pogovorni vmesnik

  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.


  2.2.  Nekaj o terminologiji

  Ta razdelek obravnava najbolj osnovno terminologijo Emacsa. Potrebno
  jo je poznati, de bomo lahko brali o Emacsu in ga uporabljali.


  2.2.1.  Vmesniki in datoteke

  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.


  2.2.2.  Toèka in obmoèje

  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).


  2.2.3.  Okna

  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!


  2.2.4.  Okvirji

  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.





  2.3.  Osnove tipkovnice

  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.


  2.3.1.  Ukazne tipke (Meta, Esc, Control in Alt)

  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.


  2.3.2.  Premikanje po vmesniku

  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. :-(


  2.3.3.  Najpomembnej¹i ukazi

  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è.


  2.3.4.  Dopolnjevanje s tipko Tab

  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.


  2.4.  Prvo berilo, pomoè in strani info

  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.


  3.  Naèini v Emacsu

  Naèini (ang. mode) v Emacsu so povezana pravila obna¹anja in sklopi
  funkcij, ki jih lahko vklapljamo ali izklapljamo in tako prilagodimo
  Emacs za uporabo v razliènih okoli¹èinah. Z naèini dose¾emo to, da je
  Emacs lahko enako primeren za pisanje dokumentacije, za programiranje
  v raznolikih jezikih (C, C++, Perl, Python, Java in ¹e mnogih drugih),
  za izdelavo domaèe strani, za elektronsko dopisovanje, za branje
  novièarskih skupin, za vodenje seznama na¹ih zmenkov in celo za
  igranje iger.


  Naèini v Emacsu so preprosto knji¾nice s kodo v lispu, s katero
  raz¹irjamo, prilagajamo, spreminjamo ali na kak¹en naèin izbolj¹ujemo
  Emacs.


  3.1.  Glavni naèini in podnaèini

  Obstajata dve vrsti naèinov: glavni naèini (ang. major mode) in
  podnaèini (ang. minor mode). Razlika med vrstama ni najbolj oèitna,
  dokler se ne poglobimo vanju, a poskusimo jo opisati.


  Vsak vmesnik je v nekem trenutku le v enem glavnem naèinu, poleg tega
  pa je lahko v veè podnaèinih. Glavni naèini so v splo¹nem vezani na
  programsko okolje ali posebna velika opravila, medtem ko so podnaèini
  manj¹e prilagoditve in manj specifièni priroèni programi, ki jih lahko
  sproti uporabljamo pri razliènih veèjih opravilih.


  Tole je zvenelo precej abstraktno, zato raje ponazorimo s primerom.
  Ko pi¹em neformatirano besedilo, uporabljam glavni naèin, imenovan
  text-mode. Ta naèin je bil naèrtovan za pripravo neformatiranega
  besedila, kakr¹no so datoteke README. Naèin razume, kako mora
  prepoznavati besede in odstavke ter kaj uporabnik prièakuje pri
  uporabi obièajnih tipk za navigacijo.


  Ko pripravljam besedilo, namenjeno ljudem, obièajno hoèem, da bo tudi
  njegov videz dober. Besedilo mora biti ovito (ang. word-wrapped), tako
  da vrstice niso predolge in podobno. Da omogoèim ovijanje besedila,
  po¾enem podnaèin auto-fill. Podnaèin poskrbi, da se vrstice po
  ,,prièakovanju'' samodejno pravilno prelomijo, ko vna¹am besedilo. Ker
  je to podnaèin, ga lahko uporabim tudi v drugih glavnih naèinih.  Moje
  ,,prièakovanje'', kaj naj se zgodi ob zakljuèku vrstice pa je v text-
  mode razlièno od tistega, ko sem na primer v naèinu java-mode. Prav
  gotovo si ne ¾elim, da bo javanska koda ovita na enak naèin, kot je
  besedilo v slovenskem jeziku.  Vendar pa hoèem, da je v komentarjih
  javanske kode besedilo ovito!  Podnaèin auto-fill je dovolj pameten,
  da bo to sam razre¹il.


  Ustvarjalci razliènih Emacsovih naèinov so se zelo potrudili, da so
  zagotovili, da so tiste stvari, ki sodijo v podnaèine, tudi res
  podnaèini.


  Èe si ogledamo skico Emacsovega zaslona, opazimo, da naèinovna vrstica
  ka¾e, v katerem naèinu ali naèinih je Emacs v danem vmesniku.  V
  prikazanem primeru je Emacs v naèinu ,,Lisp Interaction'', ki je
  privzeti naèin. Naèin je uporaben le za pisanje kode v lispu, a ker je
  veèina Emacsa izvedena v njem, taka odloèitev za privzeti naèin prav
  gotovo ni slaba, ali paè?


  3.2.  Naèini za programiranje

  Najva¾nej¹e, Emacs so ustvarili programerji za programerje.  Na voljo
  so visokokakovostni naèini za skoraj vsakega od raz¹irjenih
  programskih jezikov in tudi za nekaj manj pogostih. Tukaj bom na
  kratko opisal le nekatere od njih.


  Za veèino programskih naèinov je znaèilnih nekaj skupnih lastnosti.
  Pogosto bodo ti naèini:


  *  skladenjsko barvali (ang. syntax highlight) jezikovne elemente,

  *  samodejno zamikali in formatirali kodo v skladu s programskim
     jezikom,

  *  podpirali kontekstno obèutljivo in od programskega jezika odvisno
     pomoè,

  *  samodejno podpira vmesnik do na¹ega razhro¹èevalnika,

  *  v menujsko letev dodaja nove menuje za podporo jeziku.


  Poleg tega obstaja nekaj naèinov, ki niso v povezavi z jezikom, in
  pomagajo pri nalogah, ki so skupne mnogim programskim jezikom.  Pri
  tem mislim na podporo za programe za nadzor razlièic, samodejno
  dodajanje komentarjev v kodo, izdelavo datotek Makefile, osve¾evanje
  dnevni¹kih zapisov (ang. change log) in podobno.


  Èe zdru¾imo vse te naèine ter upo¹tevamo zrelost in stabilnost
  Emacsove kode, ugotovimo, da je izdelek primerljiv komercialnim
  paketom integriranih razvojnih okolij (ang. integrated development
  environment, IDE) za jezike, kot sta C++ in Java. Poleg tega pa je
  Emacs na voljo brezplaèno, seveda!


  3.2.1.  C, C++ in Java

  Zaradi c-jevske skladnje sta jezika C++ in java jeziku C precej
  podobna, in tudi naèin, ki podpira vse tri jezike, poleg njih pa ¹e
  Objective-C in IDL, je le en sam.  Paket, v katerem je naèin podprt,
  je zelo zrel in lepo zaokro¾en ter prihaja s standardno distribucijo
  Emacsa. Naèin se imenuje cc-mode ali tudi CC Mode.


  Èe i¹èemo njegovo najnovej¹o razlièico ali èe ¾elimo zvedeti
  podrobnosti, obi¹èimo spletno stran http://www.python.org/emacs/.





  3.2.2.  Perl

  V Emacs sta vgrajena dva naèina za urejanje kode v perlu. Prvi se
  imenuje perl-mode (kot seveda prièakujemo), drugi pa cperl-mode. Ne
  poznam zgodovinskih okoli¹èin in razlogov, zakaj je pri¹lo do dveh
  naèinov, dokumentacija pa jih tudi ne omenja.  Zdi pa se, da je bil
  perl-mode razvit najprej. Je manj zmogljiv kot cperl-mode in ne
  prepozna nekaterih bolj zavitih perlovih jezikovnih tvorb.


  Osebno uporabljam in priporoèam cperl-mode, ki ka¾e, da se ga vzdr¾uje
  precej pogosto, ima pa tudi skoraj prav vse funkcije, ki bi si jih
  kdajkoli ¾elel.  Njegova zadnja razlièica je dostopna na strani:
  ftp://ftp.math.ohio-state.edu/pub/users/ilya/emacs.


  Ne verjemite mi slepo na besedo. Raje preskusite oba naèina in se
  odloèite za tistega, ki vam bolj ustreza.


  3.2.3.  Python

  Python, zelo priljubljen skriptni jezik, ima tudi Emacsov naèin, s
  katerim je podprt. Kot lahko poroèam, se ta naèin ne raz¹irja z GNU
  Emacs, paè pa le z XEmacs. Deluje pa v obeh urejevalnikih prav dobro.


  Paket za podporo naèinu python-mode lahko pridobimo z uradne pythonove
  spletne strani http://www.python.org/emacs/python-mode/.


  3.2.4.  Drugi naèini

  Poleg ¾e na¹tetih je na voljo programerjem ¹e mnogo mnogo drugih
  naèinov. Ti naèini pomagajo pri:


  *  ukaznih lupinah (Bash, sh, ksh, csh...),

  *  awk, sed, tcl...

  *  datotekah Makefile,

  *  dnevni¹kih zapisih (ang. change logs),

  *  dokumentaciji,

  *  razhro¹èevanju


  In ¹e veliko veè. Zadnji razdelek tega spisa pojasnjuje, kje lahko
  najdemo druge naèine in dodatke za Emacs.


  3.3.  Pisanje

  Èudoviti Emacsovi naèini niso omejeni le na pomoè pri pisanju kode.
  Tudi pisci vsakovrstne dokumentacije lahko s pridom uporabljamo
  ob¹iren nabor Emacsovih naèinov.


  3.3.1.  Èrkovanje (naèin ispell )

  Avtorji razliènih vrst dokumentacije od èasa do èasa potrebujemo
  orodje za preverjanje pravilnosti èrkovanja (ang. spellchecking). èe
  smo namestili program GNU ispell, lahko uporabimo ukaz M-x ispell in
  po¾enemo èrkovanje trenutnega vmesnika. Èe èrkovalnik najde besedo, ki
  je ne pozna, predlaga za zamenjavo podobne besede iz slovarja in nam
  omogoèi, da izmed njih izberemo eno ali nobene. Po zmo¾nostih je
  podoben mnogim raz¹irjenim neprostim èrkovalnim paketom.


  3.3.2.  HTML (naèin html-helper )

  Èe moramo od èasa do èasa ali celo pogosteje pripraviti spis v zapisu
  HTML, bomo morebiti uporabili naèin html-helper-mode. Paket je
  dostopen na strani http://www.santafe.edu/~nelson/tools/ kot tudi
  spremljajoèa dokumentacija in dodatki.


  Kot ka¾e ime paketa, naèin html-helper-mode predvsem pomaga tistim
  piscem, ki se lotevajo pisanja dokumentov v zapisu HTML na roko, na
  star naèin.


  3.3.3.  TeX ( tex-mode )

  Èe pi¹emo v TeXu, je priroèno, da nam Emacs sproti barva ukaze,
  besedilo v nekaterih oklepajih in kar je ¹e te oblikovne krame. Naèin
  tex-mode se potrudi in stori to samodejno.


  Èeprav ne pi¹em veè pogosto v TeXu, mi je nekoè ta naèin moèno
  pomagal, da je postalo pisanje preglednej¹e.


  3.3.4.  SGML ( sgml-mode )

  Spis, ki ga pravkar berete, je bil pripravljen v jeziku SGML in
  kasneje zelo verjetno pretvorjen v drug zapis, ki ga berete. Naèin
  sgml-mode podpira osnove dokumentov SGML: preverjanje njihove
  skladenjske pravilnosti, skladenjsko barvanje, premikanje po znaèkah
  in poleg tega ¹e veliko veè. Naèin je del standardne distribucije
  Emacs.


  3.4.  Drug naèini

  Seveda, poleg na¹tetih obstaja ¹e mnogo drugih naèinov, ki nam
  olaj¹ujejo ¾ivljenje. Vzorec bolj priljubljenih za poku¹ino:


  3.4.1.  Nadzor razlièic (naèin vc )

  Naèin vc je vmesnik do raz¹irjenih sistemov za nadzor razlièic (RCS,
  SCCS in CVS). Omogoèa preprost vnos in povrnitev nadzorovanih datotek,
  pomaga pri upravljanju z razlièicami in izdajami programov ter
  podobno. Je del standardne distribucije Emacsa in je ob¹irno opisan v
  Emacsovi dokumentaciji.


  3.4.2.  Naèin za ukazno lupino

  Zakaj bi morali skoèiti v drugo okno X ali navidezno konzolo zgolj
  zaradi tega, ker bi radi pognali nekaj ukazov v ukazni lupini?
  Storimo to v Emacsu in si prihranimo nekaj truda. :-)


  Ukaz M-x shell v Emacsovem vmesniku po¾ene ukazno lupino.  V njej
  lahko postorimo skoraj vse, kar lahko v pravi ukazni lupini. Ne moremo
  pa poganjati programov, ki zahtevajo celo okno, taka sta na primer vi
  ali pine. Emacs se s pravo ukazno lupino pogovarja v ozadju.
  Ker je ta naèin del standardne distribucije, najdemo navodila za
  njegovo uporabo v prilo¾eni dokumentaciji.


  3.4.3.  Telnet in FTP

  Zakaj bi morali preklopiti v drugo okno X ali navidezno konzolo zgolj
  zaradi tega, ker bi radi pognali programa telnet ali ftp?  Tudi za to
  ni pravega razloga, oboje lahko storimo v Emacsu in si prihranimo
  nekaj truda. (Ali ste ¾e opazili vzorec?)


  Enako kot ukazno lupino v Emacsu po¾enemo tudi programa telnet ali
  ftp. Uporabimo ukaza M-x telnet ali M-x ftp in ju preskusimo sami.
  Dokumentacija pa nam bo pomagala pri razre¹evanju grenkih podrobnosti.


  3.4.4.  Man

  Zakaj bi morali preklopiti v drugo okno X ali navidezno konzolo zgolj
  zaradi tega, ker bi radi prebrali strani man? To lahko storimo iz
  Emacsa in si prihranimo nekaj truda. (Obljubljam, da se ne bom veè
  ponovil.)


  Enako kot ukazno lupino v Emacsu po¾enemo tudi pregledovalnik strani
  man. Uporabimo ukaz M-x man in ga preskusimo. Veè pa lahko preberemo v
  dokumentaciji.


  3.4.5.  Ange-FTP

  Citat iz navodil za  ange-ftp:


       Ta paket se trudi narediti dostop iz GNU Emacs do datotek in
       imenikov prek protokola FTP kar najbolj preprost in pregle­
       den. Podmno¾ica skupnih rutin za delo z datotekami je
       raz¹irjena za delo s programom FTP.



  To pomeni, da do datotek v oddaljenih sistemih dostopamo, kot da bi
  bile v lokalnem sistemu. Èe moramo urediti datoteko v drugem sistemu,
  Emacsu z imenom sistema v poti do datoteke povemo, kje naj jo odpre,
  Emacs pa bo poskrbel za vse ostalo in pridobil datoteko z oddaljenega
  sistema.  Ko datoteko shranimo z obièajnim ukazom C-x C-s, bo ange-ftp
  prestregel klic funkcije za shranjevanje in sam datoteko zapisal v
  oddaljeni sistem.


  Skladnja za oznaèevanje datotek je takole raz¹irjena... Datoteko
  ,,moja-datoteka.txt'' uporabnice ,,metka'' v njenem imeniku
  ,,naloga/podatki'' oddaljenega sistema ,,kjer.koli.si'' odpremo z
  ukazom C-x f, tako da za pot navedemo:


       /metka@kjer.koli.si:naloga/podatki/moja-datoteka.txt



  Tudi ta paket je del standardne distribucije Emacsa in ob¹irnej¹a
  navodila zanj najdemo v Emacsovi standardni dokumentaciji.



  Zahvaljujem se Etiennu Grossmannu (etienne@anonimo.isr.ist.utl.pt) za
  zgornji primer.


  4.  Emacs po meri

  Emacs prilagodimo po svoji meri, tako da spremenimo kodo v lispu.
  Nastavimo lahko spremenljivke, ki vplivajo na obna¹anje Emacsa ali
  dodamo nove funkcije, s katerimi dose¾emo nove uèinke ali pa z njimi
  nadomestimo obstojeèe funkcije.


  4.1.  Zaèasno prilagojevanje

  Èe posku¹amo Emacs prilagoditi, bomo zelo verjetno to najprej storili
  tako, da bodo spremembe le zaèasne. Èe ga pri prilagojevanju (ang.
  customization) zelo moèno polomimo, zado¹èa, da Emacs zapustimo z
  obièajnim ukazom C-x C-c in ga ponovno po¾enemo.

  Ko pa se odloèimo, katere spremembe ¾elimo ohraniti za vselej, jih
  lahko dodamo v svojo osebno datoteko .emacs in njihov uèinek se bo
  poznal ob vsakem zagonu Emacsa. O tem govorimo v naslednjih razdelkih.


  4.1.1.  Prirejanje vrednosti spremenljivkam

  Emacs najpreprosteje spremenimo, tako da spremenljivkam, od katerih je
  odvisno njegovo obna¹anje, doloèimo prave vrednosti. Lispova koda, s
  katero spremenljivki priredimo vrednost, je videti takole:


  (setq ime-spremenljivke nova-vrednost)




  Pri tem je ime-spremenljivke ime spremeljivke, ki ji prirejamo
  vrednost, nova-vrednost pa vrednost, ki jo prirejamo (V lispovem
  ¾argonu pravimo, da spremenljivko pove¾emo z vrednostjo.) Lispova
  funkcija setq ustreza prireditvenemu operatorju (obièajno
  predstavljenim z znakom =) v drugih programskih jezikih.


  Opomba: Na tem mestu preskakujem mnoge podrobnosti, da bi ostal dovolj
  razumljiv. Mnogi poleg te uporabljamo ¹e podobne lispove funkcije,
  kakr¹na je set ali celo setq-default. Èe ste resnièno radovedni, èemu
  so namenjene, si oglejte Emacsov priroènik o jeziku lisp.


  Oglejmo si vrstico iz moje datoteke .emacs:


  (setq-default transient-mark-mode t)




  Spremenljivka transient-mark-mode nadzoruje, ali bo obmoèje, ki ga
  izberemo, poudarjeno oznaèeno ali ne. V mnogih uporabni¹kih programih
  v GUI se klik mi¹ke in njen premik uporablja za oznaèevanje besedila,
  pri èemer to postane oznaèeno z inverznim videom ali ustreznimi
  barvami. Emacs stori podobno, èe je spremenljivka transient-mark-mode
  nastavljena na neprazno (ang. non-nil) vrednost.



  Kak¹no vrednost?


  Poèasi. Potrebna je kratka zastranitev. Veèina programskih jezikov
  pozna logièni vrednosti resnièno in neresnièno. V jezikih C in C++ je
  logièna vrednost spremenljivke enaka resnièno, èe je njena vrednost
  razlièna od niè. V perlu je logièna vrednost enaka resnièno, èe je
  vrednost spremenljivke razlièna od niè ali od null.
  ???????Prevod???????  V lispu gre za enako idejo, le imena in oznake
  so drugaène.


  Logièna vrednost resnièno je v lispu obièajno oznaèena kot t in
  neresnièno (ali null) kot nil. Enako kot v drugih jezikih je vsaka
  vrednost, ki je razlièna od neresnièno, vzeta kot resnièno.


  Da si ogledamo popolni opis, na kaj vse vpliva spremenljivka
  transient-mark-mode, uporabimo pomoè na zvezi. Vpi¹imo C-h v ali M-x
  describe-variable in nato transient-mark-mode. Èe smo leni, si lahko
  pomagamo s tipko za dopolnjevanje Tab. Vpi¹imo le zaèetni kos imena
  spremenljivke in pritisnimo tipko Tab. Èe smo ¾e zapisali dovolj¹en
  del njenega imena, da jo lahko Emacs enoznaèno doloèi, bomo takoj
  dobili njeno ime izpisano v celoti.


  Druga spremenljikva, ki jo pogosto nastavljamo, je fill-column.
  Spremenljivka pove, kako ¹irok je zaslon, da more Emacs v naèinu auto-
  fill-mode glede na to primerno ovijati besedilo. Da bi si najbolj
  nazorno ogledali njen uèinek, jo nastavimo na absurdno majhno
  vrednost:


  (setq fill-column 20)




  A zgolj zapis tega izraza ¹e ne stori niè.  Emacsu moramo povedati,
  naj zapisani ukaz tudi izvede (ang. evaluate).  Utripalko postavimo na
  konec izraza in vtipkajmo C-x C-e, kar poklièe funkcijo eval-last-
  sexp, èe vas ¾e zanima.  Ko storimo to, lahko opazimo, da se je v
  pogovornem oknu na dnu zaslona izpisala vrednost 20 (ali karkoli ste
  uporabili za nastavitev). To je tudi vrednost funkcije, ki smo jo
  pravkar uporabili.


  Da se preprièamo, kako ovijanje po novem deluje, vpi¹imo stavek ali
  dva.  Èe imamo omogoèen podnaèin auto-fill-mode (èeprav ga verjetno
  nimamo), lahko opazimo, da se besedilo ovija pred 20 stolpcem. Drugaèe
  pa zatem, ko smo vnesli nekaj besedila, pritisnemo M-q, kar poklièe
  funkcijo fill-paragraph. Ta pa ovije besedilo zadnjega odstavka.


  4.1.2.  Zveze z datotekami

  Emacs lahko tako prilagodimo, da bo doloèeno opravilo samodejno
  naredil vsakiè, ko odpremo datoteko doloèenega tipa. To je podobno
  nekaterim GUI, ki samodejno po¾enejo namenski program (ang.
  application) vsakiè, ko kliknemo na ikono datoteke doloèenega tipa.
  Ali ¾elimo na primer, da Emacs samodejno preklopi glavni naèin v text-
  mode vsakiè, ko odpremo datoteko s konènico .txt? V resnici se je to
  ¾e zgodilo. :-) No, pa naroèimo Emacsu, naj datoteko ,,README'' odpre
  vselej v naèinu text-mode.


  (setq auto-mode-alist (cons '("README" . text-mode) auto-mode-alist))




  Hmm?


  Ne da bi se poglobili v programiranje v lispu, ki za obèutek
  razumevanja ni nujno potrebno, a ¹kodi tudi ne, èe se ga nauèimo,
  zaenkrat zado¹èa, da povemo, da spremenljivka auto-mode-alist vsebuje
  seznam parov. Vsak par je sestavljen iz regularnega izraza in iz imena
  Emacsovega naèina. Èe ime datoteke, ki jo odpiramo, ustreza kateremu
  od regularnih izrazov (v na¹em primeru nizu ,,README''), bo Emacs
  pognal naèin, ki smo ga podali.


  Na prvi pogled zamotana skladnja zgornjega primera je tak¹na zaradi
  tega, ker dodajamo seznamu parov nov par. Najbr¾ ne bi ¾eleli, da
  spremenljivki auto-mode-alist zgolj priredimo novo vrednost in pri tem
  izgubimo vse ¾e nastavljene pare.


  In èe bi ¾eleli, da Emacs samodejno uporabi naèin html-helper-mode
  vsakiè, ko odpremo datoteko s konènico .html ali .htm, bomo v svojo
  datoteko .emacs dodali vrstici:


  (setq auto-mode-alist (cons '("\\.html$" . html-helper-mode) auto-mode-alist))
  (setq auto-mode-alist (cons '("\\.htm$" . html-helper-mode) auto-mode-alist))




  ©tevilo mo¾nosti je resnièno neomejeno.


  4.2.  Uporaba datoteke .emacs

  Po tem ko smo v Emacsu ¾e pre¾iveli nekaj èasa in dobili obèutek, kaj
  lahko storimo s prilagojevanjem, bomo morebiti ¾eleli prilagoditve
  narediti za trajne (ali vsaj do naslednje spremembe). èe uporabljamo
  Emacs vsak dan, bomo opazili, da velikost datoteke .emacs s èasom
  nara¹èa.  To je zelo drobro, saj ka¾e, da smo ugotovili, kako naj nam
  Emacs slu¾i tako, kot hoèemo, da bo. Velika ¹koda je, da se enako ne
  obna¹a ¹e veè programov.


  èe se morebiti ¹e nismo vpra¹ali, vsakiè ko po¾enemo Emacs, ta najprej
  v na¹em domaèem imeniku poi¹èe datoteko .emacs.  V njej je koda v
  lispu, ki jo ¾elimo pognati ob vsakem zagonu programa Emacs, s èimer
  omogoèimo prilagojevanje, o katerem smo pravkar govorili.


  ¹e en primer iz moje datoteke  .emacs:


  (setq inhibit-startup-message t)




  Spremenljivka inhibit-startup-message odloèa, ali bo Emacs ob zagonu
  izpisal pozdravno sporoèilo ali pa ga ne bo.  Ko bomo Emacs
  uporabljali ¾e nekaj èasa, nam bo pozdravljanje verjetno ¹lo po¹teno
  na ¾ivce. Sam sem znal uporabiti pomoè in poiskati naèin, kako
  pozdravljanje izklopim.


  Za nalogo v domaèem imeniku ustvarimo datoteko .emacs in vanjo dodajmo
  navedeno vrstico.  Zapustimo Emacs in ga ponovno po¾enimo. Pozdravnega
  sporoèila ob novem zagonu ne bi smelo biti.


  Pogosto bomo v zvezi z Emacsom ali kak¹nim od spremljajoèih paketov
  prebrali nasvet, kako lahko s primerno kodo v datoteki .emacs
  prilagodimo njihovo delovanje.


  Datoteka z odgovori na pogosto zastavljena vpra¹anja, dosegljiva z C-h
  F, vsebuje nekaj predlogov v zvezi s prilagojevanjem, kar nas bo
  morebiti zanimalo.


  4.3.  Paket za prilagojevanje

  Ko je Emacs s èasom vse bolj rasel in se razvijal, se je nekdo
  domislil, da ,,mora obstajati la¾ji naèin za novince, da si ga
  prilagodijo''.  Nastal je paket za prilagojevanje customize.


  Paket ponuja preprostej¹e prilagojevanje delov Emacsa. Preskusimo ga
  tako, da v glavnem menuju Help obi¹èemo podmenu Customize ali pa
  vtipkamo M-x customize.


  Mo¾nosti za prilagojevanje so razvr¹èene v logiène skupine, denimo
  ,,Editing'', ,,Programming'', ,,Files'' in podobno. Nekatere skupine
  vsebujejo nove podskupine.


  èe si Emacs prilagodimo s pomoèjo tega vmesnika, bo Emacs spremembe
  vpisal v na¹o datoteko .emacs. To je zelo priroèno, saj si lahko
  spremembe ogledamo in jih po potrebi sami popravimo.


  Ker ne uporabljam vmesnika za prilagojevanje ,,Customize'', ¾al ne
  morem veliko povedati o njem.


  4.4.  Zaslon oken X

  Kot vsak lepo vzgojen namenski program tudi Emacs upo¹teva sredstva
  (ang. resource) oken X. S tem poudarjamo, da lahko zaèetne nastavitve,
  denimo za barve, geometrijo okna in podobne lastnosti oken X, opravimo
  na enak naèin kot pri programih xterm, nxterm in sorodnih.


  V ilustracijo navajam ustrezne vrstice iz svoje datoteke ~/.Xdefaults:


  emacs*Background: DarkSlateGray
  emacs*Foreground: Wheat
  emacs*pointerColor: Orchid
  emacs*cursorColor: Orchid
  emacs*bitmapIcon: on
  emacs*font: fixed
  emacs.geometry: 80x25




  Opomba prevajalca: Uporabniki, ki pi¹emo v razporedu ISO-8859-2,
  imenovanem tudi Latin-2, bomo raje uporabili enakovredno pisavo s
  ¹umniki, èe jo seveda imamo name¹èeno v sistemu:


  emacs*font: -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-2




  Za ob¹irnej¹a navodila o sredstvih X si moramo ogledati strani man, ki
  so posveèene oknom X, man X.


  Chris Gray (cgray4@po-box.mcgill.ca) pripominja:


       Zdi se, da se v distribuciji Debian datoteka ~/.Xdefaults ne
       uporablja. Namesto vanjo lahko postavimo ukaze z enakim
       uspehom v datoteko /etc/X11/Xresources/emacs, pa bomo dobili
       enako pisane barve, kot ko smo uporabljali RedHat.



  5.  Priljubljeni paketi

  Poleg mnogih Emacsovih naèinov je na voljo ¹e veliko dodatnih paketov
  (ang. package). Imenujem jih paketi, ker so veè kot le novi naèini.
  Obièajno vkljuèujejo posebne priroène programe (ang. utility) ali pa
  so tako obse¾ni, da bi bila oznaka ,,naèini'' do njih krivièna.  V
  nekaterih primerih pa gre za tako programsko opremo, ki raz¹irja ali
  zdru¾uje ostale Emacsove naèine ali pakete. Definicija ni popolnoma
  jasna, a kakr¹na je, tak¹na zado¹èa.


  5.1.  VM (po¹tni program)

  Navedek iz odgovorov na pogosto zastavljena vpra¹anja o VM:


       VM (View Mail) je podsklop v Emacsu za branje in
       odpo¹iljanje pisem znotraj Emacsa.  Vsebuje ukaze, ki jih
       prièakujemo in potrebujemo za delo s po¹to, na primer
       pripravo odgovorov na pisma, shranjevanje pisem v mape,
       brisanje pisem in podobno. Poleg teh obstajajo ¹e ukazi za
       pripravo izvleèkov in povzetkov (ang. digest), prepo¹iljanje
       sporoèil, njihovo urejanje glede na razliène kriterije...



  Ko sem zaèenjal z Emacsom, sem nekaj èasa uporabljal VM. Zdelo se mi
  je, da je prava zamenjava za Pine, Elm ali veèino podobnih po¹tnih
  programov. A za branje po¹te in novic ¾elim uporabljati le en program.
  VM se razvija ¹e danes in je dobro podprt.


  Na voljo je na spletni strani http://www.wonderworks.com/vm/.


  5.2.  Gnus (program za po¹to in novice)

  Navedek iz priroènika za  GNUS:


       Gnus je laboratorij za branje sporoèil.  Omogoèa, da si sko­
       raj vse stvari ogledamo, kot bi bile novice iz novièarske
  skupine.  Z njim lahko beremo elektronsko po¹to, pregledu­
  jemo imenike ali uporabljamo program ftp, z njim lahko celo
  beremo novièarske skupine.



       Gnus posku¹a ponuditi uporabnikom, ki berejo novièarske
       skupine, tisto, kar daje Emacs uporabnikom, ki urejajo
       besedilo. Gnus uporabnika pri tem nikakor ne omejuje in mu
       pomaga raz¹iriti Gnus, da se obna¹a, kakor uporabnik ¾eli.
       Program ne sme upravljati z ljudmi, ti morajo imeti mo¾nost,
       da s programom storijo ali starejo, karkoli ¾elijo!



  Kot ste morebiti opazili, trenutno uporabljam za branje po¹te in
  novièarskih skupin paket GNUS. GNUS se ¹e vedno razvija in je dobro
  podprt.


  Na voljo je na spletni strani: http://www.gnus.org/.


  5.3.  BBDB (rollodex)

  BBDB je ime za Insidious Big Brother Database, program tipa rollodex.
  Deluje dobro v povezavi z drugimi Emacsovimi programi za po¹to
  (vkljuèno z VM in GNUS).


  Na voljo je na spletni strani:
  http://pweb.netcom.com/~simmonmt/bbdb/index.html.


  5.4.  AucTeX (¹e en naèin za TeX)

  AucTeX je ¹e en naèin za urejanje datotek TeX.


  Navedek s spletne strani za AucTeX:


       AUC TeX je raz¹irljivi paket za pisanje in oblikovanje
       datotek v zapisu TeX za veèino razlièic urejevalnika GNU
       Emacs. Podprtih je mnogo razliènih paketov s texovimi
       makroukazi, vkljuèno s paketi AMS TeX, LaTeX in TeXinfo.



  Na voljo je na spletni strani: http://sunsite.auc.dk/auctex/.


  6.  Drugi viri

  Ta razdelek govori o knjigah, spletnih straneh, novièarskih skupinah,
  seznamih elektronskih naslovov in podobnih krajih, kjer je najti
  gradivo o Emacsu.


  6.1.  Knjige

  Na voljo je le nekaj zares dobrih knjig za uèenje Emacsa.  Poleg tega
  pa bomo ugotovili, da mnoge knjige o Linuxu in Unixu vsebujejo
  poglavje, ki je namenjeno Emacsu (in urejevalniku vi).


  6.1.1.  Learning GNU Emacs

  Avtorji: Debra Cameron, Bill Rosenblatt, Eric S. Raymond


  Izdajatelj: O'Reilly & Associates - http://www.ora.com/


  Knjigo lahko kupimo s popustom pri Amazon.com z njihovim dru¾abni¹kim
  programom: http://www.amazon.com/exec/obidos/ASIN/1565921526/


  Komentar: To je verjetno najbolj¹a knjiga za novince. Potem ko smo si
  ogledali prièujoèi HOWTO in se sprehodili po odgovorih na pogosto
  postavljena vpra¹anja, je ta knjiga najprimernej¹i in najbolj izèrpni
  vodnik.


  6.1.2.  Writing GNU Emacs Extensions

  Avtor: Bob Glickstein


  Izdajatelj: O'Reilly & Associates - http://www.ora.com/


  Knjigo lahko kupimo s popustom pri Amazon.com z njihovim dru¾abni¹kim
  programom: http://www.amazon.com/exec/obidos/ASIN/1565922611/


  Komentar Potem ko smo Emacs ¾e uporabljali nekaj èasa in se odloèili,
  da napi¹emo svoj lastni naèin ali pa opravimo bolj zahtevno
  prilagoditev, nam bo morebiti koristila ta knjiga.  Èetudi nas ne
  posku¹a nauèiti jezika lisp, vsebuje kratek uvod v ta jezik.


  6.1.3.  Programming in Emacs Lisp: An Introduction

  Avtor: Robert J. Chassell


  Iz datoteke  README:


       To je osnovni uvod v programiranje v Emacsovem jeziku lisp
       za ljudi, ki niso programerji in ki jih programiranje morda
       niti ne zanima, a bi si radi prilagodili ali raz¹irili svoje
       raèunalni¹ko okolje.



  Priroènik je v celoti na voljo za brezimni ftp v stre¾niku  GNU FTP:
  ftp://prep.ai.mit.edu/gnu/emacs/.


  Knjiga v lepem tisku je na voljo tudi pri Amazon.com prek njihovega
  dru¾abni¹kega programoma:
  http://www.amazon.com/exec/obidos/ASIN/1882114418/jeremydzawodny/.


  Komentar: Knjiga je dober uvodni priroènik v Emacsov lisp in je
  primerna tudi za tiste, ki nismo dolgometra¾ni programerji.




  6.1.4.  The GNU Emacs Lisp Reference Manual

  Avtor: Richard Stallman


  Izdajatelj: The Free Software Foundation - http://www.fsf.org/


  Priroènik je v celoti na voljo za brezimni ftp v stre¾niku GNU FTP:
  ftp://prep.ai.mit.edu/gnu/emacs/.


  Komentar: Knjiga je kljuèni vodnik (ang. definitive guide) za
  programski jezik Emacs Lisp.


  6.2.  Spletna mesta

  6.2.1.  EMACSulation

  EMACSulation je ime kolumna, ki ga pi¹e Eric Marsden za revijo na
  zvezi Linux Gazette, dostopno na spletnem mestu
  http://www.linuxgazette.com/. Ob èasu tega pisanja je bil zadnji
  èlanek http://www.linuxgazette.com/issue39/marsden.html. Ob koncu
  èlanka so napotki, kje najti prej¹nje dele.


  6.3.  Novièarske skupine

  Pove¾imo se s svojim krajevnim stre¾nikom za novièarske skupine in
  poi¹èimo tiste, ki v imenu vsebujejo niz ,,emacs'', pa jih bomo gotovo
  na¹li nekaj.  Moj stre¾nik posreduje naslednje skupine:


  *  comp.emacs

  *  comp.emacs.sources

  *  gnu.emacs

  *  gnu.emacs.bug

  *  gnu.emacs.help

  *  gnu.emacs.sources


  6.4.  Seznami elektronskih naslovov

  Edini seznam elektronskih naslovov, za katerega vem, da je namenjen
  uporabnikom Emacsa, zdru¾uje uporabnike razlièice Emacsa za
  Micro$oftov sistem Windows NT. Veè o tem v seznamu odgovorov na
  pogosto zastavljena vpra¹anja o NT-Emacs
  http://www.cs.washington.edu/homes/voelker/ntemacs.html.


  6.5.  Arhiv za Emacsov lisp

  Navedek iz datoteke README iz arhiva za Emacsov lisp:


       Arhivi za Emacsov lisp v stre¾niku ftp.cis.ohio-state.edu
       vsebujejo razliène ko¹èke in pakete kode v Emacsovem lispu.
       Emacsov lisp je jezik za raz¹iritev urejevalnika GNU Emacs,
       ki ga izdaja Free Software Foundation.  Èeprav je veèina
       kode za Emacsov lisp vkljuèena v distribucijo za GNU Emacs,
  je mnogo ljudi napisalo pakete za vmesnike do drugih siste­
  mov, za bolj¹o podporo urejanju v programskih jezikih, ki
  jih uporabljajo, dodalo povsem nove funkcije ali pa spreme­
  nilo privzeto obna¹anje Emacsa.  Veèino vsebine tega arhiva
  so pripravili posamezniki, ki so jo distribuirali v javnost
  prek internetnih seznamov elektronskih naslovov ,,info-
  emacs'' ali ,,info-gnu-emacs'' in novièarskih skupin
  ,,comp.emacs'', ,,gnu.emacs'' ali ,,gnu.emacs.sources''.



  Arhivi so na voljo za brezimni dostop ftp na spletnem mestu
  ftp://ftp.cis.ohio-state.edu/pub/emacs-lisp/.


  Opomba: Kolikor vem, arhiv za Emacsov lisp poèasi zastareva.  Nove ali
  osve¾ene pakete na njem vidim le poredko, èeprav vem, da obstajajo in
  da so celo priobèeni v novièarski skupini comp.emacs.sources.
  (Prosim, popravite me, èe se motim.)


  7.  Zahvale

  Naslednji pisci so pomagali pri nastajanju tega spisa.


  *  Robert Vollmert rvollmer@gmx.net

  *  Larry Brasfield larrybr@seanet.com

  *  Etienne Grossmann etienne@anonimo.isr.ist.utl.pt

  *  Thomas Weinell kf6mli@amsat.org

  *  Adam C. Finnefrock adam@bigbro.biophys.cornell.edu

  *  Chris Gray cgray4@po-box.mcgill.ca

  *  Robert J. Chassell bob@rattlesnake.com

  *  Isaac To kkto@csis.hku.hk

  *  Matteo Valsasna valsasna@elet.polimi.it

  *  Tijs van Bakel smoke@casema.net