Naprej Nazaj Kazalo

3. Načini urejevalnika Emacs

Načini v urejevalniku Emacs predstavljajo različna obnašanja in lastnosti, ki jih lahko vključite in izključite (ali prilagodite) v različnih okoliščinah. Prav ti različni načini naredijo urejevalnik (Emacs) primeren za pisanje dokumentacije, za programiranje v različnih jezikih (C, C++, Perl, Python, Java, in še v veliko drugih), za tvorjenje domačih strani, pošiljanje elektronskih sporočil, branje novic Usenet, vodenje vaših sestankov in celo za igranje iger.

Načini v Emacsu so dejansko samo knižnice kode v programskem jeziku Lisp, ki na nek način razširijo, prilagodijo ali posodobijo urejevalnik Emacs.

3.1 Načini Major v primerjavi z načini Minor

Primarno sta na voljo dva različna tipa načinov: Major in Minor. Dokler ne boste pričeli delali z njimi, boste razliko dokaj težko razumeli. Pa vseeno poskusimo.

V določenem trenutku je lahko aktiven samo en način major, medtem ko je lahko v določenem trenutku aktivnih več načinov minor. Načini tipa major so običajno specifični za določeno nalogo oz. programski jezik, medtem ko so načini minor manjši in manj specifični pripomočki, ki izpolnjujejo veliko opravil.

To zveni nekoliko abstraktno, pa poskusimo razložiti s primerom. Obstaja način, ki ga zelo pogosto uporabljam, kadar pišem preproste stare tekstovne datoteke. Imenuje se tekstovni način (text-mode). Ta način je bil razvit za pisanje prosto oblikovanega besedila, na primer za datoteke README. Ta način zna prepoznavati besede in odstavke in običajno preverja, da počne stvari, ki jih od njega pričakujem, kadar uporabljam običajne navigacijske tipke.

Kadar pa pišem besedila za ljudi, običajno želim, da dobro izgledajo. Besedila morajo biti lepo prelomljena. Da bi omogočil deljenje besed, samo vključim način tipa minor auto-fill. Ta način poskuša storiti Pravilne Stvari, kadar vnašam besedilo in pridem do konca vrstice. Dejstvo da gre za način tipa minor pomeni, da lahko deluje v različnih načinih tipa major. Definicija ``Prave Stvari'', ko dosežem konec vrstice se razlikuje kadar sem v tekstovnem načinu (text-mode) od definicije kadar sem na primer v java-načinu (java-mode). Ne želim da bi bila moja koda jezika Java deljena, kot da bi šlo za slovensko besedilo. Vsekakor pa želim, da so bloki komentarja v kodi jezika Java pravilno deljenji! Način auto-fill je dovol prebrisan, da za te stvari samodejno poskrbi.

Avtorji številnih načinov v urejevalniku Emacs so se zelo potrudili, da stvari, ki bi morale delovati kot načini tipa minor tako tudi delujejo.

Če se vrnete nazaj in si ogledate skico ASCII zalona urejevalnika Emacs, boste opazili, da načinovna vrstica prikazuje načine v katerih je Emacs. V tistem primeru je bil to način z imenom ``Lisp Interaction'', ki je privzet način. Uporaben je samo v primeru, če boste želeli programirati v Lispu. (Zakaj pa ne, saj je večina urejevalnika Emacs napisana v tem jeziku?)

3.2 Programski načini

Prvo in najpomembnejše, Emacs je zgradil programer za programerje. Obstajajo zelo kvalitetni načini za skoraj vse priljubljene programske jezike (in celo za nekatere manj priljubljene). Na kratko bom opisal samo nekatere.

Večina programskih načinov ima nekaj skupnih karakteristik. Običajno izvajajo nekatere ali vse izmed naslednjih operacij:

Obstaja tudi nekaj načinov, ki niso specifični za jezik, pomagajo pa pri izvajanju opravil, ki so običajni pri programiranju v večini jezikov. Stvari kot je komuniciranje z vašo programsko opremo za nadziranje različic, samodejno dodajanje komentarjev v vašo kodo, tvorjenje datotek Makefiles, posodabljanje dnevnikov, itd.

