-
Notifications
You must be signed in to change notification settings - Fork 0
/
TUTORIAL.fa
1164 lines (820 loc) · 77.7 KB
/
TUTORIAL.fa
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
آموزش Emacs «ایمکس». برای شرایط کپی به پایان مراجعه کنید.
فرمانهای Emacs عموماً شامل کلید CONTROL (گاهی اوقات با برچسب CTRL)
یا کلید META (معمولا با برچسب ALT) هستند. به جای هر بار بطور کامل نوشتن،
از خلاصه زیر استفاده خواهیم کرد:
C-<chr> به معنای نگه داشتن کلید CONTROL در حین تایپ کاراکترِ <chr> است.
بنابراین، C-f خواهد بود: کلید CONTROL را نگه دارید و f را تایپ کنید.
M-<chr> یعنی کلید META یا ALT را هنگام تایپ حرفِ <chr> پایین نگه دارید.
اگر کلید META، یا ALT وجود ندارد، به جای آن کلید ESC را فشار
داده و رها کنید، سپس <حرف> را تایپ کنید.
برای کلید ESC می نویسیم <ESC>.
نکته مهم: برای پایان دادن به جلسه Emacs، دو حرف C-x C-c را تایپ کنید.
برای خروج از یک فرمانِ ناکامل، C-g را تایپ کنید.
برای توقف آموزش، C-x k و سپس در پاسخ به نشانگر <Return> را تایپ کنید.
کاراکترهای ">>" در حاشیه سمت راست فرمانهایی را برای شمامشخص می کند. برای مثال:
<<خطهای خالی بعد از خط بعدی توسط help-with-tutorial درج میشود>>
[وسط صفحه برای اهداف آموزشی خالی مانده است. ادامه متن در زیر]
>> اکنون C-v را تایپ کنید (نمایش صفحه بعدی) تا یک صفحه کامل به پایین بروید.
(این کار را با نگه داشتن کلید CONTROL و فشار کلید v انجام دهید).
از این پس، لطفاً هر زمان که به انتهای صفحه رسیدید، این کار را انجام دهید.
توجه داشته باشید که وقتی یک صفحه کامل را اسکرول می کنید، دو خط همپوشانی دارند؛
این مقداری تداوم را فراهم می کند تا بتوانید به خواندن متن ادامه دهید.
این یک کپی از متن آموزشی Emacs است که کمی برای شما شخصی سازی شده است.
بعداً به شما آموزش خواهیم داد که فرمانهای مختلفی را برای تغییر این متن استفاده
کنید. اگر قبل از اینکه به شماگفته باشیم، این متن را تغییر داده اید،
نگران نباشید. این کار «ویرایش» نامیده می شود و Emacs برای همین است.
اولین چیزی که باید بدانید این است که چگونه از یک مکان به اطراف حرکت کنید.
شما از قبل می دانید که با C-v چگونه یک صفحه به جلو حرکت میکند.
برای حرکت یک صفحه به سمت عقب، M-v را تایپ کنید (کلید META را نگه دارید
و v را تایپ کنید، یا اگر کلید META، یا ALT را ندارید، <ESC>vرا تایپ کنید).
>> چند بار M-v و سپس C-v را تایپ و امتحان کنید.
شما می توانید این متن را با روش های دیگری که میدانید اسکرول کنید.
* خلاصه
---------
فرمانهای زیر برای مشاهده کل صفحه نمایش مفید هستند:
C-v یک صفحه نمایش به جلو حرکت کنید.
M-v یک صفحه نمایش به عقب حرکت کنید.
C-l پاک کردن صفحه و نمایش مجدد تمام متن،
جابجایی مکان نما و متن به مرکز صفحه نمایش
(این CONTROL-L است، نه CONTROL-1.)
>> مکاننما را پیدا کنید و توجه داشته باشید که چه متنی در نزدیکی آن است.
سپس C-l را تایپ کنید. دوباره مکان نما را پیدا کنید وتوجه کنید که هنوز
نزدیک همان متن است. اما مکان نما، اکنون در مرکز صفحه است.
اگر دوباره C-l را فشار دهید، این قطعه متن به بالای صفحه منتقل می شود.
مجددا C-l را فشار دهید، صفحه نمایش دوباره به پایین حرکت می کند.
اگر ترمینال شما کلیدهای PageUp و PageDn را دارد، میتوانید برای جابهجایی یک
صفحه کامل از آنها استفاده کنید.
اما در صورت استفاده از C-v و M-v شما می توانید کارآمدتر ویرایش کنید.
* کنترل مکان نما
----------------------
حرکت از یک صفحه نمایش به صفحه نمایش دیگر مفید است، اما چگونه
به مکان خاصی در متنِ روی صفحه حرکت کنید؟
چندین راه وجود دارد که می توانید این کار را انجام دهید. می توانید از
کلیدهای جهت دار استفاده کنید، اما کارآمدتر است که دستان خود را در وضعیت
استاندارد نگه دارید. از فرمانهایِ C-p، C-b، C-f و C-n استفاده کنید. این فرمان ها
معادل چهار کلید جهت دار هستند، مانند:
سطر قبل، C-p
:
:
به عقب، C-b .... موقعیت مکان نما فعلی .... به جلو، C-f
:
:
خط بعدی، C-n
>> با استفاده از C-n یا C-p مکان نما را به خط وسط نمودار بالا حرکت دهید.
سپس C-l را تایپ کنید تا کل نمودار را در مرکز صفحه نمایش ببینید.
به راحتی می توانید این حروف را با کلماتی که مخفف آنها هستند به خاطر بسپارید:
Previous) p) برای قبلی، Next) n) برای بعدی, Backward) b) برای عقب و
Forward) f) برای جلو. شما همیشه از این فرمانهایِ اصلی تعیین موقعیت مکان نما
استفاده خواهید کرد.
>> برای پایین آوردن مکان نما به این خط، چند C-n انجام دهید.
>> حرکت به جلو، روی خط با C-f و سپس به بالا با C-p.
ببینید C-p وقتی مکان نما در وسط خط قرار دارد چه می کند.
هر خط از متن با یک کاراکترِ Newline به پایان می رسد، که
آن را از خط زیر جدا میکند. (به طور معمول،یک فایل در پایان دارای
یک Newline خواهد بود، اما Emacs به آن نیاز ندارد.)
>> هنگامی که نشانگر در ابتدای خط است، از C-b استفاده کنید. باید به انتهای
خط قبلی حرکت کند. به این دلیل است که این حرکت از سراسر Newline میگذرد.
فرمان C-f می تواند مانند C-b روی خط جدید حرکت کند.
>> چند C-b دیگر انجام دهید، بنابراین می توانید نشانگر را در مکان مورد
نظر قرار دهید. سپس C-f را انجام دهید تا به انتهای خط برگردید.
سپس یک C-f دیگر انجام دهید تا به خط زیر بروید.
وقتی از بالا یا پایین صفحه عبور می کنید، متن فراتر می رود
لبه روی صفحه نمایش جابجا می شود. به این "پیمایش یا اسکرول" می گویند. این
Emacs را قادر می سازد تا مکان نما را به مکان مشخص شده در متن منتقل کند
بدون اینکه آن را از صفحه نمایش جدا کنید.
>> سعی کنید مکان نما را از پایین صفحه با C-n حرکت دهید و
ببیند چه اتفاقی می افتد.
اگر حرکت بر اساس کاراکترها خیلی کند است، می توانید با کلمات حرکت کنید. M-f
(META-f) یک کلمه را جلو می برد و M-b یک کلمه را به عقب می برد.
>> چند M-f و M-b تایپ کنید.
وقتی در وسط یک کلمه هستید، M-f به انتهای کلمه می رود.
هنگامی که در فضای خالی بین کلمات قرار دارید، M-f به انتهای کلمه بعدی منتقل
می شود. M-b نیز در جهت مخالف کار می کند.
>> فرمان M-f و M-b را چند بار با C-f و C-b در هم آمیخته تایپ کنید،
تا عمل M-f و M-b را از انواع مکان های درون و بین کلمات مختلف مشاهده کنید.
به موازات بین C-f و C-b از یک طرف و M-f و M-b از طرف دیگر توجه کنید.
عملیات مربوط به واحدهای تعریف شده توسط زبان (کلمات، جملات، پاراگراف ها)
اغلب با کاراکترهای متا انجام می شود،
در حالی که کاراکترهای Control بر روی واحدهای اصلی، مستقل از آنچه در حال
ویرایش هستید (حروف، خطوط و غیره) عمل می کنند.
این توازی بین خطوط و جملات اعمال می شود: C-a و C-e حرکت به
ابتدا یا انتهای یک خط، و M-a و M-e به ابتدا یا پایان یک جمله حرکت می کنند.
>>دو C-a، و سپس دو C-e را امتحان کنید.
چند M-a و سپس چند M-e را امتحان کنید.
ببینید چگونه C-a های تکراری هیچ کاری انجام نمی دهند، اما M-a های تکراری به
حرکت خود ادامه می دهند. اگرچه اینها کاملاً مشابه نیستند، اما هر یک طبیعی
به نظر می رسد.
به مکانِ مکان نما در متن "نقطه" نیز می گویند.
به عبارت دیگر، مکان نما روی صفحه نشان می دهد که نقطه در کجای متن قرار دارد.
در اینجا خلاصه ای از عملیات ساده حرکت مکان نما، از جمله
فرمانهایِ حرکت کلمه و جمله نشان داده می شود:
C-f یک کاراکتر را به جلو حرکت دهید
C-b یک کاراکتر را به عقب حرکت دهید
M-f یک کلمه را به جلو حرکت دهید
M-b یک کلمه را به عقب حرکت دهید
C-n به خط بعدی بروید
C-p به خط قبلی بروید
C-a حرکت به ابتدای خط
C-e حرکت به انتهای خط
M-a به ابتدای جمله برگردید
M-e حرکت به جلو تا پایان جمله
>> همه این فرمانها را اکنون چند بار برای تمرین امتحان کنید.
این فرمانها بیشترین استفاده را دارند.
دو فرمان مهم دیگر حرکت مکان نما عبارتند از M-< : (META کمتر از)،
که به ابتدای کل متن حرکت می کند و M-> (META بزرگتر از)،
که به انتهای کل متن می رود.
در اکثر ترمینالها، ">" بالای کاما است، بنابراین باید با استفاده از کلید
shift آن را تایپ کنید.
در این ترمینالها باید از کلید shift برای تایپ >-M نیز استفاده کنید.
بدون کلید shift، شما کاما، M را تایپ می کنید.
>> اکنون >-M را امتحان کنید تا به ابتدای آموزش بروید.
سپس از C-v مکرراً برای بازگشت به اینجا استفاده کنید.
>> اکنون <-M را امتحان کنید تا به انتهای آموزش بروید.
سپس از M-v مکرراً برای بازگشت به اینجا استفاده کنید.
همچنین می توانید مکان نما را با کلیدهای جهت دار حرکت دهید، اگر ترمینال شما
آن را داشته باشد. ما استفاده از C-b، C-f، C-n و C-p را به سه دلیل توصیه میکنیم.
اول، آنها بر روی انواع ترمینالها کار می کنند.
دوم, هنگامی که مهارت شما در استفاده از Emacs بیشتر شود، متوجه خواهید شد که
تایپ با کنترل کاراکترها، سریعتر از تایپ کلیدهای جهت دار است.
(زیرا احتیاج نیست که شما دستان خود را از موقعیت تایپ لمسی دور کنید).
سوم، وقتی شما عادت به استفاده از فرمانهایِ کاراکتر Control را دارید، می توانید
به راحتی یاد بگیرید که از دیگر فرمانهایِ پیشرفته حرکت مکان نما نیز استفاده کنید.
اکثر فرمانهایِ Emacs یک آرگومان عددی را می پذیرند. برای اکثر فرمانها، این
به عنوان یک شمارش تکرار عمل می کند.
نحویِ تحویل تعداد تکرار، با تایپ C-u و سپس اعداد قبل از تایپ فرمان است. اگر
شما یک کلید META (یا ALT) دارید، راه جایگزینی دیگری برای وارد کردن
آرگومان عددی وجود دارد: ارقام را در حالی که کلید META را نگه داشتهاید
تایپ کنید. ما توصیه می کنیم استفاده از C-u را یاد بگیرید زیرا در هر ترمینال
کار می کند. آرگومان عددی "آرگومان پیشوند" نیز نامیده می شود.
زیرا آرگومان را قبل از فرمانی که روی آن اعمال می شود تایپ می کنید.
به عنوان مثال، C-u 8 C-f هشت کاراکتر به جلو حرکت می کند.
>> سعی کنید فقط با یک فرمان، C-n یا C-p با آرگومان عددی برای حرکت مکان نما
از خط نزدیک به این خط استفاده کنید.
اکثر فرمانها از آرگومان عددی به عنوان تعداد تکرار استفاده می کنند،
اما برخی فرمانها از آن به روش دیگری استفاده می کنند.
چندین فرمان که از آن به عنوان یک علامت تعغیر استفاده میشود.
(اما هیچ کدام از فرمانهایِی که تا به حال آموخته اید نیستند.)
وجود یک آرگومان پیشوند، صرف نظر از مقدار آن، فرمان متفاوتی را انجام می دهد.
C-v و M-v استثناهای دیگری هستند. با تحویل آرگومان،
آنها متن را با این تعداد خط به بالا یا پایین اسکرول می کنند نه با یک
صفحه نمایش. برای مثال، C-u 8 C-v هشت خط پیمایش می کند.
>> اکنون C-u 8 C-v را تایپ کنید.
این فرمان باید متن را 8 خط به بالا اسکرول کند. اگر مایل باشید
دوباره به پایین برگردید، می توانید یک آرگومان به M-v بدهید.
اگر از یک سیستم نمایشِ گرافیکی مانند X یا MS-Windows استفاده می کنید،
باید یک ناحیه مستطیل شکل بلند به نام نوار پیمایش در یک طرف پنجره Emacs
وجود داشته باشد. با کلیک کردن بر روی نوار، متن را اسکرول کنید.
اگر ماوس شما دگمه چرخ دارد، می توانید از آن برای اسکرول نیز استفاده کنید.
* اگر EMACS پاسخ نمی دهد.
---------------------------
اگر Emacs به فرمانهایِ شما پاسخ نمی دهد، می توانید با خیال راحت با
تایپ کردن C-g آن را متوقف کنید. می توانید از C-g برای متوقف کردن فرمانی که
انجامش طولانی شده است استفاده کنید.
همچنین میتوانید از C-g برای حذف یک آرگومان عددی یا ابتدای فرمانی که
نمی خواهید آن را تمام کنید استفاده کنید.
>> با عمل C-u 100 یک آرگومان عددی 100 بسازید، سپس C-g وبعد از آن
C-f را تایپ کنید. بااین فرمانها فقط یک حرف به جلو حرکت می کنید، زیرا شما
آرگومان را با C-g لغو کرده اید.
اگر یک <ESC> را اشتباه تایپ کرده اید، می توانید با یک C-g از شر آن خلاص شوید.
* فرمانهایِ غیر فعال
-------------------
برخی از فرمانهایِ Emacs "غیرفعال" هستند تا کاربران مبتدی نتوانند
از آنها به طور تصادفی استفاده کنند.
اگر یکی از فرمانهایِ غیرفعال را تایپ کنید، Emacs پیامی را نمایش می دهد
که فرمان چیست و از شما می پرسد که آیامایل به اجرای آن هستید؟
اگر واقعاً می خواهید فرمان را اجرا کنید، <SPC> (نوار فاصله) را در پاسخ به
سوال تایپ کنید. به طور معمول، اگر نمی خواهید آن را اجرا کنید، به سوال با
"n" پاسخ دهید.
>> عمل C-x C-l (که یک فرمان غیرفعال است) را انجام دهید،
سپس n را در پاسخ به سوال تایپ کنید.
* پنجره ها
----------
با Emacs می تواند چندین "پنجره" داشته باشد که هر کدام متن خاص خود را نشان
می دهد. ما بعداً در مورد نحوه استفاده از چندین پنجره توضیح خواهیم داد. در
حال حاضر می خواهیم برای نحوه حذف پنجره های اضافی و بازگشت به حالت اولیه
ویرایش یک پنجره توضیح دهیم. این عمل آسان است:
C-x 1 یک پنجره (یعنی تمام پنجره های دیگر را حذف کنید).
فرمان C-x 1 پنجره ای تمام صفحه، که حاوی مکان نما است را باز می کند.
این فرمان تمام پنجره های دیگر را حذف میکند.
>> مکان نما را به این خط ببرید و C-u 0 C-l را تایپ کنید.
>> C-h k C-f را تایپ کنید.
ببینید چگونه این پنجره کوچک می شود، در حالی که یک پنجره جدید برای نمایش
اطلا عات در فرمان C-f ظاهر می شود.
>> با تایپ C-x 1 پنجره فهرست اسناد ناپدید می شود.
یک سری کامل از فرمانها با CONTROL-x شروع می شوند. بسیاری از
آنها با ویندوز، فایل ها، بافرها و موارد وابسته ارتباط دارند.
این فرمانها دو، سه یا چهار کاراکتر هستند.
* درج و حذف
------------
اگر می خواهید متن را وارد کنید، فقط متن را تایپ کنید. حروف معمولی،
مانند A، 7، *، و غیره، هنگام تایپ آنها نوشته می شوند. برای انجام نوشتن
خط جدید، <Return> را تایپ کنید (این کلید روی صفحه کلید است
که گاهی اوقات با عنوان "Enter" شناخته می شود).
برای حذف کاراکترِ قبل از مکان نمای فعلی ، <DEL> را تایپ کنید. این کلید روی
صفحه کلید است که معمولاً با برچسب "Backspace"است −− همان که معمولاً در خارج
از Emacs نیز برای حذف آخرین حرفِ نوشته شده استفاده می کنید.
همچنین ممکن است کلید دیگری روی صفحه کلید شما با عنوان <Delete> وجود داشته
باشد، اما این چیزی نیست که ما در Emacs به آن <DEL> می گوییم.
>> اکنون این کار را انجام دهید - چند کاراکتر را تایپ کنید، سپس آنها را حذف
کنید. چند بار <DEL> را تایپ کنید. نگران این فایل نباشید در حال تغییر؛
شما آموزش اصلی را تغییر نمی دهید. این کپی شخصی شما از آن است.
وقتی نوشتن یک خط در متن بیش از حد طولانی می شود، خط بر روی سطر دوم صفحه
"ادامه" می یابد. اگر از یک صفحه نمایش گرافیکی استفاده می کنید برای نشان
دادن جایی که یک خط ادامه یافته است فلش های منحنی کوچکی در فضاهای باریک در
دو طرف ناحیه متن (حاشیههای چپ و راست ) ظاهر می شوند. اگر از ترمینال متنی
استفاده می کنید، خطِ ادامه یافته با علامت معکوس ('\') در سمت راست ستون
صفحه نمایش نشان داده می شود.
>> به نوشتن متن پس از رسیدن به انتهای خط ادامه دهید.
خواهید دید که یک خطِ ادامه ظاهر می شود.
>> از <DEL > برای حذف متن استفاده کنید تا زمانی که نوشته مجدداً روی یک خط
صفحه قرار گیرد. خط ادامه از بین می رود.
شما می توانید حروف خط جدید را مانند هر حرف دیگری حذف کنید. حذف کاراکتر
Newline بین دو خط آنها را با هم ادغام می کند. اگر خط ترکیبی به دست آمده
بیش از حد طولانی باشد که در آن جا نمی شود، عرض صفحه نمایش، با یک خط ادامه،
نمایش داده می شود.
>> مکان نما را به ابتدای یک خط ببرید و <DEL> را تایپ کنید. این فرمان
آن خط را با خط قبلی ادغام می کند.
>> حالا <Return> را تایپ کنید تا خط جدیدی را که حذف کرده اید دوباره وارد کنید.
کلید <Return> ویژه است، زیرا با فشار دادن آن ممکن است بیش از این کار انجام شود.
فقط یک کاراکتر Newline وارد کنید. بسته به متن اطراف،
ممکن است بعد از کاراکتر Newline فضای خالی را وارد کند، به طوری که وقتی
شما شروع به تایپ کردن در خط جدید می کنید، متن با خط قبلی آن ردیف می شود.
ما به این رفتار (که در آن فشار دادن یک
کلید چیزی بیش از وارد کردن کاراکتر مربوطه انجام می دهد) می گوییم "electric".
>> در اینجا مثالی از الکتریکی بودن <Return> آورده شده است.
<Return> را در انتهای این خط تایپ کنید.
باید ببینید که بعد از درج Newline فاصله ها هم درج می شوند،
به طوری که مکان نمابه جای مناسب حرکت می کند.
به یاد داشته باشید که به اکثر فرمانهایِ Emacs می توان تعداد تکرار، داده شود.
این شامل کاراکترهای متنی نیز است. تکرار درج کاراکتر متنی برای چندین بار.
>> اکنون آن را امتحان کنید - C-u 8 * را برای درج ******** تایپ کنید.
شما اکنون ابتدایی ترین راه را برای تایپ با Emacs و تصحیح خطاها یاد گرفته اید.
شما می توانید کلمات یا خطوط را نیز حذف کنید.
در اینجا خلاصه ای از عملیات حذف آمده است:
<DEL> کاراکتر را درست قبل از مکان نما حذف می کنید.
C−d کاراکتر بعدی، بعد از مکان نما را حذف می کنید.
<M-<DEL کلمه را بلافاصله قبل از مکان نما حذف می کنید.
M-d کلمه بعدی را بعد از مکان نما حذف می کنید.
C-k از موقعیت مکان نما تا انتهای خط را حذف می کنید.
M-k از موقعیت مکان نما تا انتهای جمله را حذف میکنِید.
توجه داشته باشید که <DEL> و C-d در مقابل <M-<DEL و M-d موازاتی را گسترش می دهند
که با C-f و M-f شروع شده است (خوب، <DEL> واقعاً یک کاراکتر کنترلی نیست، اما
بیایید نگران این نباشیم). C-k و M-k مانند C-e و M-e هستند، به نوعی، در آن
خطوط با جملات جفت می شوند.
شما همچنین می توانید یک بخش از متن را با یک روش یکسان حذف کنید . به انتهای
یک قسمت حرکت کنید، و سپس <C-<SPC را تایپ کنید. (<SPC> کلید نوار Space
است.) سپس مکان نما را به انتهای دیگر متنی که قصد دارید حذف کنید، ببرید.
با انجام این کار، Emacs متن بین مکان نما وموقعیتی که با <C-<SPC تایپ کرده اید
را مشخص می کند. در نهایت C-w را تایپ کنید. با این عمل متنِ بین دو موقعیت
را حذف میکنید.
>> مکان نما را در ابتدای پاراگراف قبلی به «ش» حرکت دهید.
>> با تایپ <C-<SPC، در پایین صفحه نمایش Emacs باید یک پیام "Mark set" را
نمایش دهد.
>> در خط دوم ازمتن، مکان نما را به «ی» در "یک"، حرکت دهید.
>> C-w را تایپ کنید. با این کار متنی که از «ش» شروع می شود و درست قبل از
«ی» به پایان می رسد را از بین می برید.
تفاوت بین "کشتن" و "حذف" در همان متن این است که "کشته" را می توان دوباره
درج کرد (در هر موقعیتی)، در حالی که چیزهای "حذف شده" را نمی توانید به این
روش دوباره درج کنید (اما می توانید حذف را لغو کنید - در زیر ببینید.) درج
مجدد متن کشته شده "yanking" نامیده می شود. ( به عنوان عقب نشینی یا عقب
کشیدن متنی که برداشته شده است به آن فکرکن.)
به طور کلی، فرمانهایِی که می توانند متن زیادی را حذف کنند، متن را «میکشند».
(آنها به گونه ای تنظیم شده اند که بتوانید متن را باز گردانند)، در حالی که
فرمانهایِی که فقط یک کاراکتر را حذف می کند، یا فقط خطوط و فاصله های خالی را
حذف می کند، حذف را انجام می دهند (بنابراین نمی توانید آن متن را برگرداند).
<DEL> و C-d در ساده ترین حالت، بدون هیچ آرگومان حذف را انجام می دهند.وقتی
آرگومان به آنها داده می شود درعوض مکشند.
>> مکان نما را به ابتدای خطی که خالی نیست حرکت دهید.
سپس C-k را تایپ کنید تا متن روی آن خط حذف شود.
>> بار دوم C-k را تایپ کنید. خواهید دید که Newline را می کشد که بعد از آن
خط است.
توجه داشته باشید که یک C-k محتویات خط را می کشد و یک C-k ثانوی خود خط را
می کشد و همه خطوط دیگر را به سمت بالا حرکت می دهد. C-kبه طور خاص با یک
آرگومان عددی برخورد می کند: این تعداد خطوط و محتویات آنهارا میکشد. این
صرفا یک تکرار نیست. C-u 2 C-k دو خط و Newline آنها را می کشد. دو بار تایپ
کردن C-k این کار را نمی کند.
میتوانید متن کشتهشده را در همان مکانی که در آن قرار داشت، باز گردانید.
یا در جای دیگری از متنی که در حال ویرایش آن هستید، یا حتی در
یک فایل متفاوت میتوانید یک متن را چندین بار باز گردانید. که
چندین کپی از آن می سازد. با مراجعه به کتابچه راهنمایِ Emacs در موارد "کشتن" و
انحرافِ "برش" و "چسباندن" میتوانید اطلاعات بیشتری کسب کنید.
فرمانِ"yank" ,C-y است. آخرین متن کشته شده را در موقعیت مکان نما فعلی دوباره
درج می کند.
>> آن را امتحان کنید. C-y را تایپ کنید تا متن را به عقب برگردانید.
اگر چندین C-k را پشت سر هم انجام دهید، تمام متن کشته شده ذخیره می شود،
به طوری که یک C-y همه خطوط را به یکباره انحراف می دهد.
>> اکنون این کار را انجام دهید، C-k را چندین بار تایپ کنید.
حال برای بازیابی آن متن کشته شده:
>> C-y را تایپ کنید. سپس مکان نما را چند خط پایین ببرید و دوباره C-y را
تایپ کنید اکنون نحوه کپی کردن متن را مشاهده می کنید.
اگر متنی داشته باشید که می خواهید به عقب برگردید، چه کار می کنید چیز دیگری
می کشید؟ C-y کشتن اخیر را از بین می برد. ولی متن قبلی گم نمی شود می توانید
با استفاده از M-y به آن برگردید فرمان بعد از اینکه C-y را برای دریافت
آخرین kill انجام دادید، تایپ کنید M-y آن متن یاک شده را با kill قبلی
جایگزین می کند. تایپ کردن M-y بارها و بارها کشتارهای قبلی و قبلی را به
ارمغان می آورد. وقتی به متن مورد نظر رسیدید، لازم نیست کاری انجام دهید تا
نگهش دارید. فقط به ویرایش خود ادامه دهید و متن انحرافی را رها کنید.
اگر تعداد M-y به دفعات کافی داشته باشید، به نقطه شروع باز می گردید
(بیشترین کشتن اخیر).
>> یک خط را بکشید، در اطراف حرکت کنید، یک خط دیگر را بکشید.
سپس C-y را انجام دهید تا دومین خط کشته شده را برگردانید.
سپس M-y را انجام دهید تا اولین خط کشته شده جایگزین آن شود.
M-y های بیشتری انجام دهید و ببینید چه چیزی به دست می آورید. به انجام
آنها ادامه دهید تا زمانی که خط کشتن دوم برمی گردد، و سپس چند بار دیگر.
اگر دوست دارید، میتوانید امتحان کنیدو به M-y آرگومانهای مثبت و منفی
بدهید.
* لغو
------
اگر تغییری در متن ایجاد کنید و سپس تصمیم به برگرداندن آن تغییر بگیرید،
شما می توانید تغییر را با فرمان (undo) C-/ لغو کنید.
به طور معمول، C-/ تغییرات ایجاد شده توسط یک فرمان را خنثی می کند.
اگر C-/ را چندین بار پشت سر هم، تکرار کنید هر تکرار یک فرمان دیگر
را خنثی می کند.
اما دو استثنا وجود دارد: فرمانهایِی که متن را تغییر نمی دهند
به حساب نمی آیند (این شامل فرمانهایِ حرکت مکان نما و فرمانهایِ اسکرول می شود.)
و کاراکترهای خود درج معمولاً در گروهای، تا ۲۰ تایی رسیدگی می شوند.
(این برای کاهش تعداد C-/ هایی است که باید برای لغو درج متن) تایپ کنید.
>> این خط را با C-k بکشید، سپس /-C را تایپ کنید تا دوباره ظاهر شود. ـ-C یک
فرمان لغو جایگزین است. دقیقاً مانند C-/ کار می کند. در برخی از پایانه
های متنی، تایپ C-/ در واقع _-C را به Emacs ارسال می کند. از طرف
دیگر، C-x u نیز دقیقاً مانند C-/ کار می کند، اما کمی کمتر است و راحتر
تایپ میشود.
یک آرگومان عددی /-C-_ ، C, یا C-x u به عنوان یک تعداد تکرار عمل می کند.
همانطور که می توانید حذف متن را لغو کنید، می توانید کشتن متن رانیز لغو کنید.
تمایز بین کشتن چیزی و حذف آن در مورد C-y تأثیر می گذارد، برای لغو فرقی نمی کند.
* فایل ها
---------
برای اینکه متنی را که ویرایش می کنید دائمی کنید، باید آن را در یک فایل
قرار دهید. در غیر این صورت، با خروج از Emacs از بین می رود. برای اینکه متن
خود را در یک فایل قرار دهید، قبل از وارد کردن فایل باید آن را "پیدا کنید".
(به این "بازدید از فایل" نیز گفته می شود.)
پیدا کردن یک فایل به این معنی است که شما محتویات فایل را در داخل Emacs
می بینید از بسیاری جهات، گویی در حال ویرایش خود فایل هستید. با این حال،
تغییراتی که با استفاده از Emacs ایجاد می کنید دائمی نمی شوند تا زمانی که
فایل را "ذخیره" کنید. این به این دلیل است که شما بتوانید از ذخیره کردن
فایل نیمه کامل اجتناب کنید. حتی هنگامی که فایل را ذخیره کردید Emacs فایل
اصلی را با نام دیگری برایتان نگه میدارد، چون ممکن است بعداً تصمیم بگیرید که
تغییرات شما اشتباه بوده است.
اگر به پایین صفحه نگاه کنید، خطی را خواهید دید که
با حروف "−" شروع می شود و چیزی مانند: "TUTORIAL ---:-" در آن را نشان می دهد.
این قسمت از صفحه نمایش معمولاً نام فایلی که در حال حاضر از آن بازدید می
کنید را نشان میدهد. شما اکنون در حال بازدید از کپی شخصی آموزش Emacs خود که
"TUTORIAL" نام دارد هستید. وقتی شما یک فایل را با Emacs پیدا کردید، نام آن
فایل بطور دقیق در همان نقطه ظاهر می شود.
یک مورد خاص در مورد فرمان برای یافتن یک فایل این است که شما باید بگویید چه
نام فایلی را می خواهید. ما می گوییم فرمان "خواندن یک ارگومان"
(در این مورد، آرگومان نام فایل است.)بعد از تایپ فرمان.
با C-x C-f یک فایل را پیدا کنید. Emacs از شما می خواهد که نام فایل را تایپ
کنید. نام فایلی که تایپ می کنید در خط پایین صفحه نمایش ظاهر می شود. خط
پایین زمانی که برای این نوع ورودی استفاده می شود، «مینی بافر» نامیده می
شود. شما می توانید ازفرمانهایِ ویرایش معمولی Emacs برای ویرایش نام فایل
استفاده کنید.
در حالی که نام فایل (یا هر ورودی مینی بافر دیگر) را وارد می کنید،
می توانید با C-g فرمان را لغو کنید.
>> فرمانِ C-x C-f را تایپ کنید، سپس C-g را تایپ کنید. این فرمانِ مینی بافر
را لغو می کند، و همچنین فرمان C-x C-f را که مینی بافر از آن استفاده می
کرد را لغو می کند، بنابراین شما هیچ فایلی را پیدا نمی کنید.
وقتی نام فایل را وارد کردید، <Return> را تایپ کنید تا
آن را خاتمه دهید. مینی بافر ناپدید می شود و فرمان C-x C-f
برای یافتن فایلی که انتخاب کرده اید اعمال میشود.
محتویات فایل اکنون روی صفحه ظاهر می شود و می توانید آن را ویرایش کنید.
هنگامی که می خواهید تغییرات خود را دائمی کنید، فرمان
C-x C-s فایل را ذخیره کنید
این فرمان متن را در فایل درون Emacs کپی می کند. اولین باری که این
کار را انجام دهید، Emacs نام فایل اصلی را به نام جدید تغییر می دهد بنابر این
گم نمی شود. نام جدید با افزودن "~" به انتهای نام فایل اصلی ساخته می شود.
هنگامی که ذخیره به پایان رسید، Emacs نام فایل نوشته شده را نمایش می دهد.
>> <C-x C-s TUTORIAL <Return را تایپ کنید.
این فرمان باید این آموزش را در فایلی به نام TUTORIAL ذخیره کند و
و " Wrote...TUTORIAL " را در پایین صفحه نشان دهد.
می توانید یک فایل موجود را پیدا کنید، آن را مشاهده یا ویرایش کنید. شما
همچنین می توانید فایلی را پیدا کنید که قبلاً وجود ندارد. این راه ایجاد یک
فایل با Emacs است: فایل را پیدا کنید که خالی شروع می شود و سپس شروع به درج
متن در آن کنید، وقتی شما درخواست ذخیره فایل را می کنید، Emacs در واقع فایل
را با متنی که شما درج کرده اید ایجاد می کند. از آن به بعد، می توانید خود
را در حال ویرایش فایل موجود بدانید.
* بافرها
---------
اگر فایل دومی را با C-x C-f پیدا کردید، فایل اول داخل Emacs باقی می ماند.
برای برگشت مجدد به آن شما میتوانید با C-x C-f ، دو باره آن را پیدا کنید.
با این روش می توانید تعداد زیادی فایل را در داخل Emacs باز کنید.
ایمکس متن هر فایل را در یک مکان به نام "بافر" ذخیره می کند.
پیدا کردن یک فایل، یک بافر جدید در Emacs ایجاد می کند. برای دیدن لیستی از
بافرهایی که در حال حاضر وجود دارند، تایپ کنید
C-x C-b لیست بافرها
>> اکنون C-x C-b را امتحان کنید.
ببینید که چگونه هر بافر یک نام دارد و همچنین ممکن است نام فایلی که محتویات
آن را نگه می دارد داشته باشد. هر متنی که در پنجره Emacs می بینید همیشه
بخشی از یک بافر است.
>> با تایپ C-x 1 میتوانید از شر لیست بافر خلاص شوید.
هنگامی که چندین بافر دارید، در هر زمان تنها یکی از آنها "جاری" است. آن
بافر همان بافری است که شما ویرایش می کنید. اگر می خواهید بافر دیگری را
ویرایش کنید، باید به آن "سوئیچ" کنید. اگر می خواهید به یک بافر سوئیچ کنید
که مربوط به یک فایل است، می توانید با مراجعه مجدد به آن فایل با C-x C-f
این کار را انجام دهید. اما یک راه ساده تر وجود دارد: از فرمان C-x b
استفاده کنید. در آن فرمان باید نام بافر را تایپ کنید.
>> با تایپ C-x C-f foo <Return> فایلی به نام "foo" ایجاد کنید.
سپس C-x b TUTORIAL <Return> را تایپ کنید تا به این آموزش بازگردید.
اغلب اوقات، نام بافر با نام فایل یکی است(بدون قسمت پوشه فایل). به هر حال،
این همیشه درست نیست. لیست بافری که با C-x C-b ایجاد می کنید، نام هر دو
بافر و نام فایل هر بافر را به شما نشان می دهد.
برخی از بافرها با فایل ها مطابقت ندارند. بافری با نام "*Buffer List*" که
حاوی لیست بافری است که شما آن را با C-x C-b ساخته اید هیچ فایلی ندارد. این
TUTORIAL buffer که در ابتدا انجام شد فایلی ندارد، اما اکنون دارد، زیرا
قبلا شما C-x C-s را تایپ کردید و آن را در یک فایل ذخیره کرده اید.
بافر ی با نام "*Messages*" نیز با هیچ فایلی مطابقت ندارد. این بافر حاوی
پیام هایی است که در در طول جلسه Emacs شما، در خط پایین ظاهر شده اند.
>> حالا < C-x b *Messages* <Return را تایپ کنید تا به بافر پیام ها نگاه کنید.
سپس < C-x b TUTORIAL <Return را تایپ کنید تا به این آموزش بازگردید.
اگر در متن یک فایل تغییراتی ایجاد کردید و سپس فایل دیگری را پیدا کنید، این
فایل اول را ذخیره نمی کند. آن تغییرات در Emacs در بافر آن فایل باقی می ماند.
ایجاد یا ویرایش فایل دوم بافر، هیچ تاثیری روی بافر فایل اول ندارد.
این بسیار مفید است، اما این بدان معناست که شما به یک راه راحت برای ذخیره
بافر فایل اول نیاز دارید. نیاز به برگشت به بافِر اول برای ذخیره آن توسط
C-x C-s کمی دردسرامیز است. بنابراین فرمانِ زیر را داریم.
C-x s برخی از بافرها را ذخیره کنید
فرمان C-x s در مورد هر بافری که حاوی تغییراتی که ذخیرِه
نشده است از شما می پرسد.
>> یک خط متن وارد کنید، سپس C-x s را تایپ کنید.
باید از شما بپرسد که آیا بافر با نام TUTORIAL را ذخیره می کنید یا خیر.
با تایپ "y" به سوال پاسخ مثبت دهید.
* گسترش مجموعه فرمانها
---------------------------
فرمانهایِ Emacs بسیار بسیار بیشتر است از آنچه که امکان قراردادن همه آنها
با کاراکترها ی کنترل و متا باشد.
Emacs با فرمان( X (eXtend این کار را میسر میکند.
دو حالت برای این وجود دارد:
C-x کاراکتر برای eXtend. بعد از یک کاراکتر.
M-x فرمانی با نام eXtend. بعد از یک نام طولانی.
اینها فرمانهایی هستند که عموما مفید هستند، اما کمتر ازفرمانهایی که قبلاً در
مورد آنها آموخته اید استفاده می شوند. شما قبلاً چند مورد از انها را
دیدهاید: برای مثال فرمان فایل C-x C-f را برای یافتن و C-x C-s را برای
ذخیره کردن در نظر بگیرید. مثال دیگر، فرمان C-x C-c فرمان پایان دادن به جلسه
Emacs است. (نگران از دست دادن تغییراتی که ایجاد کرده اید نباشید C-x C-c
پیشنهاد می کند هر فایل تغییر یافته را ذخیره کنید قبل از اتمام جلسه Emacs.)
اگر از صفحه نمایش گرافیکی استفاده می کنید، نیازی به فرمان خاصی برای انتقال
از Emacs به برنامه دیگر ندارید. شما می توانید این کار رابا ماوس یا با
فرمانهای مدیر پنجره انجام دهید. با این حال،اگر شمااز ترمینال متنی که می
تواند تنها یک برنامه را در یک زمان نشان دهد، استفاده می کنیدباید Emacs را
"تعلیق" کنید تا به هر برنامه دیگری بروید.
فرمان C-z خروج *موقت*--- از Emacs است تا بتوانید به همان جلسه Emacs
برگردید. هنگامی که Emacs روی یک ترمینال متنی اجرا می شود، C-z، Emacs را به
حالت تعلیق در می آورد. یعنی به shell برمی گردد اما کار Emacs را از بین نمی
برد. در رایج ترین shell ها، شما می تواند Emacs را با فرمان "fg" یا با
"%emacs" از سر بگیرد.
زمان استفاده از C-x C-c زمانی است که می خواهید از سیستم خارج شوید. همچنین
برای خروج از Emacs و ویرایش سریع استفاده می شود، همانند یک ابزار مدیریت
ایمیل.
فرمانهای C-x زیادی وجود دارد. در اینجا لیستی از مواردی که یاد گرفته اید است:
C-x C-f فایل را پیدا کنید
C-x C-s ذخیره فایل
C-x s برخی از بافرها را ذخیره کنید
C-x C-b لیست بافرها
C-x b سوئیچ بافر
C-x C-c از Emacs خارج شوید
C-x 1 تمام پنجره ها را به جز یک حذف کنید
C-x u لغو فرمان
فرمانهایی با نام eXtended فرمانهایی هستند که به طور مکرر کمتر مورد استفاده
قرار می گیرند یا فرمانهایی که فقط در حالت های خاصی استفاده می شوند.
به عنوان یک مثال فرمان replace-string است که یک رشته حروف را جایگزین رشته
حروف دیگری در بافر می کند. وقتی M-x را تایپ میکنید، Emacs درپایین صفحه با
نشان دادنِ M-x از شما میخواهد نام فرمان را تایپ کنید؛ در اینجا یعنی
"replace-string". فقط " <repl s<TAB" را تایپ کنید و Emacs نام فرمان را
تکمیل می کند. (<TAB> کلید Tab است که معمولاً جایگاهش بالای کلید CapsLock یا
Shift نزدیک لبه سمت چپ کیبورد است.) نام کامل شده فرمان را با <Return>
ارسال کنید.
فرمان replace-string به دو آرگومان نیاز دارد -- رشته جایگزین شونده
و رشته ای که جایگزین آن شود.شما باید هر آرگومان رابا <Return> پایان دهید.
>> مکان نما را به خط خالی دو خط زیر این یکی ببرید.
سپس < M-x repl s<Return>changed<Return>altered<Return را تایپ کنید.
توجه کنید که این خط چگونه تغییر کرده است: شما کلمه "changed" را با"altered"
جایگزین کرده اید. هر جایی که بعد از موقعیت اولیه مکان نما رخ داد.
* ذخیره خودکار
---------------
وقتی تغییراتی در فایلی ایجاد کرده اید، اما هنوز آنها را ذخیره نکرده اید،
اگر کامپیوتر شما خراب شود، ممکن است از بین بروند. برای محافظت شما از آن،
Emacs به صورت دوره ای برای هر فایلی که شما در حال ویرایش آن هستید یک فایل
"ذخیره خودکار" می نویسد. نام فایل ذخیره خودکار دارای یک # در ابتدا و در
پایان است؛ به عنوان مثال، اگر فایل شما "hello.c" نام دارد، ذخیره خودکار نام
فایل "#hello.c#" است.وقتی فایل را به روش عادی ذخیره می کنید، Emacs فایل
ذخیره خودکار خود را حذف می کند.
اگر رایانه خراب شد، میتوانید ویرایش ذخیرهشده خودکار خود را توسط
یافتن فایل به طور معمول (فایلی که در حال ویرایش آن بودید، نه ذخیره فایل خودکار)
و سپس تایپ M-x recover-this-file <Return> بازیابی کنید . هنگامی که
تأیید آن را می خواهد،< yes<Return را تایپ کنید تابه ذخیره خودکار داده ها
ادامه دهید و آن را بازیابی کنید.
* منطقه اکو
-----------
اگر Emacs ببیند که به آرامی فرمانهای چند کاراکتری را تایپ می کنید، آن را
انجام می دهد آنها را در پایین صفحه در ناحیه ای به نام "منطقه اکو" به شما
نشان می دهد. ناحیه اکو حاوی خط پایین صفحه نمایش است.
* خط حالت ( MODE LINE)
-----------------------
خط بلافاصله بالای ناحیه اکو "mode line" نامیده می شود.
خط حالت چیزی شبیه به این می گوید:
TUTORIAL 63% L749 (Fundamental) −**:−
این خط، اطلاعات مفیدی در مورد وضعیت Emacs
و متنی که در حال ویرایش آن هستید می دهد.
شما از قبل می دانید که نام فایل به چه معناست -- این فایلی است که شما دارید.
NN% موقعیت فعلی شما را در متن بافر نشان می دهد. این
به این معنی است که NN درصد از بافر بالای صفحه نمایش است.
اگر بالای بافر روی صفحه باشد، به آن "Top" بجای "0٪" می گوید.
اگر پایین بافر روی صفحه باشد، "Bot" می گوید.
اگر به بافری نگاه می کنید که آنقدر کوچک است که همه آن روی صفحه جا می شود,
خط مد می گوید, "All".
حرف L و ارقام، موقعیت را به طریق دیگری نشان می دهند: آنها شماره خط فعلیِ
نقطه را نشان می دهند.
ستاره های نزدیک به جلو به این معنی است که شما تغییراتی در متن ایجاد کرده
اید. درست پس از بازدید یا ذخیره یک فایل، آن قسمت از خط حالت، با خطوط تیره
و بدون ستاره نمایش داده می شود.
آن بخشی از خط حالت که در داخل پرانتز است گویایِ
حالتهای ویرایشی فعلی هستند. حالتی که الان استفاده می کنید Fundamental است.
این نمونه ای از "مد ماژر (major mode)" است.
ایمکس حالت های اصلی مختلف فراوان دارد. برخی از آنها برای
ویرایش زبان های برنامه ریزی مختلف مثل Lisp هستند و برخی برای
ویرایش متن هستند، و غیره.
در هر زمان یک و تنها یک مد ماژر فعال است، و نام آن را همیشه می توان در خط
حالت، دقیقاً در جایی که اکنون "Fundamental" است، یافت.
هر مد ماژر باعث می شود که برخی از فرمانها متفاوت عمل کنند. مثلا، فرمانهایی
برای ایجاد comment در یک برنامه وجود دارد و از آنجایی که هر کدام از
زبانهای برنامه نویسی ایده متفاوتی در مورد آنچه که یک comment باید باشد
دارند هر مد ماژر باید comment رابه طور متفاوتی درج کند. هر یک از مدهای
ماژر نام یک فرمان توسعه یافته است، که چگونه می توانید به آن حالت تغییر
دهید. برای مثال، M-x fundamental-mode فرمانی است که به حالت اساسی بروید.
اگر قرار است متنی به زبان انسانی مانند: این فایل را ویرایش کنید، شما
احتمالا باید از حالت متن استفاده کنید.
>> تایپ کنید < M-x text-mode <Return
نگران نباشید، هیچ یک از فرمانهایِ Emacs که یاد گرفته اید تغییر نمی کند اما
می توانید مشاهده کنید که M-f و M-b اکنون آپاستروف ها به عنوان بخشی از
کلمات رفتارمی کنند.قبلاً در حالت بنیادی، M-f و M-b مانند آپاستروف ها به عنوان
جداکننده کلمات رفتار می کردند.
اکثر فرمانها در هر مد ماژر "همان کار" را انجام می دهند، امادرمواردی مانند
مثال بالا کمی متفاوت عمل می کنند.
برای مشاهده اطلاعات امدادی در مد ماژر فعلی خود، C-h m را تایپ کنید.
>> مکان نما را به خط زیر این خط ببرید.
>> C-l C-l را تایپ کنید تا این خط به بالای صفحه نمایش داده شود.
>> C-h m را تایپ کنید تا ببینید مدِ Text با مدِ Fundamental چه تفاوتی دارد.
>> C-x 1 را تایپ کنید تا اطلاعات امدادی را از روی صفحه حذف کنید.
مد ماژور را ماژر می نامند زیرا مد ماینور نیز وجود دارد. مدهای ماینور
جایگزینی برای مدهای ماژور نیستند، فقط آنها را تغیر و تبدیل می کنند. هر مد
ماینور می تواند خودش مستقلانه روشن یا خاموش گردد، مستقل ازتمام مدهای
ماینور دیگر،و مستقل از مد ماژر فعلی شما. بنابراین می توانید از هیچ مد
ماینور، یک مد ماینور و یاترکیبی از چند مد ماینور استفاده کنید.
یک مد ماینور که بسیار مفید است، به خصوص برای ویرایش متن به زبان انسانی
(human-language)، مد ماینورِ خود−پر کن (Auto Fill mode) است. وقتی این مد
روشن است, و شما با نوشتن متن، خطی بوجود می آورد که خیلی طولانی است،Emacs
خط بین کلمات را به طور خودکار می شکند.
شما می توانید با انجام <M-x auto-fill-mode <Return, مد ماینور خودکار را
روشن کنید. وقتی مد روشن است، می توانید با انجام < M-x auto-fill-mode
<Return دوباره آن را خاموش کنید. اگر مد خاموش باشد، با این فرمان روشن می
شود واگر مد روشن است، این فرمان آن را خاموش می کند. ما به این فرمان "تغییر
مد" می گوییم.
>>اکنون <M-x auto-fill-mode <Return را تایپ کنید.
سپس یک خط "asdf" را وارد کنید،آن را تکرار کنید تا زمانی که ببینید که به
دو خط تقسیم شده است. شماباید فاصله (spaces) بین آنها بوجود آورید، زیرا
Auto Fill خطوط را فقط درفواصل می شکند.
حاشیه معمولاً از 70 کاراکتر تشکیل می شود، اما شما می توانید آن را با فرمان
C-x f تغییر دهید. شما باید تنظیمات حاشیه ای را که می خواهید بدهید،همراه با
استدلال عددی باشد.
> C-x f را با آرگومان 20 تایپ کنید. (C-u 2 0 C-x f).
سپس مقداری متن را تایپ کنید و سپس ببینید Emacs، خطوط 20 کاراکتری را با
آن پر می کنید. سپس با استفاده از C-x f، دوباره حاشیه را به 70
برگردانید.
اگر در وسط پاراگراف تغییراتی ایجاد کردید، حالت پر کردن خودکار دوباره آن را
برای شماپر نمی کند. برای پر کردن مجدد پاراگراف، M-q (META-q) رابا مکان نما
در داخل آن پاراگراف تایپ کنید.
>> مکان نما را به پاراگراف قبلی ببرید و M-q را تایپ کنید.
* جستجوکردن
-----------
با Emacs می توانید رشته ها را جستجو کند («رشته:string » گروهی از
کاراکترهای به هم پیوسته است). جستجو به جلو در متن یا به عقب در متن.
جستجوی برای یک string یک فرمان حرکت مکان نما است. آن مکان نما را به مکان
بعدی که آن رشته ظاهر می شود حرکت می دهد.
فرمان جستجوی Emacs "افزایشی" است. این بدان معنی است که
جستجو زمانی اتفاق می افتد که رشته مورد نظر را برای جستجو تایپ می کنید.
فرمان شروع جستجو C-s برای جستجوی جلو و C-r برای جستجوی معکوس است.
اما صبر کنید! اکنون آنها را امتحان نکنید.
وقتی C-s را تایپ می کنید متوجه خواهید شد که رشته "I-search" به صورت یک
اعلان در ناحیه اکو ظاهر می شود. این به شما می گوید که Emacs مشغول کاری است
که یک جستجوی افزایشی نامیده می شود و در آن حالت منتظر شماست تامورد جستجو
را تایپ کنید. <Return> یک جستجو را خاتمه می دهد.
>> اکنون C-s را برای شروع جستجو تایپ کنید
کلمه"مکان نما" را به آرامی، با تک تک حروف تایپ کنید، پس از تایپ
هر کاراکتر مکث کنید, تا متوجه آنچه برای مکان نما اتفاق می افتد شوید.
اکنون یک بار "مکان نما" را جستجو کرده اید.
>> دوباره تایپ کنید C-s، برای جستجوی رخداد بعدی "مکان نما".
>> اکنون <DEL> را چهار بار تایپ کنید و ببینید مکان نما چگونه حرکت می کند.
>> برای پایان یافتن جستجو، <Return> را تایپ کنید.
دیدید چه اتفاقی افتاد؟ Emacs، در یک جستجوی افزایشی، سعی می کند
به رخداد رشته ای که تاکنون تایپ کرده اید بروید.
برای رفتن به رخداد بعدی "مکان نما"، فقط C-s را دوباره تایپ کنید. اگر چنین
رخدادی وجود ندارد، Emacs بوق میزند و به شما میگوید جستجو در حال حاضر
"شکست" خرده است. C-g نیز جستجو را خاتمه می دهد.
اگر در وسط یک جستجوی افزایشی هستید و <DEL> را تایپ کنید،
جستجو، "عقب نشینی" به مکان قبلی میکند. اگر برای پیشرفت جستجوی رشته ای بعدی،
بعد از اینکه C-s را تایپ کردید <DEL> را تایپ کنید،
<DEL> مکان نما را به یک اتفاق قبلی برمی گرداند. اگر
هیچ مورد قبلی در رشته جستجو وجود نداشته باشد، <DEL> آخرین کاراکتر را
در رشته جستجوپاک می کند.
برای مثال، فرض کنید "م" را تایپ کرده اید
برای اولین بار "م" را جستجو کنید. حالا اگر "ک" را تایپ کنید،
مکان نما به اولین رخداد "مک" حرکت می کند. حالا <DEL> را تایپ کنید.
این "ک" را از رشته جستجو پاک می کند و مکان نما به به اولین وقوع "م" در
رشته جستجو به عقب برمی گردد.
اگر در وسط یک جستجو هستید و کاراکتر کنترل یا متا را تایپ کنید،
شخصیت (به استثنای معدود کاراکتر هایی که در یک جستجو خاص هستند،
مانند C-s و C-r)، جستجو خاتمه می یابد.
با C-s جستجو را بعد از موقعیت مکان نمای فعلی شروع می کنید و هر رخدادی از رشته
بعد از مکان نما جستجو می شود. اگر می خواهید چیزی در متن قبل از مکان نما جستجو
شود، به جای آن، C-r را تایپ کنید. همه چیزهایی که ما در مورد C-s
گفته ایم برای C-r نیز صدق می کند، با این تفاوت که جهت جستجو معکوس می شود.
* پنجره های چندگانه
--------------------
یکی از ویژگی های خوب Emacs این است که می توانید در یک زمان بیشتر ازیک
پنجره روی صفحه نمایش نشان دهید. (توجه داشته باشید که Emacs ازاصطلاح
"frames"-- که در بخش بعدی توضیح داده شده است -- برای برخی کاربرد دیگر
"windows" گفته می شود. کتابچه راهنمای Emacs حاوی واژه نامه ای ازشرایط
استفاده Emacs.)
>> مکان نما را به این خط ببرید و C-l C-l را تایپ کنید.
>> حالا C-x 2 را تایپ کنید که صفحه را به دو پنجره تقسیم می کند. هر دو
پنجره این آموزش را نمایش می دهند. مکان نمای ویرایش در پنجره بالا باقی
می ماند.
>> تایپ C-M-v برای رفتن به پایین پنجره .
(اگر کلید META واقعی ندارید، <ESC> C-v را تایپ کنید.)
>> تایپ کنید C-x o ("o" برای "other"دیگر ) برای حرکت مکان نما به پنجره پایین.
>> از C-v و M-v در پنجره پایین برای پیمایش استفاده کنید.
به خواندن این فرمانهای عمل، در پنجره بالا ادامه دهید.
>> دوباره C-x o را تایپ کنید تا مکان نما را به پنجره بالا برگردانید.
مکان نما در پنجره بالا دقیقاً همان جایی است که قبلا بود.
می توانید از C-x o برای جابجایی بین پنجره ها استفاده کنید. "پنجره انتخاب
شده" جایی که بیشترین ویرایش در آن صورت می گیرد، همان پنجره ای است که مکان
نما برجسته است، و زمانی که تایپ نمی کنید چشمک می زند. پنجره های دیگر
موقعیت مکان نمای خود را دارند. اگر Emacs را به صورت گرافیکی اجرا می کنید،
آن مکان نماها به صورت کادرهای توخالی بدون چشمکزن ترسیم میشوند.
فرمان C-M-v هنگامی که متن را در یک پنجره ویرایش می کنید و از پنجره دیگر
فقط برای مرجع استفاده میکند، بدون ترک پنجره انتخاب شده، بسیار مفید است.
می توانید متن را باC-M-v در پنجره دیگر پیمایش کنید.
مثال C-M-v نمونه ای از یک کاراکتر CONTROL-META است. اگر یک کلید META
(Alt یا) دارید با نگه داشتن هر دو کلید CONTRO و META و تایپ v,
میتوانید C-M-v را تایپ کنید. مهم نیست که CONTROL اول باشد یا META.
زیرا هر دوی این کلیدها با تغییر کاراکترهای شما عمل می کنند.
اگر کلید META ندارید و به جای آن از <ESC> استفاده می کنید، مهم است که
ترتیب را انجام دهید: باید <ESC> و سپس CONTROL-v را تایپ کنید، زیرا
CONTROL-<ESC> v کار نخواهد کرد. این به این دلیل است که <ESC> در نوع خود
یک کاراکتر است، نه یک کلید اصلاح کننده.
>> با تایپ C-x 1 (در پنجره بالا) از شر پنجره پایین خلاص شوید.
(اگر C-x 1 را در پنجره پایین تایپ کرده بودید، پنجره بالا خلاص می شد. این
فرمان را به صورت «فقط یک پنجره را -- هم آنکه هم اکنون در آن هستم نگه دار»
در نظر بگیرید.
شما مجبور نیستید یک بافر را در هر دو پنجره نمایش دهید. اگر شما از C-x C-f
برای پیدا کردن فایل در یک پنجره استفاده کنید، در پنجره دیگر تغییر ایجاد
نمی شود. شما می توانید یک فایل را در هر پنجره به طور مستقل پیدا کنید.
در اینجا روش دیگری برای استفاده از دو پنجره برای نمایش دو چیز مختلف وجود دارد:
>> فرمان C-x 4 C-f و سپس نام یکی از فایل های خود را تایپ کنید.
با <Return> خاتمه دهید. ببینید فایل مشخص شده در پایین ظاهر می شود و
پنجره مکان نما نیز به آنجا می رود.
>> برای بازگشت به پنجره بالا C-x o و برای حذف پنجره پایین C-x 1 را تایپ کنید.
*فریم های چندگانه (MULTIPLE FRAMES)
----------------------------------
با Emacs همچنین می توانید چندین "فریم" ایجاد کنید. یک فریم، مجموعه ای
ازپنجره ها است که فهرست آن: اسکرول بارها، اکو بار، و غیره است. در
نمایشگرهای گرافیکی، چیزی که Emacs آن را "فریم" می نامد همان چیزی است که
اکثر برنامه های کاربردی دیگر "پنجره" می نامند. فریم های گرافیکی متعدد را
می توان همزمان بر روی صفحه نمایش نشان داد. در یک ترمینال متنی فقط یک فریم
را می توان در یک زمان نشان داد.
>> C-x 5 2 را تایپ کنید.
مشاهده می کنید که یک فریم جدید روی صفحه نمایش شما ظاهر می شود.
شما می توانید هر کاری را که در فریم اصلی انجام داده اید در فریم جدید
انجام دهید. هیچ چیز خاصی در فریم اول وجود ندارد.
>> C-x 5 0 را تایپ کنید.
این فریم انتخاب شده را حذف می کند.
شما همچنین می توانید یک فریم را با استفاده از روش معمولی ارائه شده توسط
سیستم گرافیکی (اغلب با کلیک روی دکمه ای با نشان "X" در گوشه بالای فریم)بردارید.
اگر آخرین فریمِ کار Emacs را به این ترتیب حذف کنید،از Emacs خارج می شود.
* سطوح ویرایش بازگشتی
----------------------
گاهی اوقات وارد چیزی می شوید که«سطوح ویرایش بازگشتی» نامیده می شود.
این با کروشه های مربع در خط حالت اطراف پرانتزهای نام مد ماژر
نشان داده می شود. برای مثال، ممکن است [(اساسی)] را به جای (اساسی) ببینید.
برای خارج شدن از سطح ویرایش بازگشتی، <ESC> <ESC> <ESC> را تایپ کنید.
این یک فرمان همه منظوره "برو بیرون" است. همچنین می توانید از آن برای
حذف پنجره های اضافی و خارج شدن از مینی بافر استفاده کنید.
>> تایپ M-x، تا وارد یک مینی بافر شوید. سپس برای بیرون رفتن
<ESC> <ESC> <ESC> را تایپ کنید.
شما نمی توانید از C-g برای خارج شدن از یک سطح ویرایش بازگشتی استفاده کنید.
زیرا C-g برای لغو فرمانها و آرگومان ها در داخل سطح ویرایش بازگشتی
استفاده می شود.
* دریافت کمک بیشتر
-------------------
در این آموزش سعی شده است اطلاعات کافی برای شروع به استفاده از Emacs در
اختیار شما قرار گیرد. اطلاعات موجود در مورد Emacs آنقدر زیاد است که توضیح