Je ale fura situaci, kdy tyhle veci nevadi-na jednouzivatelskou editaci, mailovani, a fura dalsich cinnosti proste multiuser a ochranu vubec nepotrebujete. Protoze programy v lispu jsou stabilni celkove selhani systemu taky moc nehrozilo. A proto se rozhodli udelat emacs. Je to vlastne samostatny prenositelny os,ktery bezi jako task normalnich unixu a tak ho lidi muzou vyuzivat jen k tomu k cemu chteji. Vlastne slouzi jako doplnek k unixu. To co jde v unixu delat jen tezko-fullscreen aplikace, ruzne editory databaze apod. Programy co komunikuji z jinymi procesy atd. jde v emacs snadno a naopak-proste delat kompiler jako program pro emacs by bylo zbytecne a neefektivni. Programuje se v elispu coz je lisp z rozsirenim prave pro tyhle aplikace-ma pekne reseny obrazovkovy input/output apod. Dalsi vyhoda toho vsecho je ze muzete emacs hoodne prispusobit-predelate promene-switche a treba i nejaky ty kousky kodu pripsete proste muzete uplne vsechno. Je fura rozsireni co ruzni autori dodavaji k emacs-pro prolog,clisp atd..Proste tak jak muzete stelovat emacs nemuzete stelovat zadny jiny prostredi.
Aplikace pro emacs-tedy co emacs umi:
Textovy editor. nadstavby:
Popsat tohle vsechno neni mozne..ovladani emacs je ale logicke a sikovne tak
popisu naproste zaklady.
Obrazovka
Emacs muze bezet v textu nebo xwoknech. Cele obrazovce se rika frame. V ni
muze byt nekolik oken-na zacatku jsou dve-jedno pres celou obrazovku-to je
aplikace editor vetsinou v lisp modu. A dole je jedno maly pres jednu radku.
To je minibuffer-jakasi systemova konzole-sem jde stdout programu,tady se
zadavaji prikazy atd..
Kazde okno ma prirazeny jeden buffer-coz je neco jako unixackej terminal nebo xwokeni drawable proste to kam aplikace davaji svuj vystup. Jaky buffer zrovna vidite je napsano uplne dole:
-----Emacs:necoJa tam napsano v jakych je modech,jaky buffer ty data zpravuje.
--ch-Emacs: buf (major minor)----pos-----Takze:ch jsou ** kdyz buffer byl zmenen-je treba savnout. buf je jmeno bufferu-vetsinou stejne jako jmeno editovaneho souboru major je hlavni mod-tedy jaka aplikace spravuje:c-mode pro c editor apod...
minor je jaka aplikace dela input-output jsou tu minnor mody jako
lamat/nelamat radky apod..Techto modu muze byt vice-jsou to vlastne
aplikace co zpravuji hlavni klavesy-fill pro zarovnavani,ovwrt pro
prepis, Narrov atd..Klavesy co tyhle mody nesezerou jdou teprve major
modu a ten ridi veci jako srovnavani syntaxe cecka,volani kompileru a
tak.
pos je pozice pointeru tedy cursoru
Jak pracujou klavesy
Emacs ma nekolik sad znaku-normalni znake jako A,B proste ascii
Meta-klavesy z alt:M-a je Alt+a
CTRL-z kontrolem:C-a je CTRL+a
M-C-a je Alt+Ctrl+a
Tyto klavesy se nepisou standartne do bufferu a vyvalavaji ruzne akce
(jako v kazdem editoru) Taky se daji mackat pomoci esc a je M-a
Klavesnicove prikazy jsou rozdeleny do tri skupin:
jednoklavesove:C-f,up,down
dvouklavesove-pomoci prefix klaves-nejcastejsi je C-X. Potom ceka jeste
na jednu klavesu-treba C-X C-C je exit. Je tu dulezity prefix C-h a potom
klavesa-to vypise vsechny prikazy zacinajici od ty klavesy-moc se to hodi.
Dalsi dulezita takova klavesa je C-u ta umozni rict kolikrat se vyvola
dalsi klavesa-C-u10
a prikazy-M-X vas dostane na prikazovou radku kde muzete zadavat veci jako
c-mode nebo compile. Na teto radce muzete udelat uplne cokoliv a casto
pouzivane veci si pak muzete namapovat na jednoklavesove nebo dvouklavesove
prikazy. Emacs jih uz hodne namapovanych ma..
Samozdrejme ze kazdy prikaz je vlastne jmeno lispove fce,kterou chcete
volat. takze treba left je namapovano na funkci forward, ktera veme
pozici pointeru a posune ji. Tak muzete delat fura srandovnich klaves,co
vam skacou na zacatek ceckarske funkce apod.
Mapovani mezi klavesama je binding a je ulozeno v tabulkach,kterym se rika
keymap.
Minibuffer taky muze davat prompty od ruznych prikazu-treba find file
vam tam hodi:
Ma i svoji historii:
Region normalne neni videt..protoze skoro kazdej prikaz dela
region- insert hodi do regionu vlozenej text a tak..Aby byly videt musite
spustit transident-mark-mode.
Z regionama toho jse hodne provadet..jako sejvovat,zarovnavat a tak..
To by se sem asi neveslo..koukam ze skolicka dost roste..cekal jsem neco
malyho.
Tak jen rychle postrehy:
No vic uz asi nema smysl psat..pokud vas emacs zaujala doporucuju si
prohlidnout programatorsky mody-breakpointy,kompilace,rizeni
verzi,generovani changelogu a tak..je to moc sikovny. Emacs je proste
bezkonkurencne nejchytrejsi programatorsky prostredi. Pokud bude zajem jeste
neco napisu.
Tento soubor je soucasti rozsahle sbirky skolicek na
http://www.ucw.cz/~hubicka/skolicky
Take si muzete prohlidnout jeji puvodni textovou podobu
Nebo mi mailnout na
hubicka@ucw.cz
Copyright (C) Jan Hubicka 1995
Start emacs
emacs se startuje prikazem emacs. Pro jejim startu se ocitnete v editoru
z bufferem *scratch* to je neco jako noname. To vsechno muzete zmenit
ve fajliku ~/.emacs coz je lispovsky programecek(nedeste se..vetsinou
potrebujete jenom nastavovat promeny..nic vic) kterej start zaruci.
Ukonceni emacs
jde to vlastne dvema cestama:
C-z coz je suspend-v X woknech to zikonifikuje v shellu to stopne.
C-X C-C normalni exit-ulozi buffery a zkonci
Zaklady editace
Minibuffer
To jak jsme uz psali-to dole kam se pisou prikazy..
fungujou tu kompletovaci klavesy-tabulator jako v bashovi,mezera-neco podobnyho.
funguje i enter u nedopsanych prikazu
Find-file: /u2/emacs/src
kdyz chcete jinej adresar nemusite to mazat..proste hodite
/u2/emacs/src//etc/termcap a jste tam.
Regiony
Jsou vlastne normalni bloky v ostatnich editorech.
takze kdyz treba ccete dat text uppercase date:
vlezete na zacatek a C-SPC
vlexete na konec a C-x C-u a je to...(C-x C-u je upcase-region-hazi uppercase)
Ostatni klavesy
no uz nemam silu psat o dalsich sluzbach editoru,jako jsou registry,
kopirovani textu,vyhledavani..myslim ze seznam klaves najdete ve skoro
kazdem helpu
Filemanager
Vic bufferu
To je treba kdyz chcete mit vic aplikaci-treba vic otevrenych fajlu a
nechcete aby vam plasily na obrazovce-v podstate kazdy otevreni
fajlu,nebo help takovy novy buffer vytvori. Muzete se mezi nima prepinat
pomoci:
Okeni klavesy