Ko seštejete vse te načine in dodate še zrelost in zanesljivost kode urejevalnika Emacs, ga je kaj mogoče primerjati s komercialnimi Integriranimi razvojnimi okolji (Integrated Development Environments - IDE) za jezike kot sta C++ in Java. Seveda pa je urejevalnik Emacs prosto dostopen.

C/C++/Java

Ker je skladnja jezikov C, C++, in Java dokaj podobna, obstaja en sam način urejevalnika Emacs, ki skrbi za vse tri jezike (pa tudi za Objective-C in IDL). Je zelo zrel in popoln paket in je vključen v distribucijo Emacsa. Ta način pokličete s kombinacijo tipk cc-mode ali CC Mode.

Več podrobnosti ali če želite dobiti novo različico najdete na spletnem naslovu http://www.python.org/emacs/.

Perl

Dejansko obstajata dva načina za urejanje kode Perl v urejevalniku Emacs. Prvi način pokličete s kombinacijo tipk perl-mode (kot ste verjetno že sami ugotovili) drugega pa s kombinacijo cperl-mode. Ne vem zakaj obstajata dva načina (tega ne piše v dokumentaciji), zdi pa se, da je način perl-mode originalni način za urejanje kode Perl v urejevalniku Emacs. Vsebuje nekoliko manj lastnosti kot cperl-mode, manjka pa mu tudi sposobnost prepoznavanja nekaterih novejših konstruktov jezika Perl.

Jaz osebno uporabljam in vam priporočam cperl-mode, ki je dokaj aktivno vzdrževan in vsebuje vse lastnosti, ki sem jih kadarkoli želel. Zadnjo različico lahko najdete na naslovu: ftp://ftp.math.ohio-state.edu/pub/users/ilya/emacs.

Ne držite me za besedo. Preizkusite oba in izberite tistega, ki bolj ustreza vašim zahtevam.

Python

Tudi za Python (še en zelo priljubljen skriptni jezik) je v urejevalniku Emacs na voljo način. Kolikor vem, tega načina ni v distribuciji urejevalnika GNU Emacs, je pa priložen distribuciji urejevalnika XEmacs. Vendar dokaj dobro deluje v obeh urejvalnikih.

Način python-mode lahko najdete na uradni spletni strani Pythona http://www.python.org/emacs/python-mode/.

Ostali

Obstaja veliko veliko ostalih načinov za urejanje, ki pomagajo programerjem. Ti načini vam lahko pomagajo pri stvareh kot so:

In še veliko več. Oglejte si zadnji del te dokumentacije, kjer boste našli več informacij o dodatkih in iskanju drugih načinov.

3.3 Avtorstvo

Posebni načini urejevalnika Emacs niso omejeni samo na tiste ljudi, ki so jih napisali. Tudi ljudje, ki pišejo dokumentacijo (kakršno koli), lahko imajo koristi od velikega izbora načinov v urejevalniku Emacs.

Preverjanje črkovanja (način ispell)

Avtorji, ki pišejo različno dokumentacijo, morajo vsake toliko časa preveriti pravilnost črkovanja. Če imate nameščen GNU ispell, lahko uporabite kombinacijo tipk M-x ispell in preverite pravilnost črkovanja v trenutnem bufferu. Če ispell najde besede, ki jih ne pozna, vas bo o tem obvestil s pomočjo seznama možnih zamenjav in vam omogočil izbrati eno (ali nobeno) izmed njih. Njegova funkcionalnost se lahko kosa s črkovalniki v priljubljenih komercionalnih paketih programske opreme.

HTML (način html-helper)

Če vsake toliko časa napišete kakšno datoteko tipa HTML (ali pa to počnete pogosto), boste mogoče preizkusili način html-helper-mode. Dobite ga lahko na naslovu http://www.santafe.edu/~nelson/tools/, kot tudi dokumentacijo in stvari, ki so povezane s tem načinom.

Kot je razvidno iz njegovega imena, način html-helper-mode nudi veliko stvari, ki pomagajo tistim ljudem, ki še vedno ročno pišejo dokumente tipa HTML -na staromoden način.

TeX (tex-mode)

Kadar pišete dokumente v urejevalniku TeX, je pogostokrat v pomoč, če si priskrbite urejevalnik Emacs, ki vnese nekoliko barv in nudi osvetljevanje oklepajev in ostalih znakov. Način tex-mode sam poskrbi za te stvari.

