mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-11-26 07:33:47 +00:00
8c1fe1e5ef
Run "TZ=UTC0 admin/update-copyright $(git ls-files)".
1106 lines
48 KiB
Plaintext
1106 lines
48 KiB
Plaintext
Tutorialului de Emacs. A se citi sfârşitul pentru condiţii.
|
|
Traducere din engleză de Tudor Hulubei <tudor@gnu.org>.
|
|
Mulţumiri Aidei Hulubei <aida@chang.pub.ro> pentru corecturi şi sugestii.
|
|
|
|
Această versiune a fost produsă plecând de la versiunea în limba
|
|
engleză, care este
|
|
Copyright (c) 1985, 2013-2021 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.
|
|
|
|
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) 1998, 2001-2020 Free Software Foundation, Inc.
|
|
|
|
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!
|
|
|
|
;;; Local Variables:
|
|
;;; coding: utf-8
|
|
;;; End:
|