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