Čeprav ne pišem več pogostokrat neposredno v urejevalniku TeX, če pa to že počnem, ta način poskrbi za preglednejšo izvorno kodo TeX.

SGML (sgml-mode)

Dokument, ki ga sedaj berete je bil napisan v SGML (oz. pretvorjen v format, v katerem ga trenutno berete). sgml-mode nudi vse osnove za pisanje dokumentov tipa SGML: ovrednotenje (validation), osvetljevanje, forward-tag, backward-tag in še veliko več. Ta način je standarden del urejevalnika Emacs.

3.4 Ostali načini

Seveda obstaja še veliko drugih priročnih načinov, ki vam olajšajo delo. Naštel bom samo nekaj najbolj priljubljenih:

Nadzor različic (vc mode)

Način vc komunicira z veliko večino popularnih programov za nadzor različic (RCS, SCCS, CVS), kar zelo poenostavi označevanje in odznačevanje datotek, upravljanje z izdajami itd. Je standarden del urejevalnika Emacs, dokumentacijo pa lahko najdete v dokumentaciji urejevalnika Emacs.

Način lupine

Zakaj bi odpirali novo okno X ali navidezno konzolo samo zaradi tega, da bi izvršili nekaj ukazov v lupini? Storite to kar v urejevalniku Emacs in si prihranite nekaj težav. :-)

M-x shell bo znotraj bufferja urejevalnika Emacs zagnal lupino. V tem bufferju lahko počnete skoraj vse stvari, ki jih lahko počnete tudi v običajnem pozorniku lupine (razen zaganjanje programov kot je vi ali pine), ker se urejevalnik Emacs v ozadju pogovarja z vašo dejansko lupino.

Tudi to je standarden del urejevalnika Emacs in je dokumentiran v dokumentih urejevalnika Emacs.

Telnet in FTP

Zakaj bi odpirali novo okno X ali navidezno konzolo, samo da bi zagnali telnet ali FTP? Storite to kar v urejevalniku Emacs in si prihranite nekaj težav. (Ali ste že opazili, da se ponavljam?)

Prav tako kot zaganjanje lupine znotraj urejevalnika Emacs, lahko zaženete tudi telnet in ftp. Preizkusite M-x telnet ali M-x ftp in se prepričajte sami. Preberite dokumentacijo in poiščite vse podrobnosti.

Man

Zakaj bi prehajali v drugo okno X ali navidezno konzolo, samo da bi prebrali strani programa man? Storite to kar v urejevalniku Emacs in si prihranite nekaj težav. (Obljubim, da bom sedaj nehal s tem.)

Prav tako kot zaganjanje lupine znotraj urejevalnika Emacs, lahko prebirate tudi strani priročnika. Preiskusite M-x man in se prepričajte sami. Več podatkov lahko najdete v dokumentaciji.

Ange-FTP

Citat iz dokumentacije ange-ftp:

Ta paket poskuša olajšati dostopanje do datotek in imenikov, ki uporabljajo FTP znotraj urejevalnika GNU Emacs. Podmnožica teh običajnih rutin za delo z datotekam je razširjena na delo s progamom FTP.

To pomeni, da lahko obravnavate datoteke, ki so na oddaljenih računalnikih, kot bi bile lokalne. Če torej morate urediti datoteko na drugem računalniku, samo povejte urejevalniku Emacs naj jo odpre (s pomočjo malce različne sintakse poti) in poskrbi za vse podrobnosti prijavljanja in prejemanja datoteke. Ko potem shranite datoteko s pomočjo C-x C-s, ange-ftp prestreže proces shranjevanja in datoteko zapiše nazaj na oddaljen računalnik.

Malce drugačna sintaksa poti se glasi... Datoteka z imenom ``mojadatoteka'', v imeniku ``uporabnik '', na računalniku z imenom ``moj.gostitelj.org'' se lahko odpre z odprtjem datoteke (C-x f):

/uporabnik@moj.gostitelj.org:~uporabnik/mojadatoteka

Tudi to je standardni del distribucije urejevalnika Emacs, torej lahko najdete informacije v dokumenaciji za urejevalnik Emacs.

Za zgornji primer se zahvaljujem Etiennu Grossmannu ( etienne@anonimo.isr.ist.utl.pt).


Naprej Nazaj Kazalo