mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-11-26 07:33:47 +00:00
1112 lines
46 KiB
Plaintext
1112 lines
46 KiB
Plaintext
|
Copyright (c) 1998 Tudor Hulubei <tudor@gnu.org> -*-coding: latin-2;-*-
|
|||
|
Mul<EFBFBD>umiri Aidei Hulubei <aida@chang.pub.ro> pentru corecturi <20>i sugestii.
|
|||
|
|
|||
|
A se citi sf<73>r<EFBFBD>itul pentru condi<64>ii.
|
|||
|
|
|||
|
Aceast<EFBFBD> versiune a fost produs<75> plec<65>nd de la versiunea <20>n limba
|
|||
|
englez<EFBFBD>, care este
|
|||
|
Copyright (c) 1985 Free Software Foundation, Inc.
|
|||
|
|
|||
|
Citi<EFBFBD>i acum versiunea rom<6F>neasc<73> a tutorialului de Emacs.
|
|||
|
|
|||
|
Comenzile Emacs folosesc <20>n general tasta CONTROL (uneori denumit<69>
|
|||
|
CTRL sau CTL) sau tasta META (uneori denumita EDIT sau ALT). <20>n loc
|
|||
|
s<EFBFBD> scriem META sau CONTROL de fiecare dat<61> c<>nd vrem s<> prefix<69>m un
|
|||
|
caracter, vom folosi urm<72>toarele prescurt<72>ri:
|
|||
|
|
|||
|
C-<chr> <20>nseamn<6D> c<> <20>ine<6E>i ap<61>sat<61> tasta CONTROL <20>n timp ce tasta<74>i
|
|||
|
caracterul <chr>. Astfel, C-f <20>nseamn<6D>: <20>ine<6E>i ap<61>sat<61> tasta
|
|||
|
CONTROL <20>i tasta<74>i f.
|
|||
|
|
|||
|
M-<chr> <20>nseamn<6D> c<> <20>ine<6E>i ap<61>sat<61> tasta META, EDIT sau ALT <20>n timp
|
|||
|
ce tasta<74>i <chr>. Dac<61> nu exist<73> tasta META, EDIT sau ALT,
|
|||
|
tasta<74>i <ESC>, ridica<63>i <20>i apoi tasta<74>i caracterul <chr>.
|
|||
|
Am notat cu <ESC> tasta ESC.
|
|||
|
|
|||
|
Observa<EFBFBD>ie important<6E>: pentru a termina sesiunea Emacs, tasta<74>i C-x
|
|||
|
C-c. (Dou<6F> caractere.) Caracterele ">>" la marginea din st<73>nga
|
|||
|
reprezint<EFBFBD> instruc<75>iuni pentru a <20>ncerca o comand<6E>. De exemplu:
|
|||
|
<<Liniile goale introduse aici de ini<6E>ializarea comenzii help-with-tutorial>>
|
|||
|
>> Acum tasta<74>i C-v (citirea urm<72>torului ecran) pentru a v<> muta la
|
|||
|
urm<72>torul ecran. (Executa<74>i aceast<73> comand<6E> acum, tin<69>nd ap<61>sat<61>
|
|||
|
tasta CONTROL <20>n timp ce tasta<74>i v). De acum <20>nainte face<63>i acest
|
|||
|
lucru din nou, de fiecare dat<61> c<>nd termina<6E>i de citit ecranul.
|
|||
|
|
|||
|
De remarcat c<> exist<73> o zon<6F> de suprapunere de dou<6F> linii c<>nd v<>
|
|||
|
muta<EFBFBD>i de la un ecran la altul; ave<76>i astfel o oarecare continuitate
|
|||
|
<EFBFBD>n citirea textului.
|
|||
|
|
|||
|
Primul lucru pe care trebuie s<>-l sti<74>i este cum s<> v<> deplasa<73>i din
|
|||
|
loc <20>n loc <20>n text. <20>ti<74>i deja cum s<> v<> muta<74>i la urm<72>torul ecran cu
|
|||
|
C-v. Pentru a v<> deplasa <20>napoi un ecran, tasta<74>i M-v (<28>ine<6E>i ap<61>sat<61>
|
|||
|
tasta META <20>i tasta<74>i v, sau <ESC> v dac<61> nu ave<76>i o tast<73> META, EDIT,
|
|||
|
sau ALT).
|
|||
|
|
|||
|
>> <20>ncerca<63>i s<> tasta<74>i M-v <20>i apoi C-v de c<>teva ori.
|
|||
|
|
|||
|
|
|||
|
* SUMAR
|
|||
|
-------
|
|||
|
|
|||
|
Urm<EFBFBD>toarele comenzi sunt utile pentru a vedea ecrane:
|
|||
|
|
|||
|
C-v avanseaz<61> un ecran
|
|||
|
M-v <09>napoi un ecran
|
|||
|
C-l <09>terge ecranul <20>i reafi<66>eaz<61> totul pozi<7A>ion<6F>nd textul
|
|||
|
de l<>ng<6E> cursor <20>n centrul ecranului. (Este C-L, nu
|
|||
|
C-1.)
|
|||
|
|
|||
|
>> G<>si<73>i cursorul <20>i <20>ine<6E>i minte ce text este <20>n jurul lui.
|
|||
|
Apoi tasta<74>i C-l. G<>si<73>i cursorul din nou <20>i observa<76>i c<> textul
|
|||
|
de l<>ng<6E> cursor este acela<6C>i.
|
|||
|
|
|||
|
|
|||
|
* COMENZI DE BAZ<41> PENTRU CONTROLUL CURSORULUI
|
|||
|
---------------------------------------------
|
|||
|
|
|||
|
Mutatul ecran cu ecran este util, dar cum v<> muta<74>i la o anumit<69>
|
|||
|
pozi<EFBFBD>ie <20>n textul de pe ecran?
|
|||
|
|
|||
|
Sunt mai multe modalita<74>i <20>n care pute<74>i face acest lucru. Cel mai
|
|||
|
simplu este s<> folosi<73>i comenzile C-p, C-b, C-f <20>i C-n. Fiecare din
|
|||
|
aceste comenzi mut<75> cursorul o linie sau coloan<61> <20>ntr-o anumit<69>
|
|||
|
direc<EFBFBD>ie pe ecran. Diagrama urm<72>toare prezint<6E> aceste patru comenzi
|
|||
|
<EFBFBD>i arat<61> direc<65>iile <20>n care ele mut<75> cursorul.
|
|||
|
|
|||
|
Linia precedent<6E>, C-p
|
|||
|
:
|
|||
|
:
|
|||
|
<20>napoi, C-b .... Pozi<7A>ia curent<6E> a cursorului .... <20>nainte, C-f
|
|||
|
:
|
|||
|
:
|
|||
|
Linia urm<72>toare, C-n
|
|||
|
|
|||
|
>> Muta<74>i cursorul la linia din mijlocul diagramei folosind C-n sau
|
|||
|
C-p. Tasta<74>i apoi C-l pentru a vedea <20>ntreaga diagram<61> centrat<61> pe
|
|||
|
ecran.
|
|||
|
|
|||
|
Vi se va p<>rea probabil mai simplu s<> v<> aminti<74>i aceste comenzi
|
|||
|
g<EFBFBD>ndindu-v<> la semnifica<63>ia lor <20>n limba englez<65>: P pentru previous, N
|
|||
|
pentru next, B pentru backward <20>i F pentru forward. Acestea sunt
|
|||
|
comenzile de baz<61> pentru pozi<7A>ionarea cursorului <20>i le ve<76>i folosi tot
|
|||
|
timpul, deci ar fi foarte util s<> le <20>nv<6E><76>a<EFBFBD>i acum.
|
|||
|
|
|||
|
>> Tasta<74>i c<>teva C-n-uri pentru a aduce cursorul la aceast<73> linie.
|
|||
|
|
|||
|
>> Muta<74>i-v<> <20>n interiorul liniei cu C-f-uri <20>i apoi <20>n sus cu
|
|||
|
C-p-uri. Urm<72>ri<72>i ce face C-p atunci c<>nd cursorul este <20>n
|
|||
|
mijlocul liniei.
|
|||
|
|
|||
|
Fiecare linie se termin<69> cu un caracter NEWLINE care o separ<61> de linia
|
|||
|
urm<EFBFBD>toare. Ultima linie <20>n fi<66>ierele dumneavoastr<74> ar trebui s<> aib<69>
|
|||
|
un asemenea caracter la sf<73>r<EFBFBD>it (de<64>i Emacs-ul nu-l necesit<69>).
|
|||
|
|
|||
|
>> <20>ncerca<63>i s<> tasta<74>i C-b la <20>nceputul unei linii. Cursorul ar
|
|||
|
trebui s<> se mute la sf<73>r<EFBFBD>itul liniei precedente, din cauza
|
|||
|
trecerii peste caracterul NEWLINE.
|
|||
|
|
|||
|
C-f poate s<> treac<61> peste un caracter NEWLINE, la fel ca <20>i C-b.
|
|||
|
|
|||
|
>> Tasta<74>i c<>teva C-b-uri, pentru a v<> familiariza cu pozi<7A>ia
|
|||
|
cursorului. Tasta<74>i apoi c<>teva C-f-uri pentru a v<> <20>ntoarce la
|
|||
|
sf<73>r<EFBFBD>itul liniei. <20>nc<6E> un C-f <20>i v<> ve<76>i muta la linia urm<72>toare.
|
|||
|
|
|||
|
C<EFBFBD>nd ajunge<67>i s<> trece<63>i peste <20>nceputul sau sf<73>r<EFBFBD>itul ecranului,
|
|||
|
textul aflat dincolo de margine intr<74> <20>n ecran, permi<6D><69>ndu-i
|
|||
|
Emacs-ului s<> mute cursorul la pozi<7A>ia specificat<61>, f<>r<EFBFBD> a ie<69>i din
|
|||
|
zona vizibil<69> (ecran). Aceast<73> opera<72>iune se numeste <20>n limba englez<65>
|
|||
|
"scrolling".
|
|||
|
|
|||
|
>> <20>ncerca<63>i s<> muta<74>i cursorul <20>n afara p<>r<EFBFBD>ii de jos a ecranului cu
|
|||
|
C-n <20>i observa<76>i ce se <20>ntampl<70>.
|
|||
|
|
|||
|
Dac<EFBFBD> mutatul caracter cu caracter este lent, pute<74>i muta cursorul
|
|||
|
cuv<EFBFBD>nt cu cuv<75>nt. M-f (META-f) avanseaz<61> cursorul cu un cuv<75>nt, iar
|
|||
|
M-b mut<75> cursorul un cuv<75>nt <20>napoi.
|
|||
|
|
|||
|
>> Tasta<74>i c<>teva M-f-uri <20>i apoi c<>teva M-b-uri.
|
|||
|
|
|||
|
C<EFBFBD>nd cursorul este <20>n mijlocul unui cuv<75>nt, M-f <20>l mut<75> la sf<73>r<EFBFBD>itul
|
|||
|
cuv<EFBFBD>ntului. C<>nd cursorul este <20>n spa<70>iul dintre cuvinte, M-f <20>l mut<75>
|
|||
|
la sf<73>r<EFBFBD>itul cuv<75>ntului urm<72>tor. M-b ac<61>ioneaz<61> similar, dar <20>n
|
|||
|
direc<EFBFBD>ia opus<75>.
|
|||
|
|
|||
|
>> Tasta<74>i M-f <20>i M-b de c<>teva ori, intercalate cu C-f-uri <20>i
|
|||
|
C-b-uri, pentru a observa efectul comenzilor M-f <20>i M-b din diverse
|
|||
|
pozi<7A>ii <20>n interiorul cuvintelor <20>i <20>ntre ele.
|
|||
|
|
|||
|
Observa<EFBFBD>i paralela <20>ntre C-f <20>i C-b pe de o parte, <20>i M-f <20>i M-b pe de
|
|||
|
cealalt<EFBFBD> parte. De multe ori, caracterele META sunt folosite pentru
|
|||
|
opera<EFBFBD>ii referitoare la unit<69><74>ile definite de limbaj (cuvinte, fraze,
|
|||
|
paragrafe), <20>n timp ce caracterele CONTROL opereaz<61> pe unit<69><74>i de
|
|||
|
baz<EFBFBD>, care sunt independente de tipul textului editat (caractere,
|
|||
|
linii, etc).
|
|||
|
|
|||
|
Aceast<EFBFBD> paralel<65> se aplic<69> <20>i <20>ntre linii <20>i fraze: C-a <20>i C-e mut<75>
|
|||
|
cursorul la <20>nceputul <20>i, respectiv sf<73>r<EFBFBD>itul unei linii, <20>n timp ce
|
|||
|
M-a <20>i M-e <20>l mut<75> la <20>nceputul <20>i, respectiv sf<73>r<EFBFBD>itul unei fraze.
|
|||
|
|
|||
|
>> <20>ncerca<63>i c<>teva C-a-uri, apoi c<>teva C-e-uri.
|
|||
|
<20>ncerca<63>i c<>teva M-a-uri, apoi c<>teva M-e-uri.
|
|||
|
|
|||
|
Remarca<EFBFBD>i cum repetarea tast<73>rii lui C-a nu schimb<6D> nimic, <20>n timp ce
|
|||
|
repetarea tast<73>rii lui M-a mut<75> cursorul la fraza urm<72>toare. De<44>i
|
|||
|
aceste opera<72>ii nu sunt tocmai analoage, fiecare pare natural<61>.
|
|||
|
|
|||
|
Pozi<EFBFBD>ia cursorului <20>n text mai este numit<69> <20>i "punct" ("point" <20>n
|
|||
|
limba englez<65>). Cursorul arat<61> pe ecran pozi<7A>ia punctului <20>n text.
|
|||
|
|
|||
|
Opera<EFBFBD>iile ce mut<75> cursorul (inclusiv comenzile ce mut<75> cursorul
|
|||
|
cuv<EFBFBD>nt cu cuv<75>nt sau fraz<61> cu fraz<61>) sunt prezentate <20>n sumarul
|
|||
|
urm<EFBFBD>tor:
|
|||
|
|
|||
|
C-f avanseaz<61> un caracter
|
|||
|
C-b <09>napoi un caracter
|
|||
|
|
|||
|
M-f avanseaz<61> un cuv<75>nt
|
|||
|
M-b <09>napoi un cuv<75>nt
|
|||
|
|
|||
|
C-n avanseaz<61> o linie
|
|||
|
C-p <09>napoi o linie
|
|||
|
|
|||
|
C-a <09>napoi la <20>nceputul liniei
|
|||
|
C-e avanseaz<61> la sf<73>r<EFBFBD>itul liniei
|
|||
|
|
|||
|
M-a <09>napoi la <20>nceputul frazei
|
|||
|
M-e avanseaz<61> la sf<73>r<EFBFBD>itul frazei
|
|||
|
|
|||
|
>> Exersa<73>i toate aceste comenzi acum, sunt comenzile cele mai des
|
|||
|
folosite.
|
|||
|
|
|||
|
Dou<EFBFBD> alte comenzi importante legate de mutatul cursorului sunt M-<
|
|||
|
(META Mai-mic), care mut<75> cursorul la <20>nceputul textului, <20>i M-> (META
|
|||
|
Mai-mare), care mut<75> cursorul la sf<73>r<EFBFBD>itul textului.
|
|||
|
|
|||
|
Pe majoritatea terminalelor "<" este deasupra virgulei <20>i deci este
|
|||
|
necesar s<> ap<61>sa<73>i tasta SHIFT <20>n acela<6C>i timp. Pe aceste terminale
|
|||
|
este nevoie s<> ap<61>sa<73>i SHIFT <20>i c<>nd tasta<74>i M-<; f<>r<EFBFBD> tasta SHIFT,
|
|||
|
a<EFBFBD>i ap<61>sa M-virgul<75>.
|
|||
|
|
|||
|
>> <20>ncerca<63>i M-< acum, pentru a v<> muta la <20>nceputul tutorialului.
|
|||
|
Folosi<73>i apoi C-v <20>n mod repetat pentru a ajunge <20>napoi aici.
|
|||
|
|
|||
|
>> <20>ncerca<63>i M-> acum, pentru a v<> muta la sf<73>r<EFBFBD>itul tutorialului.
|
|||
|
Folosi<73>i apoi M-v repetat pentru a ajunge <20>napoi aici.
|
|||
|
|
|||
|
Pute<EFBFBD>i de asemenea s<> muta<74>i cursorul cu tastele s<>ge<67>i, dac<61>
|
|||
|
terminalul are asemenea taste. Se recomand<6E> <20>ns<6E> acomodarea cu C-b,
|
|||
|
C-f, C-n <20>i C-p din trei motive. <20>n primul r<>nd, aceste taste
|
|||
|
func<EFBFBD>ioneaz<EFBFBD> pe toate tipurile de terminale. <20>n al doilea r<>nd, odat<61>
|
|||
|
ce v<> obi<62>nui<75>i cu Emacs-ul, ve<76>i remarca faptul c<> tastarea lor este
|
|||
|
mai rapid<69> dec<65>t cea a tastelor s<>ge<67>i (pentru c<> nu trebuie s<> v<>
|
|||
|
schimba<EFBFBD>i pozi<7A>ia m<>inilor pe tastatur<75>). <20>n al treilea r<>nd, odat<61>
|
|||
|
format obiceiul de a folosi aceste comenzi bazate pe CONTROL,
|
|||
|
comenzile avansate de mutat cursorul se <20>nva<76><61> foarte u<>or.
|
|||
|
|
|||
|
Majoritatea comenzilor Emacs accept<70> un argument numeric; pentru
|
|||
|
majoritatea comenzilor, acest argument reprezint<6E> un contor de
|
|||
|
repeti<EFBFBD>ie. Contorul de repeti<74>ie se introduce tast<73>nd C-u, cifrele ce
|
|||
|
alc<EFBFBD>tuiesc contorul <20>i apoi comanda. Dac<61> ave<76>i tasta META (EDIT sau
|
|||
|
ALT), exist<73> <20>i o alt<6C> alternativ<69> pentru a introduce un argument
|
|||
|
numeric: tasta<74>i cifrele <20>n timp ce <20>ine<6E>i tasta META ap<61>sat<61>. Se
|
|||
|
recomand<EFBFBD> <20>ns<6E> folosirea metodei cu C-u, deoarece func<6E>ioneaz<61> pe
|
|||
|
orice terminal.
|
|||
|
|
|||
|
De exemplu, C-u 8 C-f avanseaz<61> cursorul cu opt caractere.
|
|||
|
|
|||
|
>> <20>ncerca<63>i s<> folosi<73>i C-n sau C-p cu un argument numeric pentru a
|
|||
|
muta cursorul dintr-o singur<75> comand<6E> pe o linie apropiat<61> de
|
|||
|
aceasta.
|
|||
|
|
|||
|
Majoritatea comenzilor utilizeaz<61> argumentul numeric ca un contor de
|
|||
|
repetitie. Anumite comenzi speciale <20>l folosesc <20>nsa <20>n mod diferit.
|
|||
|
C-v si M-v sunt printre aceste excep<65>ii. C<>nd li se d<> un argument
|
|||
|
numeric, ele mut<75> ecranul mai sus sau mai jos cu numarul specificat de
|
|||
|
linii, nu de ecrane. De exemplu, C-u 4 C-v mut<75> ecranul cu 4 linii.
|
|||
|
|
|||
|
>> <20>ncerca<63>i s<> tasta<74>i C-u 8 C-v acum.
|
|||
|
|
|||
|
Aceast<EFBFBD> comand<6E> trebuie s<> mute ecranul <20>n sus cu 8 linii. Dac<61>
|
|||
|
doriti s<> <20>l muta<74>i <20>napoi, pute<74>i s<>-i da<64>i lui M-v un argument
|
|||
|
numeric.
|
|||
|
|
|||
|
Dac<EFBFBD> folosi<73>i sistemul X Window, exist<73> probabil o zon<6F> rectangular<61>
|
|||
|
numita "scroll bar" la dreapta ferestrei Emacs-ului. Pute<74>i deplasa
|
|||
|
textul manipul<75>nd "scroll bar"-ul cu mouse-ul.
|
|||
|
|
|||
|
>> <20>ncerca<63>i s<> ap<61>sa<73>i butonul din mijloc al mouse-ului la mijlocul
|
|||
|
butonului din scroll bar. Aceasta ar trebui s<> mute textul la o
|
|||
|
pozi<7A>ie determinat<61> de c<>t de sus sau de jos a<>i ap<61>sat pe scroll
|
|||
|
bar.
|
|||
|
|
|||
|
>> <20>ncerca<63>i s<> muta<74>i mouse-ul <20>n sus <20>i <20>n jos <20>in<69>nd butonul din
|
|||
|
mijloc ap<61>sat. Ve<56>i vedea c<> textul se deplaseaz<61> <20>n sus <20>i <20>n jos
|
|||
|
corespunz<6E>tor cu mi<6D>carea mouse-ului.
|
|||
|
|
|||
|
|
|||
|
* C<>ND EMACS-ul ESTE BLOCAT
|
|||
|
---------------------------
|
|||
|
|
|||
|
Dac<EFBFBD> Emacs-ul <20>nceteaz<61> s<> v<> raspund<6E> la comenzi, <20>l pute<74>i opri,
|
|||
|
f<EFBFBD>r<EFBFBD> s<> pierde<64>i modific<69>rile f<>cute p<>n<EFBFBD> acum, tast<73>nd C-g. Pute<74>i
|
|||
|
folosi C-g pentru a opri o comand<6E> care dureaz<61> prea mult.
|
|||
|
|
|||
|
Pute<EFBFBD>i de asemenea folosi C-g pentru a opri introducerea unui argument
|
|||
|
numeric sau <20>nceputul unei comenzi pe care nu dori<72>i s<> o continua<75>i.
|
|||
|
|
|||
|
>> Tasta<74>i C-u 100 pentru a introduce 100 ca un argument numeric, apoi
|
|||
|
tasta<74>i C-g. Tasta<74>i apoi C-f. Cursorul ar trebui s<> se mute un
|
|||
|
singur caracter, pentru c<> a<>i oprit introducerea argumentului
|
|||
|
numeric cu C-g.
|
|||
|
|
|||
|
Dac<EFBFBD> a<>i tastat un <ESC> din gre<72>eal<61>, pute<74>i s<>-l anula<6C>i cu un C-g.
|
|||
|
|
|||
|
|
|||
|
* COMENZI DEZAFECTATE
|
|||
|
---------------------
|
|||
|
|
|||
|
Anumite comenzi sunt dezafectate <20>n Emacs, <20>n a<>a fel <20>nc<6E>t
|
|||
|
utilizatorii s<> nu le poat<61> folosi din neaten<65>ie.
|
|||
|
|
|||
|
Dac<EFBFBD> tasta<74>i una din comenzile dezafectate, Emacs-ul va afi<66>a un mesaj
|
|||
|
spun<EFBFBD>nd ce comand<6E> a<>i tastat <20>i <20>ntreb<65>ndu-v<> dac<61> dori<72>i s<>
|
|||
|
continua<EFBFBD>i.
|
|||
|
|
|||
|
Dac<EFBFBD> <20>ntr-adev<65>r dori<72>i s<> <20>ncerca<63>i comanda respectiv<69>, tasta<74>i
|
|||
|
SPA<EFBFBD>IU. <20>n mod normal, dac<61> nu dori<72>i s<> executa<74>i comanda
|
|||
|
dezafectat<EFBFBD>, r<>spunde<64>i cu "n".
|
|||
|
|
|||
|
>> Tasta<74>i <ESC> : (care este o comand<6E> dezafectat<61>), apoi tasta<74>i n
|
|||
|
ca r<>spuns la <20>ntrebarea pus<75> de Emacs.
|
|||
|
|
|||
|
|
|||
|
* FERESTRE
|
|||
|
----------
|
|||
|
|
|||
|
Emacs-ul poate avea mai multe ferestre, fiecare afi<66><69>nd propriul s<>u
|
|||
|
text. Vom explica mai t<>rziu tehnicile de folosire a ferestrelor
|
|||
|
multiple. Acum vrem s<> explic<69>m cum s<> <20>nchide<64>i ferestrele care ar
|
|||
|
putea apare ca rezultat al afi<66><69>rii unor documenta<74>ii sau rezultate
|
|||
|
specifice anumitor comenzi. Este simplu:
|
|||
|
|
|||
|
C-x 1 o singur<75> fereastr<74> (adic<69> <20>nchide toate celelalte
|
|||
|
ferestre).
|
|||
|
|
|||
|
Asta <20>nseamn<6D> CONTROL-x urmat de cifra 1. C-x 1 m<>re<72>te fereastra
|
|||
|
care con<6F>ine cursorul p<>n<EFBFBD> c<>nd ocup<75> <20>ntregul ecran. Toate celelalte
|
|||
|
ferestre sunt distruse.
|
|||
|
|
|||
|
>> Muta<74>i cursorul la aceast<73> linie <20>i tasta<74>i C-u 0 C-l.
|
|||
|
|
|||
|
>> Tasta<74>i C-h k C-f. Observa<76>i cum aceast<73> fereastr<74> se mic<69>oreaz<61>,
|
|||
|
<20>n timp ce o nou<6F> fereastr<74> apare, afi<66><69>nd documenta<74>ia comenzii
|
|||
|
C-f.
|
|||
|
|
|||
|
>> Tasta<74>i C-x 1 <20>i observa<76>i cum noua fereastr<74> dispare.
|
|||
|
|
|||
|
|
|||
|
* INTRODUCEREA <20>I <20>TERGEREA
|
|||
|
---------------------------
|
|||
|
|
|||
|
Dac<EFBFBD> vre<72>i s<> introduce<63>i text, pur <20>i simplu tasta<74>i textul dorit.
|
|||
|
Caracterele pe care le pute<74>i vedea, cum ar fi A, 7, *, etc. sunt
|
|||
|
interpretate de Emacs ca text <20>i introduse imediat. Tasta<74>i <Return>
|
|||
|
(tasta mai este etichetat<61> <Enter> uneori) pentru a introduce un
|
|||
|
caracter NEWLINE.
|
|||
|
|
|||
|
Pute<EFBFBD>i <20>terge ultimul caracter pe care l-a<>i introdus tast<73>nd
|
|||
|
<Delete>. <Delete> este o tast<73> pe tastatur<75> etichetat<61> "Del" sau
|
|||
|
"Delete". <20>n unele cazuri tasta "Backspace" poate ac<61>iona ca
|
|||
|
<Delete>, dar nu <20>ntotdeauna!
|
|||
|
|
|||
|
Mai general, <Delete> <20>terge caracterul dinaintea pozi<7A>iei curente a
|
|||
|
cursorului.
|
|||
|
|
|||
|
>> Executa<74>i urm<72>toarele opera<72>ii acum - tasta<74>i c<>teva caractere,
|
|||
|
apoi <20>terge<67>i-le tast<73>nd <Delete> de c<>teva ori. Nu v<> teme<6D>i c<>
|
|||
|
ve<76>i schimba acest fi<66>ier; nu ve<76>i altera versiunea principal<61> a
|
|||
|
tutorialului. Aceasta este copia dumneavoastr<74> personal<61>.
|
|||
|
|
|||
|
C<EFBFBD>nd o linie de text devine prea mare pentru a putea fi reprezentat<61>
|
|||
|
pe o linie de ecran, linia de text este continuat<61> pe urm<72>toarea linie
|
|||
|
de pe ecran. Un caracter backslash ("\") la marginea din dreapta
|
|||
|
indic<EFBFBD> o linie care a fost continuat<61>.
|
|||
|
|
|||
|
>> Introduce<63>i text p<>n<EFBFBD> c<>nd dep<65><70>i<EFBFBD>i cu c<>teva caractere marginea
|
|||
|
din dreapta a ecranului. Ve<56>i observa apari<72>ia liniei de
|
|||
|
continuare.
|
|||
|
|
|||
|
>> Folosi<73>i <Delete>-uri pentru a <20>terge textul p<>n<EFBFBD> c<>nd linia <20>ncape
|
|||
|
din nou pe o linie de ecran. Linia de continuare va disp<73>rea.
|
|||
|
|
|||
|
Pute<EFBFBD>i <20>terge un caracter NEWLINE ca pe orice alt caracter. <20>tergerea
|
|||
|
unui NEWLINE dintre dou<6F> linii concateneaza cele dou<6F> linii. Dac<61>
|
|||
|
linia rezultat<61> este prea lung<6E> pentru a fi afi<66>at<61> pe ecran, va fi
|
|||
|
afi<EFBFBD>at<EFBFBD> cu o linie de continuare.
|
|||
|
|
|||
|
>> Muta<74>i cursorul la <20>nceputul unei linii <20>i tasta<74>i <Delete>.
|
|||
|
Aceasta concateneaz<61> linia curent<6E> cu cea precedent<6E>.
|
|||
|
|
|||
|
>> Tasta<74>i <Return> pentru a reintroduce caracterul NEWLINE <20>ters.
|
|||
|
|
|||
|
A<EFBFBD>a cum v<> reaminti<74>i, majoritatea comenzilor Emacs pot primi un
|
|||
|
argument numeric ce ac<61>ioneaz<61> ca un contor de repeti<74>ie; introducerea
|
|||
|
caracterelor ascult<6C> acelea<65>i reguli. Un argument numeric dat unui
|
|||
|
caracter duce la introducerea caracterului respectiv de num<75>rul
|
|||
|
specificat de ori.
|
|||
|
|
|||
|
>> <20>ncerca<63>i asta acum - tasta<74>i C-u 8 * pentru a introduce ********.
|
|||
|
|
|||
|
A<EFBFBD>i <20>nv<6E><76>at acum metodele elementare de tastat <20>i corectat erori <20>n
|
|||
|
Emacs. Pute<74>i de asemenea <20>terge cuvinte sau linii. Acesta este un
|
|||
|
sumar al opera<72>iilor de <20>tergere.
|
|||
|
|
|||
|
<Delete> <20>terge caracterul de dinaintea cursorului
|
|||
|
C-d <20>terge caracterul de dup<75> cursor
|
|||
|
|
|||
|
M-<Delete> <20>terge cuv<75>ntul de dinaintea cursorului
|
|||
|
M-d <20>terge cuv<75>ntul de dup<75> cursor
|
|||
|
|
|||
|
C-k <20>terge de la pozi<7A>ia curent<6E> p<>n<EFBFBD> la sf<73>r<EFBFBD>itul
|
|||
|
liniei
|
|||
|
M-k <20>terge de la pozi<7A>ia curent<6E> p<>n<EFBFBD> la sf<73>r<EFBFBD>itul
|
|||
|
frazei
|
|||
|
|
|||
|
De remarcat c<> <Delete> <20>i C-d versus M-<Delete> <20>i M-d extind
|
|||
|
paralela <20>nceput<75> de C-f <20>i M-f (<Delete> nu este cu adev<65>rat un
|
|||
|
caracter bazat pe CONTROL, dar nu o s<> ne ocup<75>m de asta acum). C-k
|
|||
|
<EFBFBD>i M-k sunt ca C-e <20>i M-e, <20>ntr-un fel, dac<61> facem o paralel<65> <20>ntre
|
|||
|
linii <20>i fraze.
|
|||
|
|
|||
|
C<EFBFBD>nd <20>terge<67>i mai mult de un caracter la un moment dat, Emacs-ul
|
|||
|
p<EFBFBD>streaz<EFBFBD> intern textul distrus <20>n a<>a fel <20>nc<6E>t <20>l pute<74>i restaura.
|
|||
|
Termenul folosit de Emacs pentru opera<72>iunea de restaurare a textului
|
|||
|
distrus este "yanking". Pute<74>i restaura textul distrus fie <20>n acela<6C>i
|
|||
|
loc, fie <20>n alt loc <20>n fi<66>ier. Pute<74>i de asemenea restaura textul de
|
|||
|
mai multe ori pentru a face mai multe copii. Comanda de restaurare
|
|||
|
este C-y.
|
|||
|
|
|||
|
Diferen<EFBFBD>a dintre "distrugerea" <20>i "<22>tergerea" unei por<6F>iuni din text
|
|||
|
este aceea ca por<6F>iunile de text "distruse" pot fi restaurate, <20>n timp
|
|||
|
ce por<6F>iunile de text "<22>terse", nu. <20>n general, comenzile care
|
|||
|
distrug por<6F>iuni semnificative din text, p<>streaz<61> intern textul
|
|||
|
respectiv, <20>n timp ce comenzile care <20>terg doar un caracter, linii
|
|||
|
goale sau spa<70>ii, nu fac acest lucru.
|
|||
|
|
|||
|
>> Muta<74>i cursorul la <20>nceputul unei linii care nu este goal<61>.
|
|||
|
Tasta<74>i apoi C-k pentru a distruge textul de pe linia respectiv<69>.
|
|||
|
>> Tasta<74>i C-k o a doua oar<61>. Ve<56>i observa distrugerea caracterului
|
|||
|
NEWLINE de la sf<73>r<EFBFBD>itul liniei.
|
|||
|
|
|||
|
Dup<EFBFBD> cum vede<64>i, un singur C-k distruge con<6F>inutul liniei, iar un al
|
|||
|
doilea C-k distruge linia <20>ns<6E><73>i, fac<61>nd toate celelalte linii s<> se
|
|||
|
mute <20>n sus. C-k trateaz<61> un argument numeric <20>n mod special:
|
|||
|
distruge num<75>rul specificat de linii <20>i con<6F>inutul lor. Aceast<73>
|
|||
|
comportare nu este doar o simpl<70> repeti<74>ie. C-u 2 C-k distruge dou<6F>
|
|||
|
linii <20>i NEWLINE-urile de dup<75> ele; tast<73>nd C-k de dou<6F> ori nu
|
|||
|
ob<EFBFBD>ine<EFBFBD>i acela<6C>i rezultat.
|
|||
|
|
|||
|
Pentru a extrage ultimul text distrus <20>i a-l plasa la pozi<7A>ia curent<6E>
|
|||
|
a cursorului, tasta<74>i C-y.
|
|||
|
|
|||
|
>> Tasta<74>i C-y pentru a restaura textul distrus anterior.
|
|||
|
|
|||
|
G<EFBFBD>nditi-v<> la C-y ca <20>i cum a<>i recupera ceva ce v-a fost luat.
|
|||
|
Observa<EFBFBD>i c<> dac<61> executa<74>i mai multe C-k-uri la r<>nd, tot textul
|
|||
|
distrus este stocat <20>ntr-o singur<75> bucat<61>, <20>n a<>a fel <20>nc<6E>t un singur
|
|||
|
C-y va restaura toate liniile.
|
|||
|
|
|||
|
>> Tasta<74>i acum C-k de c<>teva ori.
|
|||
|
|
|||
|
Acum <20>ncerca<63>i s<> restaura<72>i textul distrus:
|
|||
|
|
|||
|
>> Tasta<74>i C-y. Muta<74>i apoi cursorul c<>teva linii mai jos <20>i tasta<74>i
|
|||
|
C-y din nou. Ve<56>i vedea cum se copiaz<61> por<6F>iuni de text.
|
|||
|
|
|||
|
Ce face<63>i dac<61> ave<76>i por<6F>iuni de text pe care vre<72>i s<> le restaura<72>i,
|
|||
|
dar <20>ntre timp distruge<67>i o alt<6C> por<6F>iune de text? C-y va restaura
|
|||
|
por<EFBFBD>iunea de text care a fost distrus<75> cel mai recent. Cu toate
|
|||
|
acestea, textul distrus anterior nu este pierdut. Pute<74>i s<>-l
|
|||
|
restaura<EFBFBD>i folosind comanda M-y. Dup<75> ce a<>i executat C-y pentru a
|
|||
|
ob<EFBFBD>ine textul cel mai recent distrus, tast<73>nd M-y ve<76>i <20>nlocui textul
|
|||
|
ce tocmai a fost restaurat cu textul distrus <20>naintea lui. Tast<73>nd
|
|||
|
M-y de mai multe ori pute<74>i ob<6F>ine por<6F>iuni de text distrus din ce <20>n
|
|||
|
ce mai vechi. Odat<61> ajun<75>i la textul care v<> intereseaz<61>, pute<74>i s<>
|
|||
|
continua<EFBFBD>i editarea f<>r<EFBFBD> s<> mai face<63>i nimic special, las<61>nd textul
|
|||
|
restaurat <20>n pozi<7A>ia <20>n care se g<>se<73>te.
|
|||
|
|
|||
|
Dac<EFBFBD> tasta<74>i M-y de suficient de multe ori, ve<76>i ajunge <20>n cele din
|
|||
|
urm<EFBFBD> la punctul de plecare (textul distrus cel mai de cur<75>nd).
|
|||
|
|
|||
|
>> Distruge<67>i o linie, muta<74>i-v<> pu<70>in <20>n jurul ei, distruge<67>i o alt<6C>
|
|||
|
linie. Executa<74>i apoi C-y pentru a ob<6F>ine <20>napoi cea de-a doua
|
|||
|
linie distrus<75>. Executa<74>i apoi M-y <20>i ve<76>i constata c<> este
|
|||
|
<20>nlocuit<69> de prima linie distrus<75>. Executa<74>i mai multe M-y-uri <20>i
|
|||
|
observa<76>i ce ob<6F>ine<6E>i. Continua<75>i s<> le executa<74>i p<>n<EFBFBD> c<>nd a doua
|
|||
|
linie apare din nou, etc. Dac<61> dori<72>i, pute<74>i <20>ncerca s<>-i da<64>i
|
|||
|
comenzii M-y argumente numerice pozitive <20>i negative.
|
|||
|
|
|||
|
|
|||
|
* ANULARE
|
|||
|
---------
|
|||
|
|
|||
|
Dac<EFBFBD> face<63>i o schimbare <20>n text, <20>i apoi constata<74>i c<> a<>i gre<72>it,
|
|||
|
pute<EFBFBD>i anula schimbarea cu comanda de anulare, C-x u.
|
|||
|
|
|||
|
<EFBFBD>n mod normal, C-x u anuleaz<61> schimb<6D>rile f<>cute de o comand<6E>; dac<61>
|
|||
|
repeta<EFBFBD>i C-x u de c<>teva ori la r<>nd, fiecare nou<6F> repeti<74>ie anuleaz<61>
|
|||
|
<EFBFBD>nc<EFBFBD> o comand<6E>.
|
|||
|
|
|||
|
Exist<EFBFBD> <20>ns<6E> dou<6F> excep<65>ii: comenzile care nu schimb<6D> textul nu sunt
|
|||
|
luate <20>n considerare (acestea includ comenzile de mutat cursorul <20>i
|
|||
|
cele de "scrolling"), iar caracterele introduse individual sunt
|
|||
|
tratate <20>n grupuri de maxim 20. (Motiva<76>ia din spatele acestei
|
|||
|
abord<EFBFBD>ri este aceea de a reduce num<75>rul de C-x u-uri pe care trebuie
|
|||
|
s<EFBFBD> le tasta<74>i pentru anularea inser<65>rilor de text).
|
|||
|
|
|||
|
>> Distruge<67>i linia aceasta cu C-k, apoi tasta<74>i C-x u; linia ar
|
|||
|
trebui s<> reapar<61>.
|
|||
|
|
|||
|
C-_ este o alt<6C> comand<6E> de anulare; func<6E>ioneaz<61> exact ca <20>i C-x u,
|
|||
|
dar este mai u<>or de tastat de mai multe ori la r<>nd. Dezavantajul
|
|||
|
lui C-_ este c<> pe anumite tastaturi nu este clar cum trebuie tastat.
|
|||
|
Din acest motiv exist<73> C-x u. Pe unele terminale se poate s<> tasta<74>i
|
|||
|
C-_ tast<73>nd "/" <20>n timp ce <20>ine<6E>i ap<61>sat<61> tasta CONTROL.
|
|||
|
|
|||
|
Un argument numeric la C-_ sau C-x u ac<61>ioneaz<61> ca un contor de
|
|||
|
repeti<EFBFBD>ie.
|
|||
|
|
|||
|
|
|||
|
* FI<46>IERE
|
|||
|
---------
|
|||
|
|
|||
|
Pentru a face permanente modific<69>rile din textul pe care <20>l edita<74>i,
|
|||
|
trebuie s<>-l stoca<63>i (salva<76>i) <20>ntr-un fi<66>ier. Altminteri,
|
|||
|
modific<EFBFBD>rile se vor pierde <20>n momentul p<>r<EFBFBD>sirii Emacs-ului. Pune<6E>i
|
|||
|
textul <20>ntr-un fi<66>ier "deschiz<69>nd" (sau "vizit<69>nd") fi<66>ierul.
|
|||
|
|
|||
|
Deschiderea unui fi<66>ier <20>nseamn<6D> c<> pute<74>i vedea con<6F>inutul fi<66>ierului
|
|||
|
<EFBFBD>n Emacs. Este ca <20>i cum a<>i edita chiar fi<66>ierul, singura diferen<65><6E>
|
|||
|
fiind aceea c<> schimb<6D>rile nu devin permanente p<>n<EFBFBD> c<>nd nu <20>l
|
|||
|
"salva<76>i" ("save" <20>n limba englez<65>). Se evit<69> astfel existen<65>a <20>n
|
|||
|
sistem a unor fi<66>iere incomplet modificate atunci c<>nd nu dori<72>i acest
|
|||
|
lucru. Chiar <20>i c<>nd salva<76>i fi<66>ierul, Emacs-ul p<>streaz<61> fi<66>ierul
|
|||
|
ini<EFBFBD>ial (cu un nume schimbat) <20>n a<>a fel <20>nc<6E>t s<>-l pute<74>i recupera <20>n
|
|||
|
cazul <20>n care decide<64>i c<> modific<69>rile efectuate au fost gre<72>ite.
|
|||
|
|
|||
|
Aproape de marginea de jos a ecranului ve<76>i observa o linie care
|
|||
|
<EFBFBD>ncepe <20>i se termin<69> cu minusuri, <20>i con<6F>ine <20>irul "--:-- TUTORIAL.ro"
|
|||
|
sau ceva <20>n genul acesta. Aceast<73> parte a ecranului arat<61> <20>ntotdeauna
|
|||
|
numele fi<66>ierului pe care <20>l vizita<74>i. Acum vizita<74>i fi<66>ierul
|
|||
|
"TUTORIAL.ro" care este copia dumneavoastr<74> de <20>ncerc<72>ri a
|
|||
|
tutorialului <20>n limba rom<6F>n<EFBFBD>. Orice fi<66>ier a<>i edita, numele acelui
|
|||
|
fi<EFBFBD>ier va ap<61>rea <20>n pozi<7A>ia respectiv<69>.
|
|||
|
|
|||
|
Comenzile pentru g<>sirea <20>i salvarea fi<66>ierelor sunt diferite de
|
|||
|
celelalte comenzi pe care le-a<>i <20>nv<6E><76>at, <20>n sensul c<> sunt compuse
|
|||
|
din dou<6F> caractere. Am<41>ndou<6F> <20>ncep cu caracterul C-x. Exist<73> o
|
|||
|
<EFBFBD>ntreag<EFBFBD> serie de comenzi care <20>ncep cu C-x; multe dintre ele sunt
|
|||
|
legate de fi<66>iere, buffere <20>i alte lucruri <20>nrudite. Aceste comenzi
|
|||
|
sunt compuse din dou<6F>, trei sau patru caractere.
|
|||
|
|
|||
|
Comenzii de deschidere a unui fi<66>ier trebuie s<> <20>i spune<6E>i numele
|
|||
|
fi<EFBFBD>ierului dorit. Spunem despre comand<6E> ca "cite<74>te un argument de la
|
|||
|
terminal" (<28>n acest caz, argumentul este numele fi<66>ierului). Dup<75> ce
|
|||
|
tasta<EFBFBD>i comanda
|
|||
|
|
|||
|
C-x C-f (deschide un fi<66>ier)
|
|||
|
|
|||
|
Emacs-ul v<> va cere s<> introduce<63>i numele fi<66>ierului. Numele pe care
|
|||
|
<EFBFBD>l tasta<74>i apare pe ultima linie a ecranului. Aceast<73> linie se
|
|||
|
numeste "minibuffer" c<>nd este folosit<69> pentru acest tip de
|
|||
|
introducere. Comenzile normale de editare <20>n Emacs pot fi folosite <20>i
|
|||
|
pentru editarea numelui fi<66>ierului.
|
|||
|
|
|||
|
<EFBFBD>n timp ce introduce<63>i numele fi<66>ierului (sau orice alt tip de
|
|||
|
introducere de date <20>n minibuffer), pute<74>i anula comanda cu C-g.
|
|||
|
|
|||
|
>> Tasta<74>i C-x C-f, apoi tasta<74>i C-g. Aceasta anuleaz<61> minibuffer-ul,
|
|||
|
<20>i, de asemenea, anuleaz<61> comanda C-x C-f care <20>l folosea. <20>n
|
|||
|
concluzie, nu ve<76>i mai deschide nici un fi<66>ier.
|
|||
|
|
|||
|
C<EFBFBD>nd a<>i terminat de introdus numele fi<66>ierului, tasta<74>i <Return>
|
|||
|
pentru a-l <20>ncheia. Dup<75> aceasta, comanda C-x C-f <20>ncepe s<> lucreze
|
|||
|
<EFBFBD>i deschide fi<66>ierul pe care l-a<>i ales. Minibuffer-ul dispare c<>nd
|
|||
|
comanda C-x C-f se termin<69>.
|
|||
|
|
|||
|
Dup<EFBFBD> c<>teva momente, con<6F>inutul fi<66>ierului apare pe ecran <20>i <20>l pute<74>i
|
|||
|
edita. C<>nd doriti s<> face<63>i schimb<6D>rile permanente, tasta<74>i comanda
|
|||
|
|
|||
|
C-x C-s (salveaz<61> fi<66>ierul)
|
|||
|
|
|||
|
Aceasta copiaz<61> textul din Emacs <20>ntr-un fi<66>ier. Prima oar<61> c<>nd
|
|||
|
face<EFBFBD>i acest lucru, Emacs-ul redenume<6D>te fi<66>ierul ini<6E>ial <20>n a<>a fel
|
|||
|
<EFBFBD>nc<EFBFBD>t s<> nu se piard<72>. Noul nume este creat prin ad<61>ugarea
|
|||
|
caracterului "~" la numele ini<6E>ial.
|
|||
|
|
|||
|
C<EFBFBD>nd opera<72>iunea de salvare este terminat<61>, Emacs-ul afi<66>eaz<61> numele
|
|||
|
fi<EFBFBD>ierului salvat. Se recomand<6E> salvarea la intervale relativ mici,
|
|||
|
pentru a nu pierde prea mult<6C> munc<6E> <20>n cazul unei eventuale bloc<6F>ri a
|
|||
|
sistemului.
|
|||
|
|
|||
|
>> Tasta<74>i C-x C-s, pentru a salva copia tutorialului.
|
|||
|
Aceasta ar trebui s<> afi<66>eze "Wrote ...TUTORIAL.ro" la marginea de
|
|||
|
jos a ecranului.
|
|||
|
|
|||
|
OBSERVA<EFBFBD>IE: <20>n unele sisteme, tastarea comenzii C-x C-s va bloca
|
|||
|
ecranul <20>i nu ve<76>i mai primi nici un de r<>spuns din partea Emacs-ului.
|
|||
|
Aceasta indic<69> faptul c<> o facilitate a sistemului de operare numit<69>
|
|||
|
"controlul fluxului" ("flow control" <20>n limba englez<65>) intercepteaz<61>
|
|||
|
C-s, nelas<61>ndu-l s<> ajung<6E> la Emacs. Pentru deblocarea ecranului,
|
|||
|
tasta<EFBFBD>i C-q. Pute<74>i g<>si detalii referitoare la aceast<73> a<>a-numit<69>
|
|||
|
"facilitate" <20>n sec<65>iunea "Spontaneous Entry to Incremental Search"
|
|||
|
din manualul Emacs-ului.
|
|||
|
|
|||
|
Pute<EFBFBD>i deschide un fi<66>ier existent, pentru a-l vedea sau edita.
|
|||
|
Pute<EFBFBD>i de asemenea deschide un fi<66>ier care nu exist<73>. Aceasta este
|
|||
|
modalitatea <20>n care crea<65>i noi fi<66>iere cu Emacs-ul: deschide<64>i
|
|||
|
fi<EFBFBD>ierul (care va fi gol ini<6E>ial), apoi <20>ncepe<70>i s<> introduce<63>i text
|
|||
|
<EFBFBD>n el. C<>nd <20>i ve<76>i cere s<> "salveze" fi<66>ierul, Emacs-ul va crea
|
|||
|
fi<EFBFBD>ierul cu textul pe care l-a<>i introdus. De acum <20>nainte pute<74>i
|
|||
|
considera c<> edita<74>i un fi<66>ier existent.
|
|||
|
|
|||
|
|
|||
|
* BUFFERE
|
|||
|
---------
|
|||
|
|
|||
|
Dac<EFBFBD> deschide<64>i un al doilea fi<66>ier cu C-x C-f, primul va continua s<>
|
|||
|
existe <20>n Emacs. Pute<74>i s<> v<> muta<74>i <20>napoi la el deschiz<69>ndu-l din
|
|||
|
nou cu C-x C-f. <20>n acest fel pute<74>i avea un num<75>r destul de mare de
|
|||
|
fi<EFBFBD>iere deschise <20>n Emacs.
|
|||
|
|
|||
|
>> Crea<65>i un fi<66>ier numit "foo" tast<73>nd C-x C-f foo <Return>.
|
|||
|
Introduce<63>i un text oarecare, edita<74>i-l, apoi salva<76>i "foo" tast<73>nd
|
|||
|
C-x C-s. <20>n cele din urm<72>, tasta<74>i C-x C-f TUTORIAL.ro <Return>
|
|||
|
pentru a v<> <20>ntoarce la tutorial.
|
|||
|
|
|||
|
Emacs-ul stocheaz<61> textul fiec<65>rui fi<66>ier <20>ntr-un obiect numit
|
|||
|
"buffer". Deschiderea unui fi<66>ier creeaz<61> un nou buffer <20>n Emacs.
|
|||
|
Pentru a vedea o list<73> a bufferelor existente <20>n Emacs, tasta<74>i
|
|||
|
|
|||
|
C-x C-b (lista de buffere)
|
|||
|
|
|||
|
>> <20>ncerca<63>i C-x C-b acum.
|
|||
|
|
|||
|
Observa<EFBFBD>i cum fiecare buffer are un nume <20>i, uneori, un nume de fi<66>ier
|
|||
|
corespunz<EFBFBD>tor fi<66>ierului al c<>rui con<6F>inut este men<65>inut <20>n buffer-ul
|
|||
|
respectiv. Unele buffere nu corespund nici unui fi<66>ier. De exemplu,
|
|||
|
buffer-ul numit "*Buffer List*" nu are nici un fi<66>ier asociat. Este
|
|||
|
buffer-ul care con<6F>ine lista de buffere <20>i a fost creat de comanda C-x
|
|||
|
C-b. Orice text pe care <20>l vede<64>i <20>ntr-o fereastr<74> a Emacs-ului este
|
|||
|
<EFBFBD>ntotdeauna parte dintr-un buffer.
|
|||
|
|
|||
|
>> Tasta<74>i C-x 1 pentru a sc<73>pa de lista de buffere.
|
|||
|
|
|||
|
Dac<EFBFBD> face<63>i schimb<6D>ri <20>n textul unui fi<66>ier, apoi deschide<64>i un alt
|
|||
|
fi<EFBFBD>ier, primul fi<66>ier nu este salvat. Schimb<6D>rile efectuate r<>m<EFBFBD>n <20>n
|
|||
|
Emacs, <20>n buffer-ul asociat acelui fi<66>ier. Crearea sau editarea
|
|||
|
buffer-ului celui de-al doilea fi<66>ier nu are nici un efect asupra
|
|||
|
buffer-ului primului fi<66>ier. Acest lucru este foarte util, dar
|
|||
|
<EFBFBD>nseamn<EFBFBD> c<> ave<76>i nevoie de o modalitate convenabil<69> de a salva
|
|||
|
buffer-ul primului fi<66>ier. Ar fi obositor s<> fie necesar s<> v<> muta<74>i
|
|||
|
<EFBFBD>napoi la el cu C-x C-f pentru a-l putea salva cu C-x C-s. Din acest
|
|||
|
motiv exist<73> comanda:
|
|||
|
|
|||
|
C-x s salveaz<61> ni<6E>te buffere
|
|||
|
|
|||
|
C-x s v<> <20>ntreab<61> despre fiecare buffer care con<6F>ine modific<69>ri (<28>i
|
|||
|
care nu a fost salvat) dac<61> dori<72>i s<>-l salva<76>i.
|
|||
|
|
|||
|
>> Introduce<63>i o linie de text, apoi tasta<74>i C-x s.
|
|||
|
Ar trebui s<> v<> <20>ntrebe dac<61> s<> salveze buffer-ul TUTORIAL.ro.
|
|||
|
Raspunde<64>i "da" la <20>ntrebare tast<73>nd "y".
|
|||
|
|
|||
|
|
|||
|
* EXTINDEREA SETULUI DE COMENZI
|
|||
|
-------------------------------
|
|||
|
|
|||
|
Exist<EFBFBD> mult mai multe comenzi Emacs dec<65>t combina<6E>ii de taste bazate
|
|||
|
pe CONTROL <20>i META. Solu<6C>ia <20>n Emacs este folosirea comenzilor
|
|||
|
eXtinse. Acestea sunt de dou<6F> feluri:
|
|||
|
|
|||
|
C-x eXtinde un caracter; urmat<61> de un caracter
|
|||
|
M-x eXtinde un nume; urmat<61> de un nume lung
|
|||
|
|
|||
|
Acestea sunt comenzi care sunt utile <20>n general, dar folosite mai rar
|
|||
|
dec<EFBFBD>t comenzile despre care a<>i <20>nv<6E><76>at p<>n<EFBFBD> acum. A<>i v<>zut deja
|
|||
|
dou<EFBFBD> dintre ele: comanda de deschis fi<66>iere (C-x C-f) <20>i comanda de
|
|||
|
salvat fi<66>iere (C-x C-s). Un alt exemplu este comanda de p<>r<EFBFBD>sit
|
|||
|
Emacs-ul: C-x C-c. (Nu v<> teme<6D>i c<> ve<76>i pierde schimb<6D>ri f<>cute <20>n
|
|||
|
fi<EFBFBD>iere; <20>nainte de a termina sesiunea curent<6E> Emacs, C-x C-c v<> va
|
|||
|
<EFBFBD>ntreba dac<61> dori<72>i s<> salva<76>i fi<66>ierele modificate.)
|
|||
|
|
|||
|
C-z este comanda cu care pute<74>i ie<69>i din Emacs *temporar* - astfel
|
|||
|
<EFBFBD>nc<EFBFBD>t s<> pute<74>i s<> v<> <20>ntoarce<63>i la aceea<65>i sesiune Emacs mai t<>rziu.
|
|||
|
|
|||
|
Pe sistemele unde este posibil, C-z "suspend<6E>" Emacs-ul; asta <20>nseamn<6D>
|
|||
|
c<EFBFBD>, de<64>i v<> ve<76>i <20>ntoarce la prompt-ul shell-ului, Emacs-ul nu a fost
|
|||
|
distrus. <20>n shell-urile (interpretoarele de comenzi Unix) cele mai
|
|||
|
uzuale pute<74>i reactiva Emacs-ul cu comanda `fg' sau `%emacs'.
|
|||
|
|
|||
|
Pe sistemele care nu implementeaz<61> mecanismele de suspendare, C-z
|
|||
|
creeaz<EFBFBD> un subshell care ruleaz<61> sub Emacs pentru a v<> oferi
|
|||
|
posibilitatea de a rula alte programe <20>i de a v<> <20>ntoarce la Emacs mai
|
|||
|
t<EFBFBD>rziu; pe aceste sisteme C-z nu iese cu adev<65>rat din Emacs - comanda
|
|||
|
`exit' la promptul subshell-ului este modalitatea uzual<61> de a v<>
|
|||
|
<EFBFBD>ntoarce <20>n Emacs.
|
|||
|
|
|||
|
<EFBFBD>n general C-x C-c se folose<73>te <20>nainte de p<>r<EFBFBD>sirea sistemului.
|
|||
|
Pute<EFBFBD>i folosi aceast<73> comand<6E> <20>i pentru a ie<69>i din instan<61>e de Emacs
|
|||
|
lansate de programe de citit mail sau alte utilitare, deoarece acestea
|
|||
|
s-ar putea s<> nu fie capabile s<> foloseasc<73> facilita<74>ile de suspendare
|
|||
|
ale Emacs-ului. <20>n mod normal <20>ns<6E>, dac<61> nu sunte<74>i pe cale s<>
|
|||
|
p<EFBFBD>r<EFBFBD>si<EFBFBD>i sistemul, este mai bine s<> suspenda<64>i Emacs-ul cu C-z dec<65>t
|
|||
|
s<EFBFBD> ie<69>i<EFBFBD>i complet cu C-x C-c.
|
|||
|
|
|||
|
Emacs-ul are multe comenzi prefixate cu C-x. Aceasta este lista celor
|
|||
|
pe care le-a<>i <20>nv<6E><76>at p<>n<EFBFBD> acum:
|
|||
|
|
|||
|
C-x C-f deschide un fi<66>ier
|
|||
|
C-x C-s salveaz<61> fi<66>ierul
|
|||
|
C-x C-b listeaz<61> bufferele
|
|||
|
C-x C-c p<>r<EFBFBD>se<73>te Emacs-ul
|
|||
|
C-x u anuleaz<61>
|
|||
|
|
|||
|
Comenzile eXtinse cu nume sunt comenzile care sunt folosite <20>i mai rar
|
|||
|
sau comenzile care sunt folosite numai <20>n anumite moduri. Un exemplu
|
|||
|
este comanda replace-string (<28>nlocuie<69>te-<2D>ir) care <20>nlocuie<69>te global
|
|||
|
toate apari<72>iile unui <20>ir de caractere cu alt <20>ir de caractere. C<>nd
|
|||
|
tasta<EFBFBD>i M-x, Emacs-ul afi<66>eaz<61> pe ultima linie de pe ecran "M-x" <20>i
|
|||
|
pute<EFBFBD>i introduce numele comenzii - <20>n cazul nostru "replace-string".
|
|||
|
Pute<EFBFBD>i s<> tasta<74>i doar "repl s<TAB>" <20>i Emacs-ul va completa numele.
|
|||
|
Termina<EFBFBD>i comanda cu <Return>.
|
|||
|
|
|||
|
Comanda replace-string necesit<69> dou<6F> argumente - <20>irul ce va fi
|
|||
|
<EFBFBD>nlocuit <20>i <20>irul <20>nlocuitor. La sf<73>r<EFBFBD>itul introducerii fiec<65>rui
|
|||
|
argument trebuie s<> tasta<74>i <Return>.
|
|||
|
|
|||
|
>> Muta<74>i cursorul pe linia goal<61> care se g<>seste dou<6F> linii mai jos.
|
|||
|
Tasta<74>i apoi M-x repl s<Return>modificat<Return>alterat<Return>.
|
|||
|
|
|||
|
Observa<76>i modul <20>n care aceast<73> linie s-a modificat: a<>i <20>nlocuit
|
|||
|
toate apari<72>iile cuv<75>ntului s-c-h-i-m-b-a-t cu "alterat", dup<75>
|
|||
|
pozi<7A>ia ini<6E>ial<61> a cursorului.
|
|||
|
|
|||
|
|
|||
|
* SALVARE AUTOMAT<41>
|
|||
|
------------------
|
|||
|
|
|||
|
Dac<EFBFBD> a<>i facut schimb<6D>ri <20>ntr-un fi<66>ier, dar nu le-a<>i salvat, aceste
|
|||
|
schimb<EFBFBD>ri se pot pierde <20>n cazul <20>n care sistemul se blocheaz<61>.
|
|||
|
Pentru a v<> proteja munca, Emacs-ul salveaz<61> periodic un fi<66>ier de
|
|||
|
"autosalvare" pentru fiecare fi<66>ier pe care <20>l edita<74>i. Acest fi<66>ier
|
|||
|
are un "#" la <20>nceput <20>i unul la sf<73>r<EFBFBD>it; de exemplu, dac<61> fi<66>ierul
|
|||
|
dumneavoastr<EFBFBD> se numeste "hello.c", fi<66>ierul de autosalvare
|
|||
|
corespunz<EFBFBD>tor se va numi "#hello.c#". C<>nd salva<76>i fi<66>ierul <20>n mod
|
|||
|
normal, Emacs-ul <20>terge fi<66>ierul de autosalvare.
|
|||
|
|
|||
|
<EFBFBD>n cazul unei c<>deri a sistemului, pute<74>i s<> v<> recupera<72>i fi<66>ierul de
|
|||
|
autosalvare deschiz<69>nd fi<66>ierul <20>n mod normal (fi<66>ierul pe care <20>l
|
|||
|
edita<EFBFBD>i, nu pe cel de autosalvare) <20>i tast<73>nd dup<75> aceea M-x recover
|
|||
|
file<Return>. C<>nd vi se cere confirmarea, tasta<74>i yes<Return> pentru
|
|||
|
a continua <20>i a recupera fi<66>ierul.
|
|||
|
|
|||
|
|
|||
|
* ZONA DE ECOU
|
|||
|
--------------
|
|||
|
|
|||
|
Dac<EFBFBD> Emacs-ul observ<72> c<> tasta<74>i comenzile <20>ncet, vi le va ar<61>ta la
|
|||
|
marginea de jos a ecranului <20>ntr-o zona numit<69> "zona de ecou". Zona
|
|||
|
de ecou con<6F>ine cea mai de jos linie a ecranului.
|
|||
|
|
|||
|
|
|||
|
* LINIA DE MOD
|
|||
|
--------------
|
|||
|
|
|||
|
Linia de deasupra zonei de ecou se nume<6D>te "linia de mod" ("mode line"
|
|||
|
<EFBFBD>n limba englez<65>). Linia de mod con<6F>ine ceva de genul:
|
|||
|
|
|||
|
--**-Emacs: TUTORIAL (Fundamental)--L670--58%----------------
|
|||
|
|
|||
|
Aceast<EFBFBD> linie prezint<6E> informa<6D>ii utile despre starea Emacs-ului <20>i
|
|||
|
despre textul pe care <20>l edita<74>i.
|
|||
|
|
|||
|
Sti<EFBFBD>i deja ce <20>nseamn<6D> numele fi<66>ierului - este fi<66>ierul pe care l-a<>i
|
|||
|
deschis. -NN%-- indic<69> pozi<7A>ia curent<6E> a cursorului <20>n text - NN la
|
|||
|
sut<EFBFBD> din text este deasupra primei linii de pe ecran. Dac<61> <20>nceputul
|
|||
|
fi<EFBFBD>ierului este vizibil pe ecran, ve<76>i vedea --Top-- <20>n loc de
|
|||
|
--00%--. Dac<61> sf<73>r<EFBFBD>itul fi<66>ierului este vizibil pe ecran, ve<76>i vedea
|
|||
|
--Bot-- (de la "bottom" <20>n limba englez<65>). Dac<61> fi<66>ierul este at<61>t de
|
|||
|
mic, <20>nc<6E>t <20>ncape <20>n <20>ntregime pe ecran, pe linia de mod ve<76>i vedea
|
|||
|
--All--.
|
|||
|
|
|||
|
Stelele de la <20>nceputul liniei de mod semnalizeaz<61> existen<65>a unor
|
|||
|
modific<EFBFBD>ri nesalvate <20>n text. Imediat dup<75> deschiderea fi<66>ierului,
|
|||
|
por<EFBFBD>iunea respectiv<69> din linia de mod nu con<6F>ine nici o stea, doar
|
|||
|
minusuri.
|
|||
|
|
|||
|
Por<EFBFBD>iunea din<69>untrul parantezelor v<> spune modul de editare curent.
|
|||
|
Modul implicit este "Fundamental", modul pe care <20>l folosi<73>i chiar
|
|||
|
acum. Este un exemplu de "mod major".
|
|||
|
|
|||
|
Emacs-ul are multe moduri majore. Unele dintre ele sunt destinate
|
|||
|
edit<EFBFBD>rii diferitelor limbaje <20>i/sau tipuri de text, cum ar fi modul
|
|||
|
Lisp, modul Text, etc. Numai un mod major poate fi activ la un moment
|
|||
|
dat <20>i numele s<>u va fi <20>ntotdeauna acolo unde este "Fundamental"
|
|||
|
acum.
|
|||
|
|
|||
|
Fiecare mod major schimb<6D> comportamentul unor comenzi. De exemplu
|
|||
|
exist<EFBFBD> comenzi pentru crearea comentariilor <20>ntr-un program, dar, cum
|
|||
|
fiecare limbaj de programare are o idee diferit<69> despre felul cum ar
|
|||
|
trebui s<> arate un comentariu, fiecare mod major trebuie s<> le
|
|||
|
introduc<EFBFBD> <20>ntr-un alt fel. Exist<73> c<>te o comand<6E> asociat<61> fiec<65>rui
|
|||
|
mod major - aceasta este modalitatea de a schimba modul major. De
|
|||
|
exemplu, M-x fundamental-mode este comanda cu care poate fi ales modul
|
|||
|
"Fundamental".
|
|||
|
|
|||
|
Dac<EFBFBD> edita<74>i text <20>n limba rom<6F>n<EFBFBD>, cum ar fi de exemplu acest fi<66>ier,
|
|||
|
ar trebui probabil s<> folosi<73>i modul Text.
|
|||
|
|
|||
|
>> Tasta<74>i M-x text-mode<Return>.
|
|||
|
|
|||
|
Nu v<> temeti, nici una din comenzile pe care le-a<>i <20>nv<6E><76>at p<>n<EFBFBD> acum
|
|||
|
nu schimb<6D> Emacs-ul prea mult. Pute<74>i observa acum c<> M-f <20>i M-b
|
|||
|
trateaz<EFBFBD> apostrofurile ca parte din cuvinte. <20>nainte, <20>n modul
|
|||
|
Fundamental, M-f <20>i M-b tratau apostrofurile ca separatoare de
|
|||
|
cuvinte.
|
|||
|
|
|||
|
Modurile majore opereaz<61> schimb<6D>ri subtile, ca cea descris<69> mai sus.
|
|||
|
Majoritatea comenzilor execut<75> aceea<65>i opera<72>ie <20>n fiecare mod major,
|
|||
|
dar func<6E>ioneaz<61> pu<70>in diferit.
|
|||
|
|
|||
|
Pentru a vedea documenta<74>ia referitoare la modul major curent, tasta<74>i
|
|||
|
C-h m.
|
|||
|
|
|||
|
>> Folosi<73>i C-u C-v o dat<61> sau de mai multe ori pentru a aduce aceast<73>
|
|||
|
linie aproape de <20>nceputul ecranului. Tasta<74>i C-h m ca s<> afla<6C>i
|
|||
|
diferen<65>ele dintre modul Text <20>i modul Fundamental. Tasta<74>i C-x 1
|
|||
|
pentru a <20>terge documenta<74>ia de pe ecran.
|
|||
|
|
|||
|
Modurile majore se numesc "majore" pentru c<> exist<73> <20>i moduri minore.
|
|||
|
Modurile minore sunt ajust<73>ri minore ale modurilor majore. Fiecare
|
|||
|
mod minor poate fi activat sau dezactivat separat, independent de
|
|||
|
celelalte moduri minore <20>i independent de modul major curent. Pute<74>i
|
|||
|
s<EFBFBD> nu folosi<73>i nici un mod minor, un mod minor sau orice combina<6E>ie de
|
|||
|
moduri minore.
|
|||
|
|
|||
|
Un mod minor care este foarte util, <20>n mod special c<>nd edita<74>i text,
|
|||
|
este modul "Auto Fill". C<>nd acest mod este activat, Emacs-ul sparge
|
|||
|
automat liniile la spa<70>iul dintre cuvinte de fiecare dat<61> c<>nd
|
|||
|
introduc<EFBFBD>nd text crea<65>i o linie care este prea lung<6E>.
|
|||
|
|
|||
|
Pute<EFBFBD>i activa modul "Auto Fill" execut<75>nd M-x auto-fill-mode<Return>.
|
|||
|
C<EFBFBD>nd acest mod este activat, <20>l pute<74>i dezactiva execut<75>nd aceea<65>i
|
|||
|
comand<EFBFBD>. Dac<61> modul este dezactivat, aceast<73> comand<6E> <20>l activeaz<61>,
|
|||
|
c<EFBFBD>nd este activat, comanda <20>l dezactiveaz<61>. Se spune c<> aceast<73>
|
|||
|
comand<EFBFBD> inverseaz<61> modul.
|
|||
|
|
|||
|
>> Tasta<74>i M-x auto-fill-mode<Return> acum. Introduce<63>i apoi o linie
|
|||
|
con<6F>in<69>nd "asdf " de mai multe ori, p<>n<EFBFBD> c<>nd linia se sparge <20>n
|
|||
|
dou<6F>. Trebuie s<> pune<6E>i spa<70>ii <20>ntre cuvinte pentru c<> Auto Fill
|
|||
|
sparge linia numai la spa<70>ii.
|
|||
|
|
|||
|
Marginea este stabilit<69> <20>n mod normal la 70 de caractere, dar pute<74>i
|
|||
|
schimba aceast<73> valoare cu comanda C-x f. Introduce<63>i valoarea dorit<69>
|
|||
|
ca argument numeric pentru C-x f.
|
|||
|
|
|||
|
>> Tasta<74>i C-x f cu 20 ca argument numeric. (C-u 2 0 C-x f).
|
|||
|
Introduce<63>i apoi un text oarecare <20>i observa<76>i cum Emacs-ul umple
|
|||
|
linii de maximum 20 de caractere. Restaura<72>i marginea la 70 de
|
|||
|
caractere folosind din nou C-x f.
|
|||
|
|
|||
|
Dac<EFBFBD> face<63>i schimb<6D>ri <20>n mijlocul unui paragraf, modul Auto Fill nu
|
|||
|
rearanjeaz<EFBFBD> paragraful. Pentru a face acest lucru, trebuie s<> tasta<74>i
|
|||
|
M-q (META-q) cu cursorul pozi<7A>ionat <20>n<EFBFBD>untrul paragrafului.
|
|||
|
|
|||
|
>> Muta<74>i cursorul <20>n paragraful precedent <20>i tasta<74>i M-q.
|
|||
|
|
|||
|
|
|||
|
* C<>UTARE
|
|||
|
---------
|
|||
|
|
|||
|
Emacs-ul poate caut<75> <20>iruri (grupuri continue de caractere sau
|
|||
|
cuvinte) fie <20>nainte, fie <20>napoi (fa<66><61> de pozi<7A>ia curent<6E> a cursorului
|
|||
|
<EFBFBD>n text). C<>utarea unui <20>ir este o opera<72>ie ce mut<75> cursorul;
|
|||
|
cursorul este mutat <20>n pozi<7A>ia corespunz<6E>toare urm<72>toarei apari<72>ii a
|
|||
|
<EFBFBD>irului <20>n text.
|
|||
|
|
|||
|
C<EFBFBD>utarea este diferit<69> <20>n Emacs fa<66><61> de majoritatea editoarelor,
|
|||
|
deoarece este "incremental<61>". Asta <20>nseamn<6D> c<> execu<63>ia opera<72>iunii
|
|||
|
de c<>utare se face <20>n timp ce tasta<74>i <20>irul de c<>utat.
|
|||
|
|
|||
|
Comanda ce ini<6E>iaz<61> c<>utarea este C-s pentru c<>utare <20>nainte <20>i C-r
|
|||
|
pentru c<>utare <20>napoi. A<>TEPTA<54>I! Nu le <20>ncerca<63>i acum.
|
|||
|
|
|||
|
C<EFBFBD>nd tasta<74>i C-s ve<76>i remarca faptul c<> <20>irul "I-search" apare ca
|
|||
|
prompt <20>n zona de ecou. Aceasta v<> spune c<> Emacs-ul este <20>n modul de
|
|||
|
c<EFBFBD>utare incremental<61>, a<>tept<70>nd ca dumneavoastr<74> s<> introduce<63>i <20>irul
|
|||
|
pe care dori<72>i s<>-l c<>uta<74>i. C<>utarea poate fi terminat<61> cu <Return>.
|
|||
|
|
|||
|
>> Tasta<74>i acum C-s pentru a porni o c<>utare. <20>NCET, c<>te o singur<75>
|
|||
|
liter<65> la un moment dat, tasta<74>i cuv<75>ntul "cursor", f<>c<EFBFBD>nd o pauz<75>
|
|||
|
dup<75> fiecare caracter tastat ca s<> observa<76>i ce se <20>ntampl<70> cu
|
|||
|
cursorul. Acum a<>i terminat de c<>utat prima apari<72>ie a cuv<75>ntului
|
|||
|
"cursor".
|
|||
|
>> Tasta<74>i C-s din nou, pentru a c<>uta urm<72>toarea apari<72>ie a
|
|||
|
cuv<75>ntului "cursor".
|
|||
|
>> Tasta<74>i acum <Delete> de patru ori <20>i observa<76>i mi<6D>carea
|
|||
|
cursorului.
|
|||
|
>> Tasta<74>i <Return> pentru a termina c<>utarea.
|
|||
|
|
|||
|
A<EFBFBD>i observat ce s-a <20>ntamplat? <20>n timpul unei c<>ut<75>ri incrementale
|
|||
|
Emacs-ul <20>ncearc<72> s<> se pozi<7A>ioneze pe prima apari<72>ie a <20>irului pe
|
|||
|
care l-a<>i introdus p<>n<EFBFBD> <20>n momentul respectiv. Dac<61> vre<72>i s<> v<>
|
|||
|
pozi<EFBFBD>iona<EFBFBD>i pe urm<72>toarea apari<72>ie a cuv<75>ntului "cursor", nu trebuie
|
|||
|
dec<EFBFBD>t s<> tasta<74>i C-s <20>nc<6E> o dat<61>. Dac<61> nu mai exist<73> o alt<6C> apari<72>ie,
|
|||
|
Emacs-ul va emite un sunet <20>i v<> va anun<75>a c<> opera<72>iunea de c<>utare a
|
|||
|
e<EFBFBD>uat ("failed" <20>n limba englez<65>). C-g este o alt<6C> metod<6F> de a
|
|||
|
termina c<>utarea.
|
|||
|
|
|||
|
OBSERVA<EFBFBD>IE: Pe unele sisteme, C-s va bloca ecranul <20>i nu ve<76>i mai
|
|||
|
primi nici un r<>spuns de la Emacs. Aceasta indic<69> faptul c<> o
|
|||
|
"facilitate" a sistemului de operare numit<69> "controlul fluxului"
|
|||
|
("flow control" <20>n limba englez<65>) intercepteaz<61> caracterul C-s <20>i
|
|||
|
acesta nu mai ajunge la Emacs. Pentru deblocarea ecranului, ap<61>sa<73>i
|
|||
|
C-q. Pute<74>i g<>si detalii referitoare la aceast<73> a<>a-numit<69>
|
|||
|
"facilitate" <20>n sec<65>iunea "Spontaneous Entry to Incremental Search"
|
|||
|
din manualul Emacs-ului.
|
|||
|
|
|||
|
Dac<EFBFBD> sunte<74>i <20>n mijlocul unei c<>ut<75>ri incrementale <20>i tasta<74>i
|
|||
|
<Delete>, ve<76>i observa c<> ultimul caracter <20>n c<>utarea incremental<61>
|
|||
|
este <20>ters <20>i c<>utarea se <20>ntoarce la pozi<7A>ia anterioar<61>. De exemplu,
|
|||
|
s<EFBFBD> presupunem c<> a<>i tastat "c", pentru a c<>uta prima apari<72>ie a lui
|
|||
|
"c". Dac<61> tasta<74>i "u", cursorul se va muta la prima apari<72>ie a lui
|
|||
|
"cu". Tasta<74>i acum <Delete>. Aceasta va <20>terge "u"-ul din <20>irul de
|
|||
|
c<EFBFBD>utare <20>i cursorul se va muta <20>napoi la prima apari<72>ie a lui "c".
|
|||
|
|
|||
|
C<EFBFBD>utarea incremental<61> poate fi terminat<61> prin tastarea unui caracter
|
|||
|
bazat pe CONTROL sau META (cu c<>teva excep<65>ii - caracterele care sunt
|
|||
|
specifice c<>ut<75>rii, cum ar fi C-s <20>i C-r).
|
|||
|
|
|||
|
C-s <20>ncepe o c<>utare care inspecteaz<61> textul de DUP<55> pozi<7A>ia curent<6E> a
|
|||
|
cursorului. Dac<61> dori<72>i s<> c<>uta<74>i <20>n textul dinaintea pozi<7A>iei
|
|||
|
curente a cursorului, folosi<73>i C-r. Toat<61> discu<63>ia referitoare la C-s
|
|||
|
se aplic<69> <20>i comenzii C-r, cu men<65>iunea c<> direc<65>ia de c<>utare este
|
|||
|
invers<EFBFBD>.
|
|||
|
|
|||
|
|
|||
|
* FERESTRE MULTIPLE
|
|||
|
-------------------
|
|||
|
|
|||
|
Una dintre facilit<69><74>ile importante ale Emacs-ului este aceea de a
|
|||
|
afi<EFBFBD>a pe ecran mai multe ferestre simultan.
|
|||
|
|
|||
|
>> Muta<74>i cursorul pe aceast<73> linie <20>i tasta<74>i C-u 0 C-l.
|
|||
|
|
|||
|
>> Tasta<74>i acum C-x 2 pentru a <20>mp<6D>r<EFBFBD>i ecranul <20>n dou<6F> ferestre.
|
|||
|
Am<41>ndou<6F> ferestrele vor afi<66>a acest tutorial. Cursorul va r<>mane
|
|||
|
<20>n fereastra din partea de sus a ecranului.
|
|||
|
|
|||
|
>> Tasta<74>i C-M-v pentru a mi<6D>ca textul din fereastra de jos.
|
|||
|
(Dac<61> nu ave<76>i o tast<73> META, tasta<74>i ESC C-v.)
|
|||
|
|
|||
|
>> Tasta<74>i C-x o ("o" de la "other" - "cealalt<6C>" <20>n limba
|
|||
|
englez<65>) pentru a muta cursorul <20>n fereastra de jos.
|
|||
|
|
|||
|
>> Tasta<74>i C-v <20>i M-v <20>n fereastra de jos pentru a muta textul.
|
|||
|
Continua<75>i s<> citi<74>i aceste instruc<75>iuni <20>n fereastra de sus.
|
|||
|
|
|||
|
>> Tasta<74>i C-x o din nou pentru a muta cursorul <20>napoi <20>n fereastra de
|
|||
|
sus. Cursorul va fi plasat <20>n locul unde a fost anterior.
|
|||
|
|
|||
|
Pute<EFBFBD>i continua s<> folosi<73>i C-x o pentru a v<> muta <20>ntre ferestre.
|
|||
|
Fiecare fereastr<74> are propria ei pozi<7A>ie a cursorului, dar numai o
|
|||
|
fereastr<EFBFBD> arat<61> cursorul la un moment dat. Toate opera<72>iile normale
|
|||
|
de editare au efect <20>n fereastra <20>n care se g<>se<73>te cursorul -
|
|||
|
fereastra respectiv<69> se nume<6D>te "fereastra selectat<61>".
|
|||
|
|
|||
|
Comanda C-M-v este foarte util<69> c<>nd edita<74>i text <20>ntr-o fereastr<74> <20>i
|
|||
|
folosi<EFBFBD>i cealalt<6C> fereastr<74> pentru a citi documenta<74>ii. Pute<74>i <20>ine
|
|||
|
<EFBFBD>ntotdeauna cursorul <20>n fereastra <20>n care edita<74>i, <20>n timp ce avansa<73>i
|
|||
|
textul din cealalt<6C> fereastr<74> cu C-M-v.
|
|||
|
|
|||
|
C-M-v este un exemplu de caracter CONTROL-META. Dac<61> ave<76>i o tast<73>
|
|||
|
META, pute<74>i tasta C-M-v <20>in<69>nd ap<61>sate <20>i CONTROL <20>i META c<>nd tasta<74>i
|
|||
|
v. Nu conteaz<61> care dintre CONTROL sau META este ap<61>sat<61> mai <20>nt<6E>i,
|
|||
|
pentru c<> am<61>ndou<6F> ac<61>ioneaz<61> prin modificarea caracterului pe care <20>l
|
|||
|
tasta<EFBFBD>i.
|
|||
|
|
|||
|
Dac<EFBFBD> nu ave<76>i o tast<73> META <20>i folosi<73>i ESC <20>n loc, ordinea este
|
|||
|
important<EFBFBD>: trebuie s<> tasta<74>i ESC urmat de CONTROL-v; CONTROL-ESC v
|
|||
|
nu va func<6E>iona, din cauza faptului c<> ESC este un caracter de sine
|
|||
|
st<EFBFBD>t<EFBFBD>tor, nu un modificator.
|
|||
|
|
|||
|
>> Tasta<74>i C-x 1 (<28>n fereastra de sus) ca s<> renun<75>a<EFBFBD>i la fereastra
|
|||
|
de jos.
|
|||
|
|
|||
|
(Dac<61> a<>i tastat C-x 1 <20>n fereastra de jos, aceast<73> comand<6E> va <20>nchide
|
|||
|
fereastra de sus. G<>ndi<64>i-v<> la ea a<>a "P<>streaz<61> doar o fereastr<74> -
|
|||
|
cea <20>n care sunt acum.")
|
|||
|
|
|||
|
Nu este nevoie s<> afisa<73>i acela<6C>i buffer <20>n ambele ferestre. Dac<61>
|
|||
|
folosi<EFBFBD>i C-x C-f pentru a deschide un fi<66>ier <20>ntr-o fereastr<74>,
|
|||
|
cealalt<EFBFBD> fereastr<74> nu se schimb<6D>. Pute<74>i deschide un fi<66>ier diferit
|
|||
|
<EFBFBD>n fiecare fereastr<74>.
|
|||
|
|
|||
|
O alt<6C> modalitate de a folosi dou<6F> ferestre ca s<> afi<66>a<EFBFBD>i lucruri
|
|||
|
diferite:
|
|||
|
|
|||
|
>> Tasta<74>i C-x 4 C-f apoi numele unui fi<66>ier. Termina<6E>i comanda
|
|||
|
cu <Return> Observa<76>i c<> fi<66>ierul specificat apare <20>n fereastra de
|
|||
|
jos. Cursorul la fel.
|
|||
|
|
|||
|
>> Tasta<74>i C-x o pentru a v<> muta <20>n fereastra de sus, apoi tasta<74>i
|
|||
|
C-x 1 pentru a <20>terge fereastra de jos.
|
|||
|
|
|||
|
|
|||
|
* NIVELURI DE EDITARE RECURSIV<49>
|
|||
|
-------------------------------
|
|||
|
|
|||
|
Uneori ve<76>i intra <20>n ceea ce se numeste un "nivel de editare
|
|||
|
recursiv<EFBFBD>". Acesta este indicat de prezen<65>a unor paranteze drepte <20>n
|
|||
|
linia de mod <20>n jurul numelui modului major. De exemplu, s-ar putea
|
|||
|
s<EFBFBD> vede<64>i [(Fundamental)] <20>n loc de (Fundamental).
|
|||
|
|
|||
|
Pentru a ie<69>i din nivelul de editare recursiv<69>, tasta<74>i ESC ESC ESC.
|
|||
|
Aceasta este o comand<6E> de ie<69>ire de uz general. O pute<74>i folosi <20>i ca
|
|||
|
s<EFBFBD> ie<69>i<EFBFBD>i din minibuffer sau ca s<> elimina<6E>i ferestrele <20>n plus.
|
|||
|
|
|||
|
>> Tasta<74>i M-x pentru a intra <20>n minibuffer; tasta<74>i apoi ESC ESC ESC
|
|||
|
ca s<> ie<69>i<EFBFBD>i.
|
|||
|
|
|||
|
Nu pute<74>i folosi C-g pentru a ie<69>i dintr-un nivel de editare recursiv<69>
|
|||
|
deoarece comanda C-g este folosit<69> pentru a anula comenzi <20>i argumente
|
|||
|
<EFBFBD>n<EFBFBD>untrul unui nivel de editare recursiv<69>.
|
|||
|
|
|||
|
|
|||
|
* CUM PUTE<54>I OB<4F>INE MAI MULTE INFORMA<4D>II
|
|||
|
----------------------------------------
|
|||
|
|
|||
|
<EFBFBD>n acest tutorial am <20>ncercat s<> furniz<69>m suficiente informa<6D>ii pentru
|
|||
|
a face primii pa<70>i <20>n Emacs. Exist<73> at<61>t de multe comenzi <20>n Emacs
|
|||
|
<EFBFBD>nc<EFBFBD>t ar fi imposibil s<> le explic<69>m pe toate aici. S-ar putea <20>ns<6E>
|
|||
|
s<EFBFBD> dori<72>i s<> <20>nva<76>a<EFBFBD>i mai multe despre Emacs, deoarece ofer<65> foarte
|
|||
|
multe facilita<74>i interesante. Exist<73> comenzi pentru a citi
|
|||
|
documenta<EFBFBD>ia despre comenzile Emacs-ului. Aceste comenzi ajut<75>toare
|
|||
|
sunt prefixate cu caracterul C-h, denumit <20>i "caracterul de ajutor".
|
|||
|
|
|||
|
Pentru a folosi aceste facilit<69><74>i de ajutor, tasta<74>i caracterul C-h,
|
|||
|
apoi un caracter ce specific<69> tipul de ajutor de care ave<76>i nevoie.
|
|||
|
<EFBFBD>n cazul <20>n care sunte<74>i nel<65>murit, tasta<74>i C-h ? <20>i Emacs-ul v<> va
|
|||
|
spune ce fel de ajutor v<> poate oferi. Dac<61> a<>i tastat C-h <20>i v<>
|
|||
|
r<EFBFBD>zg<EFBFBD>ndi<EFBFBD>i (nu mai dori<72>i ajutor) pute<74>i tasta C-g pentru a anula
|
|||
|
comanda.
|
|||
|
|
|||
|
(Anumite site-uri remapeaz<61> caracterul C-h. Nu ar trebui s<> fac<61> asta
|
|||
|
orbe<EFBFBD>te pentru to<74>i utilizatorii - ave<76>i motiv s<> v<> pl<70>nge<67>i
|
|||
|
administratorului de sistem. <20>ntre timp, dac<61> C-h nu afi<66>eaz<61> un
|
|||
|
mesaj despre ajutor la marginea de jos a ecranului, <20>ncerca<63>i M-x
|
|||
|
help<Return> <20>n loc.)
|
|||
|
|
|||
|
Comanda elementar<61> de ajutor este C-h c. Tasta<74>i C-h, apoi caracterul
|
|||
|
c <20>i o comand<6E> alc<6C>tuit<69> dintr-un caracter sau secven<65><6E> de caractere
|
|||
|
<EFBFBD>i Emacs-ul va afi<66>a o scurt<72> descriere a comenzii.
|
|||
|
|
|||
|
>> Tasta<74>i C-h c C-p.
|
|||
|
|
|||
|
Mesajul ar trebui s<> fie ceva de genul
|
|||
|
|
|||
|
C-p runs the command previous-line
|
|||
|
|
|||
|
Aceasta v<> spune "numele func<6E>iei". Numele de func<6E>ii sunt folosite
|
|||
|
<EFBFBD>n principal pentru a adapta <20>i extinde Emacs-ul, dar, cum numele
|
|||
|
func<EFBFBD>iilor sunt alese <20>n a<>a fel <20>nc<6E>t s<> indice actiunea comenzii
|
|||
|
respective, ele pot servi ca o documenta<74>ie foarte scurt<72>, suficient<6E>
|
|||
|
ca s<> v<> aminteasc<73> de comenzi pe care le-a<>i <20>nv<6E><76>at deja.
|
|||
|
|
|||
|
Comenzile formate din mai multe caractere (cum ar fi C-x C-s) <20>i (dac<61>
|
|||
|
nu ave<76>i o tasta META, EDIT sau ALT) <ESC> v sunt de asemenea permise
|
|||
|
dup<EFBFBD> C-h c.
|
|||
|
|
|||
|
Pentru a ob<6F>ine mai multe informa<6D>ii despre o comand<6E>, folosi<73>i C-h k
|
|||
|
<EFBFBD>n loc de C-h c.
|
|||
|
|
|||
|
>> Tasta<74>i C-h k C-p.
|
|||
|
|
|||
|
Aceast<EFBFBD> comand<6E> afi<66>eaz<61> documenta<74>ia <20>i numele func<6E>iei <20>ntr-o
|
|||
|
fereastr<EFBFBD> separat<61>. C<>nd termina<6E>i de citit, tasta<74>i q pentru a
|
|||
|
o elimina. Nu trebuie s<> face<63>i acest lucru imediat. Pute<74>i edita
|
|||
|
o vreme, citind textul din fereastra de ajutor.
|
|||
|
|
|||
|
C<EFBFBD>teva comenzi C-h utile:
|
|||
|
|
|||
|
C-h f descrie o func<6E>ie al c<>rei nume trebuie s<>-l
|
|||
|
introduce<63>i
|
|||
|
|
|||
|
>> <20>ncerca<63>i s<> tasta<74>i C-h f previous-line<Return>.
|
|||
|
Aceasta afi<66>eaz<61> toat<61> informa<6D>ia pe care o are Emacs-ul despre
|
|||
|
func<6E>ia ce implementeaz<61> comanda C-p.
|
|||
|
|
|||
|
C-h a Command Apropos. Tasta<74>i un cuv<75>nt cheie <20>i Emacs-ul va
|
|||
|
lista toate func<6E>iile <20>i variabilele ale c<>ror nume
|
|||
|
con<6F>in acel cuv<75>nt cheie. La st<73>nga comenzilor care
|
|||
|
pot fi invocate cu M-x va fi afi<66>at<61> o stelu<6C><75>.
|
|||
|
Pentru unele comenzi, Command Apropos va lista o
|
|||
|
secven<65><6E> de unul sau dou<6F> caractere ce execut<75> aceea<65>i
|
|||
|
comand<6E>.
|
|||
|
|
|||
|
>> Tasta<74>i C-h a fi<66>ier<Return>.
|
|||
|
|
|||
|
Aceasta afi<66>eaz<61> <20>ntr-o alt<6C> ferastr<74> o list<73> a tuturor comenzilor M-x
|
|||
|
al c<>ror nume con<6F>ine "fi<66>ier". Ve<56>i vedea caractere-comand<6E> de genul
|
|||
|
C-x C-f listate l<>ng<6E> comanda nume corespunz<6E>toare (find-file).
|
|||
|
|
|||
|
>> Tasta<74>i C-M-v ca s<> deplasa<73>i con<6F>inutul ferestrei de ajutor.
|
|||
|
Face<63>i acest lucru de c<>teva ori.
|
|||
|
|
|||
|
>> Tasta<74>i C-x 1 pentu a <20>terge fereastra de ajutor.
|
|||
|
|
|||
|
|
|||
|
* CONCLUZII
|
|||
|
-----------
|
|||
|
|
|||
|
<EFBFBD>ine<EFBFBD>i minte, pentru a ie<69>i permanent din Emacs, folosi<73>i C-x C-c.
|
|||
|
Pentru a ie<69>i temporar <20>ntr-un shell (<28>n a<>a fel <20>nc<6E>t s<> v<> pute<74>i
|
|||
|
<EFBFBD>ntoarce la Emacs mai t<>rziu) folosi<73>i C-z.
|
|||
|
|
|||
|
Acest tutorial a fost organizat <20>n a<>a fel <20>nc<6E>t s<> fie pe <20>n<EFBFBD>elesul
|
|||
|
noilor utilizatori - nu v<> sfii<69>i s<> v<> pl<70>nge<67>i autorilor dac<61> gasi<73>i
|
|||
|
ceva neclar!
|
|||
|
|
|||
|
|
|||
|
COPIERE
|
|||
|
-------
|
|||
|
|
|||
|
Acest tutorial este rezultatul prelucr<63>rii unei serii lungi de
|
|||
|
tutoriale pentru Emacs derivate din cel scris de Stuart Cracraft
|
|||
|
pentru versiunea ini<6E>ial<61> de Emacs.
|
|||
|
|
|||
|
Cu scopul evit<69>rii oric<69>ror confuzii datorate traducerii, las <20>n
|
|||
|
continuare no<6E>ita de copyright original<61> <20>n limba englez<65>.
|
|||
|
|
|||
|
This version of the tutorial, like GNU Emacs, is copyrighted, and
|
|||
|
comes with permission to distribute copies on certain conditions:
|
|||
|
|
|||
|
Copyright (c) 1985, 1996 Free Software Foundation
|
|||
|
|
|||
|
Permission is granted to anyone to make or distribute verbatim copies
|
|||
|
of this document as received, in any medium, provided that the
|
|||
|
copyright notice and permission notice are preserved,
|
|||
|
and that the distributor grants the recipient permission
|
|||
|
for further redistribution as permitted by this notice.
|
|||
|
|
|||
|
Permission is granted to distribute modified versions
|
|||
|
of this document, or of portions of it,
|
|||
|
under the above conditions, provided also that they
|
|||
|
carry prominent notices stating who last altered them.
|
|||
|
|
|||
|
Condi<EFBFBD>iile de copiere a Emacs-ului sunt mai complexe, dar <20>n acela<6C>i
|
|||
|
spirit. Citi<74>i fi<66>ierul COPYING <20>i apoi distribui<75>i prietenilor copii
|
|||
|
ale Emacs-ului. Contribui<75>i la eliminarea obstruc<75>ionismului software
|
|||
|
folosind, scriind <20>i distribuind free software!
|