1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
|
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-2014 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-2014 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:
|