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
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
|
Einführung in Emacs. Siehe Dateiende für Vervielfältigungsbedingungen.
Emacs-Befehle beinhalten im allgemeinen die CONTROL-Taste (manchmal
auch als CTRL, CTL oder STRG beschriftet) sowie die META-Taste (auch
EDIT oder ALT genannt). Folgende Abkürzungen werden verwendet:
C-<Zeichen> bedeutet, dass die CONTROL-Taste gedrückt sein muss,
während man das Zeichen <Zeichen> eingibt. Beispiel:
C-f Halten Sie die CONTROL-Taste gedrückt und drücken
Sie dann die f-Taste.
M-<Zeichen> bedeutet, dass die META-Taste gedrückt sein muss,
während man das Zeichen <Zeichen> eingibt. Statt dessen
kann man auch die ESC-Taste und anschließend <Zeichen>
drücken (hintereinander, nicht gleichzeitig). Beispiel:
M-f Halten Sie die META-Taste gedrückt und geben
Sie den Buchstaben (klein) f ein.
»>>« am linken Rand ist ein Hinweis, einen Befehl auszuprobieren:
<<Blank lines inserted here by startup of help-with-tutorial>>
[Leerzeilen befinden sich hier aus didaktischen Gründen. Fortsetzung unten.]
>> Drücken Sie C-v, um zur nächsten Bildschirmseite vorzublättern.
Ab jetzt sollten Sie das stets tun, wenn Sie eine Seite fertig
gelesen haben.
Beachten Sie bitte, dass beim Blättern die untersten zwei Zeilen der
vorigen Bildschirmseite als die zwei obersten Zeilen der neuen Seite
erscheinen, um eine gewisse Kontinuität während des Lesens zu
ermöglichen.
Wichtig: Sie können Emacs mit der Befehlsfolge C-x C-c beenden.
Im weiteren wird die ESC-Taste mit <ESC> bezeichnet.
[Falls die deutschen Umlaute nicht korrekt auf dem Bildschirm
erscheinen, lesen Sie bitte den Abschnitt »MULE« kurz vor Ende dieser
Einführung.]
Zunächst müssen Sie wissen, wie man sich innerhalb eines Dokuments
bewegen kann. Wie man eine Bildschirmseite vorwärts blättert, wissen
Sie schon (C-v). Mit M-v blättern Sie eine Bildschirmseite zurück
(halten Sie die META-Taste gedrückt und geben Sie v ein, oder drücken
Sie zuerst <ESC> und anschließend v).
>> Probieren Sie einige Male M-v und C-v aus.
[Auf den meisten Tastaturen bewirkt die PgUp-Taste (»page up«, auch
mit »Bild« und einem Aufwärtspfeil beschriftet) dasselbe wie M-v bzw.
die PgDn-Taste (»page down«, »Bild« mit Abwärtspfeil) dasselbe wie
C-v.]
* ZUSAMMENFASSUNG
-----------------
Die folgenden Befehle sind nützlich, um Text bildschirmweise zu
betrachten:
C-v eine Seite vorwärts blättern
M-v eine Seite zurück blättern
C-l lösche den Bildschirm und stelle den ganzen Text
erneut dar, wobei der Text rund um den Cursor zur
Mitte des Bildschirms bewegt wird.
(»l« ist der Buchstabe »klein L«, nicht die Ziffer 1.)
>> Finden Sie den Cursor und merken sich den Text in dessen Umgebung.
Drücken Sie C-l. Der Cursor ist jetzt ungefähr in der (vertikalen)
Bildschirmmitte, und er hat seine Position relativ zum Text nicht
geändert. Wiederholtes Drücken von C-l bewegt den Text zum oberen
Bildschirmrand, dann zum unteren, und dann wieder zur Mitte.
* KONTROLLE DES CURSORS
-----------------------
Text bildschirmweise anzuschauen ist sicherlich praktisch, aber wie
kommt man zu einer bestimmten Position innerhalb des gerade
dargestellten Textes?
Es gibt verschiedene Möglichkeiten. Die Grundbefehle sind C-p, C-b,
C-f und C-n. Dem folgenden Diagramm können Sie entnehmen, welcher
Befehl den Cursor wohin bewegt:
vorige Zeile, C-p
:
:
zurück, C-b .... momentane Cursor-Position .... vorwärts, C-f
:
:
nächste Zeile, C-n
[Die Buchstaben p, b, f und n stehen für die englischen Wörter
»previous«, »backward«, »forward« und »next«.]
>> Bewegen Sie den Cursor zur Zeile in der Mitte des Diagramms mittels
C-n oder C-p. Geben Sie dann C-l ein, und das ganze Diagramm ist
zentriert auf dem Bildschirm.
Normalerweise sind die vier Pfeiltasten mit den Cursor-Grundbefehlen
belegt. Falls nicht, sollten Sie Ihre Terminalkonfiguration
überprüfen.
Es ist von großer Wichtigkeit, sich mit obigen Cursor-Befehlen
vertraut zu machen, da man sie ständig braucht (besonders wenn man mit
Terminal-Emulationen arbeitet, welche die Pfeiltasten nicht
unterstützen).
>> Drücken Sie ein paarmal C-n, um den Cursor zu dieser Zeile zu
bewegen.
>> Bewegen Sie den Cursor vorwärts mittels C-f und nach oben mit C-p.
Beobachten Sie, was C-p tut, wenn der Cursor sich in der
Zeilenmitte befindet.
Jede Textzeile endet mit einem Zeilenvorschub-Zeichen (»newline«), das
sie von der folgenden Zeile trennt. Die letzte Zeile in einer Datei
hat normalerweise ebenfalls einen Zeilenvorschub am Schluss, Emacs
benötigt ihn aber nicht.
>> Probieren Sie C-b am Anfang einer Zeile. Der Cursor sollte zum
Ende der vorigen Zeile springen: C-b überspringt
Zeilenvorschub-Zeichen.
C-f überspringt Zeilenvorschub-Zeichen analog zu C-b.
>> Drücken Sie noch ein paarmal C-b, um ein Gefühl für den Cursor zu
bekommen. Bewegen sie anschließend den Cursor mittels C-f zum Ende
der Zeile. Geben Sie jetzt noch einmal C-f ein, um zur nächsten
Zeile zu springen.
>> Falls die Pfeiltasten funktionieren, können Sie mit diesen das
gleiche probieren und üben.
Wenn Sie den Cursor entweder nach oben oder nach unten über den
Bildschirmrand hinaus bewegen wollen, dann wird statt dessen Text in
den Bildschirm hineingeschoben. Dies nennt man »scrolling«. Auf
diese Weise verhindert Emacs, dass der Cursor je den sichtbaren
Bereich verlässt.
>> Versuchen Sie den Cursor über den unteren Bildschirmrand hinaus zu
bewegen und beobachten Sie, was geschieht.
Wenn zeichenweise Cursorbewegung zu langsam ist, kann man den Cursor
wortweise bewegen. M-f (META-f) bewegt den Cursor ein Wort vor, und
M-b ein Wort zurück.
>> Geben Sie ein paarmal M-f und M-b ein.
Befinden Sie sich in der Mitte eines Wortes, bewegt M-f den Cursor zum
Ende des Wortes. Befinden Sie dagegen sich in einem Wortzwischenraum,
bewegt M-f den Cursor zum Ende des nächsten Wortes. M-b arbeitet
analog, aber in die entgegengesetzte Richtung.
>> Kombinieren Sie M-f und M-b mit den Befehlen C-f und C-b, um die
Cursorbewegung von verschiedenen Positionen aus innerhalb und
zwischen Wörtern zu beobachten.
Beachten Sie die Parallele zwischen C-f und C-b einerseits und M-f und
M-b andererseits. Sehr oft werden mit »META-« beginnende Befehle für
Operationen verwendet, die mit Sprache zu tun haben (Wörter, Sätze,
Absätze), während CONTROL-Befehle mit den Text-Basiseinheiten
operieren, unabhängig davon, was Sie gerade editieren (Zeichen,
Buchstaben, Zeilen etc).
Ein anderes Beispiel: C-a und C-e bewegt den Cursor zum Anfang
bzw. zum Ende einer Zeile, wohingegen M-a und M-e den Cursor zum
Anfang bzw. zum Ende eines Satzes springen lässt.
>> Probieren Sie ein paarmal C-a und C-e.
Probieren Sie dann ein paarmal M-a und M-e.
Beachten Sie, dass ein wiederholtes Drücken von C-a nichts bewirkt,
dagegen M-a den Cursor satzweise zurücksetzt. Hier endet die
Analogie, jedoch ist das Verhalten dieser Befehle leicht
nachvollziehbar.
[Anmerkung 1: Im Deutschen kommt laut Duden nach einem Punkt nur ein
Leerzeichen. Falls Sie aber Texte schreiben, die weiter verarbeitet
werden (z.B. durch ein Textformatierprogramm wie TeX), dann sollten
Sie sich angewöhnen, nach einem Satzende stets ZWEI Leerzeichen zu
lassen. Dadurch ermöglichen Sie u.a., dass Emacs zwischen
Abkürzungspunkten und dem Satzende unterscheiden kann, was für
Textsuche in wissenschaftlichen Texten oft vorteilhaft ist.]
[Anmerkung 2: Die Tasten »Home« (Pos1) und »End« (Ende) verhalten sich
standardmäßig wie C-a und C-e, wie wohl die meisten Benutzer
annehmen.]
Die aktuelle Position des Cursors wird im Englischen auch »point«
(Punkt) genannt. Beachten Sie bitte, dass sich »point« stets
*zwischen* zwei Zeichen befindet, nämlich genau vor dem
Cursor-Kästchen.
Hier ist eine Zusammenfassung von einfachen Bewegungsbefehlen für den
Cursor einschließlich der Wort- und Satzbewegungsbefehle:
C-f ein Zeichen vorwärts (auch »Pfeil rechts«-Taste)
C-b ein Zeichen zurück (auch »Pfeil links«-Taste)
M-f ein Wort vorwärts
M-b ein Wort zurück
C-n eine Zeile vorwärts (auch »Pfeil hinunter«-Taste)
C-p eine Zeile zurück (auch »Pfeil hinauf«-Taste)
C-a zum Zeilenanfang
C-e zum Zeilenende
M-a zum Satzanfang
M-e zum Satzende
>> Probieren Sie diese Befehle jetzt ein paarmal zur Übung.
Es sind die meistverwendeten Befehle innerhalb Emacs.
Zwei weitere wichtige Befehle für die Cursorbewegung sind M-< (META
Kleiner-als) und M-> (META Größer-als), welche zum Anfang bzw. zum
Ende des ganzen Textes springen.
Bei den meisten Terminal-Tastaturen befindet sich »<« über dem Komma,
d.h., Sie müssen zusätzlich die SHIFT-Taste verwenden (der Umschalter
ist auf deutschen Tastaturen normalerweise mit einem dicken
Aufwärtspfeil markiert). Ohne SHIFT-Taste würden Sie M-Komma
eingeben.
>> Testen Sie nun M-<, um an den Anfang der Einführung
zu gelangen. Verwenden Sie dann C-v, um wieder hierher zu kommen.
[Anmerkung: Die Tastenkombinationen »C-Home« (Pos1) und »C-End« (Ende)
verhalten sich standardmäßig wie M-< und M->.]
Ein weiteres, oft benütztes Konzept in Emacs ist die Markierung
(»mark«). Der Grundbefehl dazu ist C-SPC (oder gleichwertig C-@,
»SPC« bezeichnet die Leertaste, engl. »space key«); mit ihm kann eine
Markierung gesetzt werden. Mit C-u C-SPC kommt man zu dieser
Markierung zurück, falls man den Cursor inzwischen weiterbewegt hat.
Viele Befehle, die große Sprünge in einem Text ausführen (so auch M->
und M-<) setzen eine Markierung implizit, was in der untersten Zeile
(dem Echobereich, s.u.) als »Mark set« angezeigt wird.
>> Verwenden Sie jetzt M->, um zum Ende der Einführung
zu springen und benützen Sie C-u C-SPC, um hierher zurückzukehren.
Markierungen werden in einem Ring gespeichert (d.h., die zuletzt in
den Ring eingehängte Markierung wird als erste zurückgeholt und wie
bei einem Schlüsselbund am Ende wieder in den Ring eingefügt). Mit
C-u C-SPC können Sie Stück für Stück alle Markierungen im
Markierungsring ansteuern.
>> Drücken Sie hier C-SPC, gehen Sie dann zu verschiedenen Positionen
innerhalb dieses Dokuments und verwenden Sie C-SPC, um weitere
Markierungen zu setzen. Geben Sie anschließend C-u C-SPC so oft
ein, bis Sie wieder an dieser Position angelangt sind.
Die meisten Emacs-Befehle akzeptieren ein numerisches Argument, das in
der Regel als Wiederholungszähler dient (d.h., wie oft der Befehl
ausgeführt werden soll). Eingegeben wird diese Zahl mit C-u, dann die
Ziffern und dann der Befehl selbst. Alternativ können Sie die
META-Taste (bzw. EDIT- oder ALT-Taste) gedrückt halten und dann die
Ziffern des Wiederholungszählers eingeben. Wir empfehlen allerdings,
die C-u-Methode zu lernen, da sie mit jedem Terminal funktioniert.
Das numerische Argument wird auch »Präfix-Argument« genannt, da man es
vor dem zugehörigen Befehl eingibt.
Beispiel: C-u 8 C-f bewegt den Cursor acht Zeichen vorwärts.
>> Versuchen Sie, C-n oder C-p mit einem numerischen Argument zu
verwenden und bewegen Sie den Cursor mit nur einem Befehl ungefähr
hierher.
Wie gesagt, die meisten Befehle verwenden das numerische Argument als
Wiederholungszähler, jedoch nicht alle. Einige davon, die allerdings
noch nicht besprochen wurden, benützen es als Flag (»Flagge«), d.h.,
allein das Vorhandensein eines Präfix-Arguments, unabhängig von seinem
Wert, signalisiert dem Befehl, etwas anderes zu tun.
C-v und M-v sind weitere Ausnahmen. Gibt man diesen Befehlen einen
Parameter n, dann verschieben sie den Bildschirminhalt nicht um eine
ganze Bildschirmseite, sondern um n Zeilen. Beispiel: C-u 4 C-v
verschiebt den Bildschirminhalt um vier Zeilen.
>> Versuchen Sie jetzt C-u 8 C-v auszuführen.
Der Bildschirminhalt sollte jetzt um acht Zeilen nach oben verschoben
sein. Wollen Sie ihn nach unten verschieben, dann geben Sie M-v mit
einem numerischen Argument ein.
Wenn Sie eine graphische Oberfläche wie X oder MS-Windows verwenden,
dann befindet sich ein schmaler, langgezogener rechteckiger Bereich
auf der linken oder rechten Seite des Emacs-Fensters. Dieser Bereich
wird Scrollbar genannt (»Verschiebungsbalken«). Sie können Text
verschieben, indem Sie mit der Maus auf den Scrollbar klicken.
Hat Ihre Maus ein Mausrad, können Sie damit ebenfalls Text
verschieben.
* WENN EMACS NICHT MEHR REAGIERT
--------------------------------
Wenn Emacs »hängt«, also auf keine Ihrer Eingaben reagiert, drücken
Sie C-g. Sie können C-g auch dazu benützen, einen Befehl zu stoppen,
der zu lange braucht.
Eine andere Anwendung ist, einen teilweise eingegebenen Befehl zu
verwerfen, z.B. ein irrtümlich eingetipptes numerisches Argument zu
entfernen.
>> Geben Sie C-u 100 ein, um ein numerisches Argument 100 zu
spezifizieren, und drücken Sie dann C-g. Wenn Sie jetzt C-f
ausführen, dann bewegt sich der Cursor genau ein Zeichen vorwärts,
da Sie ja das numerische Argument mittels C-g gelöscht haben.
Wenn Sie aus Versehen <ESC> gedrückt haben, können Sie dies ebenfalls
mit C-g rückgängig machen.
* DEAKTIVIERTE BEFEHLE
----------------------
Ein paar Befehle von Emacs sind deaktiviert (»disabled«), damit
Anfänger sie nicht unabsichtlich benutzen.
Wenn Sie einen solchen Befehl eingeben, dann gibt Emacs eine Meldung
aus und fragt Sie, ob Sie ihn wirklich ausführen wollen.
Antworten Sie mit y (für »yes«) oder drücken Sie die Leertaste, wenn
Sie den Befehl ausführen wollen, sonst mit n.
>> Geben Sie C-x C-l ein (das ist ein deaktivierter Befehl) und
drücken Sie n als Antwort auf die Frage.
* FENSTER
---------
Emacs kann mehrere Fenster (»windows«) haben, von denen jedes seinen
eigenen Text darstellt. Später erklären wir, wie man mit Fenstern
umgeht. Hier wollen wir nur erklären, wie man ein (vielleicht
irrtümlich erzeugtes) Fenster wieder entfernt und zum normalen
Ein-Fenster-Editieren zurückkommt. Der Befehl ist einfach:
C-x 1 Ein Fenster (d.h., schließe alle anderen Fenster)
Das ist C-x gefolgt von der Ziffer 1. C-x 1 expandiert das Fenster,
in dem der Cursor sich befindet, sodass es den ganzen Bildschirm
erfasst. Alle anderen Fenster werden gelöscht.
[Anmerkung: Emacs verwendet das Wort Fenster (»windows«) in einem
anderen Sinn, als Sie es vielleicht gewöhnt sind. Wenn Sie einen
Textbildschirm vor sich haben, dann ist die Terminologie eindeutig.
Wenn Sie allerdings eine graphische Oberfläche benutzen, dann
bezeichnet ein Emacs-Fenster einen Teilbereich des Fensters (von Ihrer
graphischen Oberfläche erzeugt), in dem Emacs läuft, in völliger
Analogie zum Textmodus. Für (graphische) Fenster im herkömmlichen
Sinn verwenden die Emacs-Entwickler den Ausdruck »Rahmen« (»frame«).]
>> Bewegen Sie den Cursor zu dieser Zeile und geben Sie C-u 0 C-l ein.
>> Drücken Sie jetzt C-h k C-f.
Beachten Sie, wie das Fenster schrumpft und ein neues dazukommt,
welches die (englische) Dokumentation des C-f Befehls anzeigt.
>> Geben Sie jetzt C-x 1 ein. Das Dokumentationsfenster verschwindet
wieder.
* EINFÜGEN UND LÖSCHEN
----------------------
Wenn Sie Text einfügen wollen, dann geben Sie ihn einfach ein.
Sichtbare Zeichen, z.B. A, 7, * usw. werden als Text von Emacs sofort
eingefügt. Drücken Sie <Return> (die Zeilenvorschubtaste, meistens
mit »Enter« oder nur mit einem Rückwärts-Hakenpfeil beschriftet), um
ein Zeilenvorschubzeichen einzufügen.
Sie können das zuletzt eingegebene Zeichen löschen, indem Sie <DEL>
drücken. <DEL> ist der Backspace-Taste zugeordnet (oft auch nur als
Rückwärtspfeil beschriftet).
Allgemein gesprochen löscht <DEL> das Zeichen unmittelbar vor der
aktuellen Cursorposition.
>> Probieren Sie das jetzt aus: Geben Sie ein paar Zeichen ein und
löschen Sie sie wieder mit <DEL>. Sie brauchen sich keine Sorgen
zu machen, dieses Dokument zu verändern: Was Sie hier lesen, ist
nur eine (persönliche) Kopie des originalen Dokuments.
Wenn eine Textzeile zu lang für eine Bildschirmzeile ist, wird sie auf
einer zweiten Bildschirmzeile »fortgesetzt«: Bei graphischen
Oberflächen erscheinen zwei kleine gebogene Pfeile links und rechts
vom Textbereich (diese schmalen Spalten werden »fringe« genannt), bei
Terminals ein »Backslash«-Zeichen (»\«) am rechten Rand.
>> Fügen Sie Text ein, bis Sie den rechten Rand erreicht haben. Fügen
Sie weiter Text ein. Beobachten Sie, wie eine Fortsetzungszeile
erscheint.
>> Verwenden Sie <DEL> so oft, bis die Textzeile wieder auf eine
Bildschirmzeile passt. Die Fortsetzungszeile verschwindet wieder.
Sie können das Zeilenvorschubzeichen wie jedes andere Zeichen löschen:
Die Zeilen vor und nach ihm werden dann zu einer zusammengehängt. Ist
diese länger als die Bildschirmbreite, erscheint eine
Fortsetzungszeile.
>> Bewegen Sie den Cursor zum Anfang der Zeile und geben Sie <DEL>
ein: Die momentane Zeile wird an die vorige angehängt.
>> Geben Sie <Return> ein, um wieder ein Zeilenvorschubzeichen
einzufügen.
Die <Return>-Taste ist insofern besonders, als dass sie mehr bewirken
kann, als einfach ein Zeilenvorschubszeichen einzufügen. Abhängig vom
umgebenden Text können zusätzliche Leerzeichen eingefügt werden, damit
der neue Zeilenanfang bündig zur vorherigen Zeile ist. Wir nennen
dieses Verhalten (wenn das Drücken einer Taste mehr bewirkt, als nur
das entsprechende Zeichen einzufügen) »electric«.
>> Ein Beispiel für dieses Verhalten von <Return>.
Drücken Sie <Return> am Ende dieser Zeile.
Sie sollten sehen, dass sich nach dem Einfügen des
Zeilenvorschubzeichen der Cursor unter dem »D« von »Drücken« befindet.
Denken Sie daran, dass die meisten Emacs-Befehle mit einem
Wiederholungszähler aufgerufen werden können. Tun Sie das mit einem
Textzeichen, dann wird es entsprechend dem numerischen Parameter
wiederholt.
>> Drücken Sie C-u 8 *, und es wird ******** eingefügt.
Bis jetzt kennen Sie die Grundbefehle, um Text in Emacs einzugeben und
Fehler zu korrigieren -- fast analog zu den Bewegungsbefehlen ist es
möglich, ganze Wörter, Sätze oder Zeilen zu löschen:
<DEL> lösche ein Zeichen vor dem Cursor
C-d lösche das Zeichen unter dem Cursor
M-<DEL> lösche bis zum (nächsten) Wortanfang unmittelbar
vor dem Cursor
M-d lösche bis zum (nächsten) Wortende nach
(bzw. unter) dem Cursor
C-k lösche von momentaner Cursorposition bis zum Ende
der Zeile
M-k lösche bis zum nächsten Satzende nach
(bzw. unter) dem Cursor
Eine andere, einheitliche Methode zum Löschen von Text ist das
Befehlspaar C-@ (oder C-SPC) und C-w. Gehen sie zum Anfang des zu
löschenden Textes und drücken Sie C-@ oder C-SPC. Gehen Sie dann zum
Ende des zu löschenden Textes und drücken Sie C-w, um ihn zu
entfernen.
>> Bewegen Sie den Cursor zum Buchstaben »E« am Anfang des letzten
Absatzes.
>> Drücken Sie C-SPC. Emacs sollte die Meldung »Mark set« am unteren
Bildschirmrand zeigen.
>> Bewegen Sie den Cursor zum Buchstaben »A« in der zweiten Zeile des
letzten Absatzes.
>> Geben Sie C-w ein. Der ganze Text, beginnend mit dem »E« und
endend vor dem »A«, ist nun gelöscht.
Löschen Sie mehr als ein Zeichen auf einmal, speichert Emacs den
gelöschten Text, damit Sie ihn bei Bedarf wieder zurückholen können.
Einfügen von bereits gelöschtem Text wird im englischen Dokumentation
von Emacs als »yanking« (wörtlich »herausreißen«) bezeichnet. Sie
können den gelöschten Text an einer beliebigen Stelle wieder
einzufügen. Solange Sie nichts neues löschen, steht Ihnen dieser
gelöschte Textteil immer wieder zu Verfügung. Der Befehl dazu ist C-y
(das Ypsilon steht für »yank«).
Emacs unterscheidet zwei Klassen von Löschbefehlen (was man im
Deutschen leider nicht gut wiedergeben kann): »killing« (umbringen)
und »deleting« (löschen). Wenn man sich vorstellt, dass »yanking« den
Begriff »von den Toten erwecken« darstellt, dann hat man ungefähr eine
Vorstellung von der Metapher -- Von einem »kill«-Befehl gelöschter
Text wird gespeichert und kann bei Bedarf mit C-y zurückgeholt werden.
Von einem »delete«-Befehl entfernter Text (in der Regel einzelne
Zeichen, leere Zeilen und Zwischenräume) wird nicht extra gespeichert
und kann daher auch nicht zurückgeholt werden. Allerdings besteht die
Möglichkeit zum »Undo«, siehe weiter unten.
>> Bringen Sie den Cursor an den Anfang einer nicht-leeren Zeile und
geben Sie C-k ein, um die Zeile zu löschen.
>> Geben Sie C-k ein zweites Mal ein. Nun wird der Zeilenvorschub
ebenfalls entfernt.
Das letzte Beispiel zeigt, dass ein einmaliges Ausführen von C-k den
Zeileninhalt löscht, und dass ein nochmaliger C-k-Befehl die Zeile
selbst löscht. Ein numerisches Argument für C-k wird speziell
behandelt: es löscht die angegebene Anzahl von Zeilen UND die
Zeilenvorschübe: C-u 2 C-k löscht zwei Zeilen komplett; zweimal C-k
löscht dagegen nur eine Zeile.
Wie schon erwähnt, bringt C-y den zuletzt gelöschten (»gekillten«)
Text zurück -- man kann diesen Text einfügen, wo man will: an der
ursprünglichen Stelle, an einer anderen Stelle, oder sogar in einer
anderen Datei. Mehrmaliges Ausführen von C-y fügt den Text mehrmals
ein.
In anderen Editoren wird »kill« und »yank« oft als »cut«
(ausschneiden) und »paste« (einfügen) bezeichnet. Näheres dazu findet
sich im Abschnitt »Glossary« des Emacs-Handbuchs.
>> Probieren Sie jetzt C-y, um diesen Effekt zu sehen.
Führen Sie C-k mehrmals hintereinander aus, dann wird der so
gelöschte Text auf einmal gespeichert; C-y bringt dann den gesamten
Text zurück.
>> Drücken Sie mehrmals C-k.
Holen Sie jetzt den Text »von den Toten« zurück:
>> Drücken Sie C-y. Bewegen Sie dann den Cursor ein paar Zeilen nach
unten und drücken Sie C-y erneut. Der eben eingefügte Text wird
noch einmal an anderer Stelle kopiert.
Wie können Sie gelöschten Text wieder einfügen, wenn Sie in der
Zwischenzeit noch etwas anderes »gekillt« haben? C-y würde das
zuletzt gelöschte Textstück zurückholen, was aber nicht das gewünschte
ist. Verwenden Sie nun M-y (unmittelbar nach der erstmaligen
Ausführung von C-y), um den gerade mit C-y eingefügten Textteil durch
ein früher gelöschtes Textstück zu ersetzen. Durch wiederholtes
Betätigen von M-y kommen immer ältere gelöschte Textteile zum
Vorschein. Haben Sie das gewünschte gefunden, dann brauchen Sie
nichts weiter zu tun. Lassen Sie den eingefügten Text so wie er ist
und setzen Sie das Editieren fort.
Drücken Sie M-y immer weiter, dann kommen Sie irgendwann wieder an den
Anfangspunkt zurück (Emacs zeigt Ihnen dann wieder das zuletzt
gelöschte Textfragment), haben also den gesamten Löschring
durchgesehen.
>> Löschen Sie eine Zeile, bewegen Sie den Cursor zu einer anderen
Position und löschen Sie eine weitere Zeile.
Drücken Sie dann C-y, um die zweite gelöschte Zeile zurückzuholen.
Drücken Sie jetzt M-y, und die erste gelöschte Zeile erscheint
statt der zweiten.
Führen Sie nun ein paar weitere M-y-Befehle aus und beobachten Sie
das Ergebnis. Wiederholen Sie das solange, bis die zweite Zeile
wieder erscheint.
Wenn Sie wollen, dann können Sie M-y mit positiven oder negativen
Argumenten aufrufen, um direkt zu einem bestimmten Eintrag im
Löschring zu kommen.
Die meisten graphischen Oberflächen bieten auch die Möglichkeit, mit
der linken Maustaste einen Textteil zu markieren (er erscheint dann
normalerweise grau unterlegt). Der Befehl C-w löscht diesen
markierten Textteil (in Emacs auch »Region« genannt) und fügt ihn in
den Löschring ein.
Dasselbe geht auch ohne Maus: Bewegen Sie den Cursor zum Beginn des zu
löschenden Textteils, drücken Sie C-SPC, um eine Markierung für den
Beginn einer Region zu setzen, gehen Sie dann zum Ende des zu
löschenden Textes und drücken Sie C-w.
Der lange Name für C-w ist kill-region (weiter unten wird erklärt, wie
man Befehle mit langen Namen ausführen kann).
* UNDO
------
Wenn Sie etwas am Text geändert haben und nachträglich bemerken, dass
das ein Fehler war, so können Sie den Fehler mit dem Befehl C-/
ungeschehen machen (»undo«).
Normalerweise macht C-/ das Verhalten von einem Befehl ungeschehen;
führen Sie C-/ mehrmals hintereinander aus, werden die jeweiligen
vorigen Befehle widerrufen.
Es gibt jedoch zwei Ausnahmen: Befehle, die den Text nicht ändern,
werden nicht gezählt (z.B. Cursorbewegungen und Blättern im Text).
Und Befehle, die sich selbst einfügen (»self-inserting«: Drücken Sie
zum Beispiel die »u«-Taste, dann wird der Buchstabe u eingefügt)
werden in Gruppen von bis zu 20 Zeichen wiederhergestellt, um die
Anzahl der notwendigen C-/-Befehle zu reduzieren.
>> Löschen Sie diese Zeilen mit C-k und drücken Sie anschließend
mehrmals C-/, und die Zeilen erscheinen wieder.
Alternative Tastenkombinationen für C-/ sind C-_ und C-x u. Ein
numerisches Argument für C-/, C-_ oder C-x u wird als
Wiederholungszähler interpretiert.
Der Unterschied zwischen der Undo-Funktion und dem oben erklärten C-y
ist, dass erstere gelöschten Text an exakt der gleichen Position wie
vorher wiederherstellt, wohingegen C-y den gelöschten Text an der
momentanen Cursorposition einfügt. Im übrigen kann auch »gekillter«
Text wieder hergestellt werden; der Unterschied zwischen »killing« und
»yanking« betrifft nur C-y, aber nicht die Undo-Funktion.
* DATEIEN
---------
Um editierten Text zu sichern, muss man ihn in einer Datei (»file«)
speichern (»save«). Wird Emacs beendet, ohne dass man vorher den Text
gespeichert hat, dann ist der Text verloren.
Will man andererseits bereits gesicherten Text mit Emacs editieren, so
muss die entsprechende Datei in Emacs geladen werden (im Englischen
wird das als »finding« (finden) bzw. als »visiting« (besuchen)
bezeichnet).
Eine Datei »finden« bedeutet, dass man den Inhalt dieser Datei mit
Emacs bearbeitet -- es ist fast so, als ob man die Datei selbst
editiert. Jedoch werden Änderungen an dieser Datei erst dann
dauerhaft, wenn man sie speichert; auf diese Weise wird vermieden,
dass Dateien in einem halb-geänderten Zustand im Betriebssystem
bleiben. Es wird sogar die originale, unveränderte Datei unter einem
anderen Namen gesichert, falls Sie später entscheiden sollten, dass
die Änderungen ein Fehler sind.
Wenn Sie die untere Bildschirmkante genauer betrachten, dann werden
Sie eine Zeile finden, die mit einem oder mehreren Bindestrichen
beginnt und endet; sie enthält unter anderem die Zeichenkette
»TUTORIAL.de«. An dieser Position befindet sich immer der Name der
Datei, die Sie momentan bearbeiten (»visit«). Gerade in diesem
Augenblick bearbeiten Sie eine Datei mit dem Namen »TUTORIAL.de«
(genauer gesagt, Emacs hat eine identische Kopie geladen).
Die Befehle für das Laden und Speichern von Dateien bestehen aus zwei
Zeichen: Beide beginnen mit CONTROL-x. Es gibt eine ganze Reihe von
Kommandos, die mit C-x beginnen; viele von ihnen haben mit Dateien,
Puffern (s.u.) und ähnlichem zu tun. All diese Befehle sind zwei,
drei oder vier Zeichen lang -- Sie haben bereits C-x u und C-x 1
kennengelernt.
Um eine Datei in Emacs laden zu können, muss man dem Lade-Befehl den
Namen der Datei mitteilen. Der Befehl »liest ein Argument« (in diesem
Fall ist das der Name der Datei). Nachdem Sie
C-x C-f (lade Datei)
eingegeben haben, werden Sie von Emacs nach dem Dateinamen gefragt.
Die Zeichen, die Sie eingeben, werden in der untersten Bildschirmzeile
dargestellt, dem sogenannten Minipuffer (»minibuffer«). Sie können
ganz normale Emacs-Editierfunktionen verwenden, um den Dateinamen zu
ändern.
Sie können jederzeit die Eingabe (auch von anderen Befehlen, die den
Minipuffer benutzen) mit C-g abbrechen.
>> Drücken Sie C-x C-f und dann C-g. Der letzte Befehl verwirft
jegliche Eingabe im Minipuffer und bricht außerdem den Ladebefehl
ab (Sie haben also keine Datei geladen).
Wenn Sie den Dateinamen fertig eingegeben haben, drücken Sie <Return>,
um den Befehl abzuschließen. Der Minipuffer verschwindet wieder, und
C-x C-f lädt die von Ihnen ausgesuchte Datei.
Der Dateiinhalt erscheint jetzt auf dem Bildschirm, und Sie können den
Text editieren. Wenn Sie Ihre Änderungen permanent speichern wollen,
dann drücken Sie
C-x C-s (sichere Datei)
und Emacs kopiert den Text in die Datei. Beim ersten Mal benennt
Emacs die Originaldatei um, damit sie nicht verloren ist. Der neue
Name besteht aus dem Originalnamen plus einer angehängten Tilde »~«
[unter einigen Betriebssystemen wird statt dessen die
Namenserweiterung durch ».bak« ersetzt].
Emacs schreibt den Namen der gesicherten Datei in die unterste Zeile,
sobald C-x C-s fertig ausgeführt ist. Sie sollten den editierten Text
oft speichern, damit nicht allzuviel bei einem etwaigen Systemabsturz
verloren geht (siehe auch den Abschnitt »AUTOMATISCHES SPEICHERN«
weiter unten).
>> Geben Sie
C-x C-s TUTORIAL.de <Return>
ein, um Ihre Kopie der Einführung zu sichern. Die Ausgabe am
unteren Bildschirmrand sollte »Wrote ...TUTORIAL.de« sein.
[Manche Terminals werden durch C-s angehalten und müssen durch C-q
wieder »entsperrt« werden. Eine erste Abhilfe zur Umschiffung dieses
C-s-Problems schafft die Befehlsfolge »M-x save-buffer«, welche exakt
das gleiche wie C-x C-s bewirkt. Mehr Hilfe dazu finden Sie im
Abschnitt »Spontaneous Entry to Incremental Search« im
Emacs-Handbuch.]
Sie können eine existierende Datei anschauen (»view«) oder editieren.
Sie können aber auch eine Datei laden, die noch gar nicht existiert,
um so eine neue Datei zu erzeugen: Sie öffnen dazu die
(nicht-existente) Datei, die natürlich leer ist, und beginnen dann
einfach Text einzugeben. Wenn Sie jetzt die Datei speichern, erzeugt
Emacs wirklich die Datei und kopiert den editierten Text in sie
hinein.
* PUFFER
--------
Manche Editoren können nicht mehr als eine Datei gleichzeitig
bearbeiten. Wenn Sie jedoch eine zweite Datei in Emacs mit C-x C-f
laden, dann bleibt die erste in Emacs. Sie können zur ersten
zurückschalten, indem Sie noch einmal C-x C-f eingeben. Auf diese
Weise lassen sich eine ganze Reihe von Dateien laden und bearbeiten.
Emacs speichert jeden Text, der aus einer Datei in Emacs geladen wird,
in einem »Puffer«-Objekt. Um eine Liste der momentan existierenden
Puffer zu sehen, geben Sie
C-x C-b (liste Puffer auf)
ein.
>> Probieren Sie jetzt C-x C-b.
Beachten Sie, dass jeder Puffer einen Namen hat und manche auch mit
dem Namen einer Datei assoziiert sind, dessen Inhalt sie enthalten.
Manche Puffer aber haben keinen zugehörige Datei, z.B. der mit dem
Namen »*Buffer List*«. Er wurde von dem Befehl C-x C-b erzeugt, um
die Pufferliste darzustellen. JEDER Text, den Sie innerhalb Emacs in
einem Fenster sehen, ist immer ein Ausschnitt eines Puffers.
>> Geben Sie jetzt C-x 1 ein, um die Pufferliste wieder verschwinden
zu lassen.
Wieviele Puffer auch in Emacs geladen sind, nur ein einziger ist der
»momentane« Puffer, nämlich derjenige, den Sie gerade editieren. Will
man einen anderen Puffer editieren, muss man zuerst zu diesem Puffer
wechseln (»switch«). Wie schon weiter oben erklärt, kann man mittels
C-x C-f zu einem Puffer wechseln, der zu einer Datei gehört. Emacs
hat jedoch einen einfacheren Befehl, C-x b, um einen beliebigen Puffer
namentlich auszuwählen.
>> Geben Sie
C-x C-f foo <Return>
ein, um eine Datei mit dem Namen »foo« zu erzeugen. Mittels
C-x b TUTORIAL.de <RETURN>
gelangen Sie wieder zu dieser Einführung.
In der Regel ist der Puffername identisch zu einem Dateinamen (ohne
den Verzeichnispräfix), jedoch nicht immer. Die von C-x C-b erzeugte
Pufferliste zeigt stets die Namen aller Puffer mit den
korrespondierenden Dateinamen.
JEDER Text in Emacs ist Teil eines Puffers, aber nicht jeder Puffer
entspricht einer Datei. So ist z.B. der Puffer »*Buffer List*« mit
keiner Datei assoziiert -- er wurde direkt von dem Befehl C-x C-b
erzeugt. Auch dieser »TUTORIAL.de«-Puffer war anfangs keiner Datei
zugeordnet, jetzt allerdings schon, denn Sie haben im letzten
Abschnitt den Befehl C-x C-s eingegeben und so den Pufferinhalt als
Datei gespeichert.
Der Puffer »*Messages*« hat ebenfalls keine Entsprechung als Datei; er
enthält alle Mitteilungen, die in der untersten Zeile während des
Arbeitens mit Emacs erscheinen.
>> Geben Sie C-x b *Messages* <Return> ein, um sich den
Mitteilungspuffer anzuschauen.
Anschließend geben Sie C-x b TUTORIAL.de <Return> ein, um wieder
hierher in die Einführung zurückzukommen.
Wenn Sie Änderungen an einer Datei vornehmen und anschließend eine
andere Datei laden, dann wird die erste nicht gespeichert. Die
Änderungen bleiben in Emacs, und zwar in dem zur ersten Datei
gehörigen Puffer. Das ist sehr praktisch, bedeutet jedoch
gleichzeitig, dass man einen Befehl braucht, um den Puffer der ersten
Datei permanent abzuspeichern. Es wäre äußerst umständlich, müsste
man jedesmal C-x C-f eingeben, um den Puffer dann mit C-x C-s
abzuspeichern. Daher gibt es den Befehl
C-x s (sichere mehrere Puffer)
Dieser Befehl fragt Sie bei jedem Puffer, der Änderungen enthält, ob
Sie ihn speichern wollen.
>> Fügen Sie eine Textzeile ein und drücken Sie dann C-x s.
Emacs fragt Sie jetzt, ob Sie einen Puffer mit dem Namen
TUTORIAL.de speichern wollen. Bejahen Sie, indem Sie »y« drücken.
[Anmerkung: Sie verändern nicht die Originaldatei, sondern eine
persönliche Kopie.]
* WEITERE BEFEHLE
-----------------
Es existieren viel mehr Emacs-Befehle als Tasten auf der Tastatur. Um
sie trotzdem alle benutzen zu können, gibt es zwei Erweiterungen:
C-x Zeichenerweiterung. Gefolgt von einem Zeichen.
M-x Befehlserweiterung. Gefolgt von einem (langen) Namen.
[Das »x« steht für das englische Wort »extension«.] Diese beiden
Befehle sind prinzipiell sehr nützlich, werden aber weniger oft
benötigt als die bisher vorgestellten. Sie haben bereits mehrere
Befehle aus der ersten Kategorie kennengelernt; unter anderem C-x C-f,
um eine Datei zu laden, und C-x C-s, um sie zu speichern. Ein
weiteres Beispiel ist C-x C-c, um Emacs zu beenden -- Sie brauchen
sich keine Gedanken zu machen, ob Sie beim Beenden von Emacs
vielleicht vergessen haben, Daten oder Text zu sichern -- Emacs fragt
bei jedem geändertem Puffer (bzw. Datei), ob er gespeichert werden
soll.
Unter graphischen Oberflächen wie X bewirkt C-z in der Regel, dass
Emacs ikonofiziert wird, also als Ikone (»Icon«) darauf wartet, mit
einem Mausklick bei Bedarf wieder vergrößert zu werden. Auf einem
Textterminal dagegen wird Emacs »suspendiert«, wenn Sie C-z drücken,
d.h., Sie kehren zurück zur Eingabezeile des Terminals, ohne Emacs zu
beenden, und können beliebige andere Befehle ausführen. In der Regel
können Sie später mittels des Befehls »fg« bzw. »%emacs« wieder zu
Emacs umschalten.
Bei Betriebssystemen bzw. Shells, die Suspension von Programmen nicht
implementiert haben (z.B. MS-DOS), startet C-z einen
System-Befehlsinterpreter innerhalb von Emacs (»subshell«).
Normalerweise müssen Sie dann »exit« in die Befehlszeile schreiben, um
zu Emacs zurückzukehren.
Der beste Zeitpunkt für C-x C-c ist, wenn Sie sich ausloggen
(bzw. Ihren Computer ausschalten); Sie sollten Emacs ebenfalls
beenden, wenn Sie Emacs von einem anderen Programm aus aufgerufen
haben (z.B. einem Programm, das E-mails liest).
Hier ist eine Liste aller C-x-Befehle, die Sie bereits kennengelernt
haben:
C-x C-f lade Datei
C-x C-s sichere Datei
C-x s sichere einige Puffer
C-x C-b zeige Pufferliste an
C-x b wechsle zu Puffer
C-x C-c beende Emacs
C-x 1 lösche alle Fenster außer einem
C-x u widerrufen
Ein Beispiel für einen Befehl mit langen Namen ist replace-string, der
global (also in der ganzen Datei bzw. Puffer) eine Zeichenkette durch
eine andere ersetzt. Wenn Sie M-x drücken, dann fragt Sie Emacs in
der untersten Bildschirmzeile nach dem Namen des Befehls (in diesem
Fall »replace-string«). Geben Sie jetzt »repl s<TAB>« ein und Emacs
vervollständigt den Namen. Schließen Sie die Eingabe mit <Return> ab.
[<TAB> bezeichnet die Tabulatortaste.]
>> Bewegen Sie den Cursor zu der leeren Zeile sechs Zeilen unter
dieser. Geben Sie dann
M-x repl s <Return> Bildschirm <Return> Text <Return>
ein und kehren Sie mit C-u C-SPC an diese Position zurück.
Beachten Sie wie diese Bildschirmzeile jetzt aussieht: Sie haben
den Wortteil B-i-l-d-s-c-h-i-r-m durch »Text« ersetzt (und zwar im
ganzen Dokument beginnend von der Cursorposition).
>> Drücken Sie jetzt C-x u, um diese Änderungen auf einmal rückgängig
zu machen.
* AUTOMATISCHES SPEICHERN
-------------------------
Haben Sie Änderungen an einem Dokument vorgenommen, sie jedoch nicht
gespeichert, dann können sie verloren gehen, falls der Computer
abstürzt. Um Sie davor zu schützen, sichert Emacs in bestimmten
Zeitintervallen jede von Ihnen editierte Datei in sogenannten
»auto save«-Dateien. Sie sind daran zu erkennen, dass sie mit einem #
beginnen und enden; z.B. ist »#hello.c#« der Name der Auto-Save-Datei
von »hello.c«. Wenn Sie Ihren Text auf normalem Wege speichern, wird
die Auto-Save-Datei gelöscht.
Stürzt der Rechner einmal wirklich ab, können Sie die Änderungen, die
beim letzten Auto-Save gespeichert worden sind, folgendermaßen
wiederherstellen: Laden Sie die Datei auf normalem Wege (die Datei,
die Sie bearbeitet haben, nicht die Auto-Save-Datei) und geben Sie
dann »M-x recover-file <Return>« ein. Wenn Emacs Sie um Bestätigung
fragt, antworten Sie mit »yes <Return>«, um den Inhalt der
Auto-Save-Datei zu übernehmen.
* DER ECHO-BEREICH
------------------
Geben Sie Befehle langsam ein, dann zeigt Ihnen Emacs Ihre eigene
Eingabe am unteren Bildschirmrand im sogenannten Echo-Bereich (»echo
area«). Der Echo-Bereich enthält die unterste Bildschirmzeile.
[Mini-Puffer und Echo-Bereich fallen normalerweise zusammen, sind aber
nicht das gleiche, da innerhalb des Echo-Bereiches nichts eingegeben
werden kann.]
* DIE STATUSZEILE
------------------
Die Bildschirmzeile unmittelbar über dem Echo-Bereich ist die
Statuszeile (»mode line«). Sie schaut ungefähr so aus:
-1:**- TUTORIAL.de 58% L891 (Fundamental)
Diese Zeile gibt nützliche Hinweise über den momentanen Zustand von
Emacs und den Text, den Sie gerade editieren.
Sie wissen bereits, was der Dateiname bedeutet. »NN%« zeigt die
momentane Position innerhalb des Puffertextes an: NN Prozent davon
sind oberhalb des Bildschirms. Ist der Dateianfang zu sehen, dann
erscheint »Top« anstelle von »00%«. Analog dazu erscheint »Bot« (für
das englische Wort »bottom«), wenn das Dateiende sichtbar ist. Wenn
Sie einen Puffer betrachten, der komplett auf den Bildschirm passt,
dann erscheint »All«.
Das »L« und die nachfolgenden Ziffern geben die aktuelle Zeilennummer
an, in der sich der Cursor befindet.
Am Anfang der Zeile sehen Sie »-1:**-«. Die Zeichen vor dem
Doppelpunkt geben an, in welcher Kodierung der Text ist und welche
Eingabemethode verwendet wird. Dazu mehr weiter unten im Abschnitt
»MULE«.
[Anstelle des Doppelpunktes können auch ein »\« und »/« stehen, falls
Sie Dateien editieren, die der MS-DOS- bzw. der
Macintosh-Textkonvention folgen: MS-DOS verwendet als
Zeilenvorschubzeichen CR-LF (Carriage Return gefolgt von Linefeed),
während Macintosh nur CR benutzt. Emacs verwendet standardmäßig LF.]
Die Sterne nach dem Doppelpunkt bedeuten, dass Sie Änderungen am Text
vorgenommen haben. Wenn Sie gerade eine Datei in Emacs geladen oder
gespeichert haben, dann erscheinen statt der Sterne zwei Bindestriche.
Prozentzeichen nach dem Doppelpunkt stehen für eine Datei, die nur
gelesen, aber nicht editiert werden kann.
Der eingeklammerte Teil gibt an, in welchem Editiermodus Sie sich
befinden. Der Standardmodus heißt »Fundamental« (Sie verwenden ihn
gerade); er ist ein Beispiel für einen Hauptmodus (»major mode«).
Emacs hat viele Hauptmodi implementiert. Manche davon werden für
verschiedene (Computer-)Sprachen und/oder Textarten verwendet,
z.B. Lisp-Modus, Text-Modus usw. Es kann immer nur ein Hauptmodus
aktiviert sein, und der Name befindet sich dort, wo jetzt gerade
»Fundamental« steht.
Einige Befehle verhalten sich jeweils in verschiedenen Hauptmodi
anders. Es gibt zum Beispiel einen Befehl, um einen Kommentar in den
Quellcode eines Computerprogramm einzufügen -- die Tastenfolge dafür
ist zwar (in der Regel) die gleiche, doch wird ein Kommentar mit der
für die aktuelle Programmiersprache gültigen Syntax eingefügt
(z.B. »// ...« für ein Programm in C++ oder »; ...« für Lisp). Um in
einen Hauptmodus zu schalten, hängen Sie einfach das englische Wort
»-mode« an den (kleingeschriebenen) Namen des Modus an und führen den
Befehl mittels M-x aus. Beispiel: »M-x fundamental-mode« schaltet in
den Fundamental-Modus. Weitere wichtige Modi sind c-mode, perl-mode,
lisp-mode, text-mode u.a. Die meisten davon werden automatisch
aktiviert, und zwar entsprechend der Namenserweiterung der zu ladenden
Datei: So wird z.B. durch das Laden der Datei foo.c automatisch der
C-Modus aktiviert.
Wenn Sie deutschen oder englischen Text bearbeiten, dann sollten Sie
den Textmodus verwenden. [Falls Ihre Tastatur keine Umlaut-Tasten
hat, müssen Sie noch einen weiteren Nebenmodus aktivieren. Lesen Sie
dazu den Abschnitt »MULE« weiter unten.]
>> Geben Sie »M-x text-mode <Return>« ein.
Sie brauchen keine Angst zu haben, dass sich die bisher dargestellte
Tastaturbelegung von Emacs stark ändert. Beobachten Sie z.B. die
Befehle M-f und M-b: Apostrophe werden nun als Teil eines Wortes
betrachtet (wie man's leicht an diesem Beispiel ausprobieren kann),
wohingegen im Fundamentalmodus Apostrophe als Worttrenner
(»word-separator«) behandelt werden.
Normalerweise ist das eben genannte Beispiel die Methode von
Hauptmodi: Die meisten Befehle tun »das gleiche«, arbeiten aber
jeweils ein bisschen anders.
Dokumentation zum derzeit aktuellen Hauptmodus bekommen Sie mit C-h m.
>> Drücken Sie C-l C-l, um diese Zeile an den oberen Bildschirmrand zu
bringen.
>> Lesen Sie nun mittels C-h m die englische Dokumentation zum
Textmodus.
>> Entfernen Sie schließlich das Dokumentationsfenster mit C-x 1.
Neben den Hauptmodi gibt es auch Nebenmodi (»minor modes«). Nebenmodi
sind keine Alternativen zu Hauptmodi, sondern stellen Ergänzungen zur
Verfügung, die (normalerweise) in allen Hauptmodi funktionieren
(z.B. der Überschreibmodus: Zeichen werden nicht eingefügt, sondern
überschreiben den Text). Man kann Nebenmodi ein- und ausschalten
unabhängig von anderen Nebenmodi und Hauptmodi; mit anderen Worten,
Sie können zu Ihrem Hauptmodus keinen, einen oder sogar mehrere
Nebenmodi haben.
Ein Nebenmodus, welcher äußerst nützlich ist, besonders für das
Editieren von Text, ist der automatische Zeilenumbruch (»Auto Fill
mode«). Ist dieser Modus aktiviert, dann bricht Emacs die laufende
Zeile selbsttätig zwischen Wörtern um, sobald sie zu lang wird.
Sie können den Zeilenumbruchmodus mittels »M-x auto-fill-mode
<Return>« einschalten. Wenn der Modus aktiviert ist, können Sie ihn
mit dem gleichen Befehl wieder ausschalten. Mit anderen Worten, der
Befehl verhält sich wie ein Lichttaster, der bei Betätigung entweder
das Licht ein- oder ausschaltet, je nachdem, ob das Licht vorher
ausgeschaltet bzw. eingeschaltet war. Wir sagen, dass dieser Befehl
den Modus umschaltet (»toggle«).
>> Geben Sie nun M-x auto-fill-mode <Return> ein. Fügen Sie
anschließend eine Zeile ein, die aus lauter »asdf « besteht, und
zwar so lange, bis die Zeile automatisch umgebrochen wird.
Vergessen Sie nicht, Leerzeichen einzugeben, da nur dort ein
Umbruch erfolgt.
Normalerweise ist die maximale Zeilenlänge 70 Zeichen (d.h., der linke
Rand ist ganz links auf Position 1 und der rechte Rand auf
Position 70), jedoch können Sie das mit dem Befehl C-x f ändern.
Geben Sie den neuen (rechten) Rand als numerischen Parameter ein.
>> Geben Sie C-x mit dem Argument 20 ein (C-u 2 0 C-x f). Schreiben
Sie nun etwas Text und beobachten Sie, wie Emacs die laufende Zeile
an Position 20 umbricht. Setzen Sie anschließend den Rand wieder
zurück auf 70 mit dem gleichen Befehl.
Machen Sie Änderungen in der Mitte eines Absatzes, dann reformatiert
der Zeilenfüllmodus nicht automatisch den Absatz.
Verwenden Sie dafür den Befehl M-q, wobei der Cursor innerhalb des
Absatzes stehen muss.
>> Bewegen Sie den Cursor zurück zum letzten Absatz und drücken Sie
M-q.
* SUCHEN
--------
Emacs kann Zeichenketten (»strings«, eine Folge von zusammenhängenden
Zeichen) entweder in Richtung Pufferende (vorwärts, »forward«) oder in
Richtung Pufferanfang (rückwärts, »backward«) suchen. Gleichzeitig
wird der Cursor an die nächste Stelle bewegt, wo diese Zeichenkette
erscheint.
Die Standard-Suchoperation von Emacs ist inkrementelles Suchen, d.h.,
die Suche beginnt dann, wenn Sie die Zeichen eingeben.
Der Befehl für Vorwärtssuchen ist C-s und C-r für Rückwärtssuchen.
ABER HALT! Probieren Sie bitte diese Befehle noch nicht.
Wenn Sie C-s eingeben, dann erscheint die Zeichenkette »I-search:« als
Eingabeaufforderung im Echobereich. Das bedeutet, dass Emacs jetzt
eine inkrementellen Suche ausführt und darauf wartet, dass Sie die zu
suchende Zeichenkette eingeben. <Return> beendet die Suche.
>> Geben Sie jetzt C-s ein, um einen Suchvorgang zu starten. Schreiben
Sie LANGSAM, einen Buchstaben nach dem anderen, das Wort »Cursor«,
und warten Sie jeweils ab, was mit dem Cursor passiert. Sie haben
jetzt das Wort »Cursor« einmal gefunden.
>> Drücken Sie C-s noch einmal, um die nächste Stelle zu suchen, wo das
Wort »Cursor« vorkommt.
>> Drücken Sie nun <DEL> viermal und beobachten Sie, wie der Cursor
zurückspringt.
>> Beenden Sie die Suche mit <Return>.
Verstehen Sie, was gerade vorgegangen ist? Emacs versucht während
einer inkrementellen Suche zu der Stelle zu gehen, wo die Zeichenkette
steht, die Sie bis jetzt eingegeben haben. Um die darauffolgende
Position zu suchen, wo »Cursor« steht, genügt es, noch einmal C-s zu
betätigen. Wenn es keine nächste Position gibt, dann ertönt ein
kurzer Ton, und Emacs sagt Ihnen, dass die Suche im Augenblick
fehlschlägt (»failing«). C-g beendet ebenfalls einen Suchvorgang.
Wenn Sie sich mitten in einer inkrementellen Suche befinden und
<DEL> drücken, wird das letzte Zeichen im Suchstring gelöscht, und
der Cursor springt zurück auf die letzte Suchposition. Angenommen,
Sie haben »c« eingegeben, um das erste Auftreten von »c« zu suchen.
Geben Sie jetzt »u« ein, dann springt der Cursor zu dem ersten
Auftreten der Zeichenkette »cu«. Wenn Sie jetzt mit <DEL> das »u«
vom Suchstring löschen, dann springt der Cursor zurück zum ersten »c«.
Drücken Sie dagegen ein paar mal C-s, um weitere »cu«-Zeichenketten zu
finden, dann bewirkt <DEL>, dass Sie zum letzten Auftreten von »cu«
zurückspringen, und erst wenn es kein weiteres »cu« mehr gibt, springt
der Cursor zum ersten »c« zurück.
Die Suche wird ebenfalls beendet, wenn Sie ein CONTROL- oder
META-Zeichen eingeben (mit ein paar Ausnahmen -- Zeichen, die bei
einer Suche speziell gehandhabt werden wie C-s oder C-r).
C-s versucht, die Zeichenkette NACH der aktuellen Cursorposition zu
finden. Wollen Sie etwas davor suchen, müssen Sie C-r verwenden. Das
oben Gesagte gilt völlig analog, jedoch in die entgegengesetzte
Suchrichtung.
* MEHRFACHE FENSTER
-------------------
Eine weitere, nützliche Fähigkeit von Emacs ist die Möglichkeit, mehr
als ein Fenster zur gleichen Zeit auf dem Bildschirm darzustellen.
[Der Unterschied zu graphischen Fenstern im herkömmlichen Sinn
(»frame« in der Emacs-Terminologie) wurde bereits weiter oben
besprochen.]
>> Bewegen Sie den Cursor zu dieser Zeile und geben Sie C-l C-l ein.
>> Drücken Sie nun C-x 2, um den Bildschirm in zwei Fenster zu teilen.
Beide Fenster zeigen diese Einführung an, und der Cursor bleibt im
oberen.
>> Verwenden Sie C-M-v, um im unteren Fenster zu blättern (Sie können
statt dessen auch ESC C-v verwenden, falls Sie keine META-Taste
haben; siehe auch weiter unten).
>> Mittels C-x o (das »o« steht für das englische Wort »other«, »das
andere«) können Sie den Cursor in das untere Fenster bewegen.
>> Benützen Sie C-v und M-v, um im unteren Fenster zu blättern. Lesen
Sie die Emacs-Einführung jedoch im oberen Fenster weiter.
>> Geben Sie C-x o nochmals ein, und der Cursor ist wieder im oberen
Fenster, genau an der Stelle, wo er vorher war.
C-x o ist der Befehl, um zwischen (Emacs-)Fenstern hin- und
herzuschalten. Jedes Fenster hat eine eigene Cursorposition, aber nur
das aktuelle Fenster zeigt den Cursor an (auf einer graphischen
Oberfläche wird die nicht-aktuelle Cursorposition durch ein leeres
Rechteck dargestellt). Alle normalen Editierbefehle betreffen das
Fenster, in dem sich der Cursor befindet. Wir nennen dieses Fenster
»ausgewählt« (»selected window«).
Der Befehl M-C-v ist sehr nützlich, wenn man Text in einem Fenster
editiert und das andere Fenster als Referenz verwendet. Ohne das
momentante Arbeitsfenster verlassen zu müssen, kann man mit M-C-v im
anderen Fenster bequem vorwärtsblättern.
M-C-v ist ein Beispiel eines CONTROL-META-Zeichens. Haben Sie eine
META-Taste, dann kann man M-C-v erzeugen, indem man CTRL und META
gleichzeitig niedergedrückt hält, während man v eintippt. Es ist
egal, ob zuerst CTRL oder META niedergedrückt wird, da beide Tasten
gleichberechtigt das jeweils einzugebende Zeichen modifizieren.
Haben Sie keine META-Taste, und Sie verwenden stattdessen ESC, dann
ist die Reihenfolge nicht mehr egal: Sie müssen zuerst ESC drücken,
gefolgt von CTRL-v. CTRL-ESC v funktioniert nicht! Der Grund dafür
ist, dass ESC ein eigenes Zeichen ist und keine Modifizier-Taste wie
META oder CTRL.
Der umgekehrte Befehl zu M-C-v ist M-C-S-v, um im anderen Fenster
rückwärts zu blättern (d.h., Sie müssen die META-Taste sowie die
CONTROL- und SHIFT-Taste zusammen mit »v« betätigen) -- jetzt werden
Sie wahrscheinlich verstehen, warum manche Kritiker das Wort Emacs als
Abkürzung von Escape-Meta-Alt-Control-Shift betrachten. Leider
funktioniert diese Befehlsfolge normalerweise nur mit graphischen
Oberflächen, da C-v von C-S-v auf den meisten Textterminals nicht
unterschieden werden kann.
[Auf graphischen Oberflächen kann man außerdem in der Regel mit den
bequemeren Tastenkombinationen META-»Bild mit Aufwärtspfeil«
bzw. META-»Bild mit Abwärtspfeil« ebenfalls im anderen Fenster rück-
bzw. vorwärts blättern.]
>> Entfernen Sie mit C-x 1 (eingegeben im oberen Fenster) das untere
Fenster.
(Hätten Sie C-x 1 im unteren Fenster eingegeben, dann wäre das obere
Fenster geschlossen worden -- eine Eselsbrücke für C-x 1 ist »ich will
nur das *eine* Fenster, in dem ich mich gerade befinde.«)
Sie müssen nicht den gleichen Puffer in beiden Fenstern darstellen.
Wenn Sie C-x C-f verwenden, um in einem Fenster eine Datei zu laden,
dann bleibt das andere Fenster unverändert. Sie können in jedem
Fenster eine andere Datei anzeigen lassen, unabhängig vom anderen
Fenster.
Hier eine andere Möglichkeit, in zwei Fenstern zwei verschiedene
Texte darzustellen:
>> Geben Sie C-x 4 C-f ein, gefolgt vom Namen einer Ihrer Dateien.
Schließen Sie ab mit <Return>. Beobachten Sie, wie die
spezifizierte Datei im unteren Fenster erscheint. Der Cursor
springt ebenfalls in das untere Fenster.
>> Bewegen Sie den Cursor mittels C-x o in das obere Fenster und geben
Sie C-x 1 ein, um das untere Fenster zu schließen.
* MEHRFACHE RAHMEN
------------------
Emacs kann auch mehrfache Rahmen erzeugen, sobald das Programm auf
einer graphischen Oberfläche ausgeführt wird. In der
Emacs-Terminologie bezeichnet ein »Rahmen« eine Gruppe von Fenstern,
gemeinsam mit deren Menus, Scrollbars, Echo-Bereichen, usw. Auf einem
Textterminal kann genau ein Rahmen dargestellt werden.
>> Geben Sie
M-x make-frame <Return>
ein, um einen neuen Rahmen zu erzeugen.
Alles, was Sie im ursprünglichen, ersten Rahmen tun können,
funktioniert genauso im neuen Rahmen. Beide Rahmen sind also völlig
gleichwertig.
>> Geben Sie
M-x delete-frame <Return>
ein, um den ausgewählten Rahmen zu entfernen.
Ein Rahmen kann auch mit der normalen Methode der graphischen
Oberfläche entfernt werden; meistens gibt es dafür einen Knopf mit
einem »X« in der linken oder rechten oberen Ecke des Rahmens. Wird
der letzte Rahmen geschlossen, beendet man Emacs, wie erwartet.
* REKURSIVE EDITIER-EBENEN
--------------------------
Manchmal kann es passieren, dass Sie in eine sogenannte rekursive
Editier-Ebene geraten (»recursive editing level«). Sie können das an
den eckigen Klammern in der Statuszeile erkennen, welche den
derzeitigen Hauptmodus zusätzlich umschließen, z.B. [(Fundamental)]
anstelle von (Fundamental).
Um eine rekursive Editier-Ebene zu verlassen, geben Sie ESC ESC ESC
ein. Diese Tastenkombination ist ein allgemeiner
Ich-will-hier-raus-Befehl. Sie können ihn auch verwenden, um
unerwünschte Fenster zu schließen und den Minipuffer zu verlassen.
>> Geben Sie M-x ein, um in den Minipuffer zu gelangen, und tippen Sie
dann ESC ESC ESC, um ihn wieder zu verlassen.
Mit C-g kann man eine rekursive Editier-Ebene nicht verlassen, da C-g
Befehle INNERHALB einer rekursiven Editier-Ebene stoppt.
Rekursive Editier-Ebenen sind hier in dieser Einführung nicht weiter
dargestellt. Details finden Sie im Emacs-Handbuch beschrieben.
* MULE
------
Mule ist die Abkürzung für »Multi-lingual Enhancement to GNU Emacs«.
Früher wurde damit eine spezielle Emacs-Variante bezeichnet, die
allerdings seit der Version 20 mit Emacs verschmolzen ist.
Emacs unterstützt eine große Anzahl von internationalen Zeichensätzen,
z.B. verschiedene europäische Varianten des lateinischen Alphabets,
Chinesisch, Russisch oder Thai, um nur einige zu nennen. In dieser
Einführung wird jedoch nur auf Unicode und Latin-1 sowie
Eingabemöglichkeiten für Deutsch näher eingegangen.
Lesen Sie im Emacs-Handbuch unter dem Stichwort »International« nach,
welche weitere Optionen es bezüglich Zeichensätze gibt.
Die Standard-Zeichensätze für Deutsch sind Latin-1 (auch bekannt unter
dem Namen ISO-8859-1) und Unicode -- und da besonders dessen
Kodierungsvariante UTF-8. Werden anstelle der deutschen Umlaute
unansehnliche Konstrukte wie »\374« dargestellt, hat Emacs die
Kodierung nicht richtig erkannt. Sie können die Anwendung einer
Kodierung auf einen Befehl erzwingen, indem Sie diesen mit der Sequenz
»C-x <Return> c KODIERUNG« einleiten. Das Laden einer Datei »foo« mit
der Kodierung »UTF-8« ist beispielsweise
C-x <Return> c utf-8 <Return> C-x C-f foo
Ist die Sprachumgebung (»locale«) Ihres Betriebssystems korrekt auf
Deutsch gesetzt, verwendet Emacs diese Einstellungen automatisch
(inklusive einer Standard-Kodierung). Wollen Sie andere Einstellungen
verwenden, geben Sie »C-x <Return> l« ein (ein Tastenkürzel für die
Funktion set-language-environment). Mittels
C-x <Return> l latin-1 <Return>
können Sie z.B. in einer laufenden Emacs-Sitzung auf Latin-1
umzuschalten. Dadurch wird erreicht, dass Emacs beim Laden einer
Datei (und Speichern derselben) standardmäßig die
Latin-1-Zeichenkodierung verwendet. Sie können an der Ziffer 1
unmittelbar vor dem Doppelpunkt links unten in der Statuszeile
erkennen, dass Sie Latin-1 aktiviert haben. Beachten Sie allerdings,
dass set-language-environment keinen Einfluss auf die Kodierung
bereits existierender Puffer hat!
>> Führen Sie jetzt C-x <Return> l latin-1 <Return> aus und öffnen Sie
anschließend eine (neue) Datei mit dem Namen »bar« in einem anderen
Fenster mittels C-x 4 C-f bar <Return>. In der Statuszeile des
zweiten Fensters sehen Sie die Ziffer 1 unmittelbar vor dem
Doppelpunkt.
>> Schließen Sie das soeben geöffnete Fenster mit C-x 1 wieder.
Wie können Sie nun deutsche Umlaute eingeben? Es gibt prinzipiell
zwei unterschiedliche Fälle: Sie besitzen eine deutsche Tastatur mit
Tasten für die Umlaute oder Sie haben eine nicht-deutsche Tastatur.
Im ersteren Fall sollten Sie die Eingabemethode »german« auswählen,
welche direkt die Umlaute auf die entsprechenden Tasten abbildet. Im
letzteren Fall gibt es mehrere Möglichkeiten, wovon zwei hier erklärt
werden sollen, nämlich »latin-1-prefix« und »latin-1-postfix«. Die
Präfix-Methode erwartet zuerst den Akzent und dann den Basisbuchstaben
('a wird zu á, "s zu ß etc.), während bei der Postfix-Methode zuerst
der Basisbuchstabe und dann der Akzent einzugeben ist (a" wird zu ä,
s/ wird zu ß etc).
Aktiviert wird die jeweilige Eingabe mit dem Befehl
C-u C-\ Eingabemethode <Return>
(z.B. C-u C-\ german <Return>). Durch diese Befehlsfolge wird der
sogenannte Quail-Nebenmodus aktiviert, was sich durch eine kleine
Veränderung in der Statuszeile zeigt: Durch zwei oder drei Zeichen
unmittelbar vor der Pufferkodierung wird die aktuelle Eingabemethode
angezeigt. Ist der Eingabemodus einmal gewählt, kann man mit C-\ ihn
ein- und ausschalten.
>> Geben Sie C-u C-\ latin-1-postfix <Return> ein. Beobachten Sie,
wie links unten in der Statuszeile die Anzeige von »1:**-« auf
»1<1:**-« springt. Probieren Sie ä einzugeben mittels a".
>> Deaktivieren Sie den Eingabemodus wieder mit C-\.
Folgende Kürzel in der Statuszeile repräsentieren die eben
beschriebenen Eingabemethoden:
DE@ german
1< latin-1-postfix
1> latin-1-prefix
So bedeutet die Angabe »DE@1:**-«, dass Sie die Eingabemethode
»german« in einem Puffer mit Latin-1-Kodierung verwenden, und dass die
Datei bereits modifiziert wurde.
[Arbeitet Emacs in einem Terminal, werden noch zwei zusätzliche
Spalten zwischen Eingabemethode und Pufferkodierung eingefügt, und
zwar für die Tastatur- und Bildschirmkodierung.]
* WEITERE DOKUMENTATION VON EMACS
---------------------------------
Wir haben uns bemüht, in dieser Einführung genau soviel Information zu
geben, dass Sie beginnen können, mit Emacs zu arbeiten. Emacs ist
jedoch so mächtig und umfangreich, dass es den Rahmen einer Einführung
spränge, an dieser Stelle mehr zu erklären. Um Sie im weiteren
Lernverlauf zu unterstützen, stellt Emacs eine Reihe von
Hilfe-Funktionen zu Verfügung, die alle mit dem Präfix C-h (dem
Hilfe-Zeichen, »Help character«) beginnen.
Nach dem Drücken von C-h geben Sie ein weiteres Zeichen ein, um Emacs
zu sagen, worüber Sie mehr Informationen brauchen. Sollten Sie
WIRKLICH verloren sein, geben Sie C-h ? ein, und Emacs sagt Ihnen,
welche Art von Hilfe er Ihnen zu Verfügung stellen kann. Haben Sie
C-h versehentlich gedrückt, können Sie mit C-g sofort abbrechen.
(Alternativen zu C-h sind die F1-Taste und der lange Befehl M-x help
<Return>.)
Die elementarste Hilfestellung gibt C-h c. Drücken Sie C-h, dann das
Zeichen c, und dann einen Befehl: Emacs zeigt daraufhin eine kurze
Beschreibung des Befehls an.
>> Geben Sie C-h c C-p ein.
Die Antwort darauf (im Echo-Bereich) sollte so ähnlich sein wie
C-p runs the command previous-line
Somit wissen Sie den »Namen der Funktion«. Da Namen in der Regel
beschreiben, was die jeweilige Funktion tut, können sie auch als sehr
kurze Beschreibung dienen -- ausreichend, um Sie an Befehle zu
erinnern, die Sie bereits gelernt haben.
Aus mehr als einem Zeichen bestehende Befehle, z.B. C-x C-s oder
<ESC>v, sind ebenfalls erlaubt nach C-h c.
Um eine detaillierte Dokumentation eines Befehls zu erhalten,
verwenden Sie C-h k anstelle von C-h c.
>> Geben Sie C-h k C-p ein.
Diese Befehlsfolge zeigt die komplette Dokumentation des Befehls an
zusammen mit seinem Namen, und zwar in einem eigenem Fenster. Wenn
Sie die Beschreibung gelesen haben, benützen Sie am besten C-x 1, um
das Hilfe-Fenster wieder zu schließen. Sie müssen das nicht sofort
tun -- Sie können weiter Text editieren und das Fenster schließen,
wenn Sie es nicht mehr brauchen.
Hier einige weitere nützliche Optionen von C-h:
C-h f Beschreibt eine Funktion. Sie müssen den Namen der
Funktion eingeben.
>> Probieren Sie C-h f previous-line <Return>.
Alle Information über den C-p-Befehl wird angezeigt.
Sie können die Tabulator-Taste stets benützen, um den Namen des
jeweiligen Befehls zu vervollständigen. Geben Sie z.B. »C-h f
previous<TAB>« ein, dann werden alle Befehle angezeigt, deren Namen
mit »previous-« beginnen. Ergänzen Sie die Zeichenkette auf
»previous-l« und drücken Sie dann <TAB>, bleibt nur noch der Befehl
»previous-line« übrig, und Sie können mit <Return> abschließen.
Ein ähnlicher Befehl ist C-h v. Er zeigt den Wert und die
Dokumentation von Variablen, deren Werte man ändern kann (um
beispielsweise Emacs an persönliche Bedürfnisse anzupassen). Auch
hier kann man die Tabulator-Taste zur Vervollständigung benutzen.
C-h a Ein Befehls-Apropos. Gibt man ein Schlüsselwort ein,
zeigt Emacs alle Befehle, die dieses Schlüsselwort
enthalten. Alle angezeigten Befehle können mit M-x
aufgerufen werden. Für einige Kommandos wird
zusätzlich eine Zeichensequenz (meistens bestehend aus
einem oder zwei Zeichen) aufgelistet, welche den
gleichen Befehl startet.
>> Geben Sie C-h a file <Return> ein.
Alle M-x-Befehle, die das Wort »file« in ihrem Namen enthalten, werden
angezeigt. Beachten Sie, dass auch C-x C-f aufgelistet wird neben dem
zugehörigen langen Namen, find-file.
>> Blättern Sie mit C-M-v, um sich die Liste der Funktionen anzusehen.
>> Schließen Sie das Hilfefenster mit C-x 1.
C-h i Dieser Befehl öffnet einen speziellen Puffer, um
Handbücher zu lesen (im »Info«-Format), die auf dem
verwendeten Computersystem installiert sind. Geben
Sie z.B. m emacs <Return> ein, um das Emacs-Handbuch
zu lesen. Haben Sie »Info« noch nie benutzt, tippen
Sie ?, und Emacs führt Sie Schritt für Schritt durch
die Möglichkeiten des Info-Modus. Wenn Sie diese
Einführung fertiggelesen haben, sollten Sie das
Info-Handbuch für Emacs als primäre Dokumentation
benutzen.
* SCHLUSSBEMERKUNG
------------------
Das Wichtigste: Emacs wird mit C-x C-c beendet.
Diese Einführung soll für alle neuen Benutzer von Emacs verständlich
sein. Wenn daher etwas unklar sein sollte, hadern Sie nicht mit sich
selbst. Schreiben Sie an die Free Software Foundation, den Autor oder
den Übersetzer und erläutern Sie, was für Sie unklar geblieben ist.
* RECHTLICHES
-------------
Die englische Version dieser Einführung hat eine lange Vorgeschichte.
Stuart Cracraft hat für die Urversion von Emacs das erste Tutorial
geschrieben. Übersetzer ins Deutsche ist Werner Lemberg (wl@gnu.org).
Beachten Sie bitte, dass im Zweifelsfalle das englische Original
dieser Urheberrechtsnotiz gültig ist (zu finden in der Datei
TUTORIAL).
Copyright (C) 1985, 1996-1997, 2001-2017 Free Software Foundation,
Inc.
Diese Datei ist ein Bestandteil von GNU Emacs.
Hiermit wird für jedermann die Erlaubnis erteilt, wörtliche,
unveränderte Kopien dieses Dokumentes für jegliches Medium zu
erstellen, unter der Voraussetzung, dass die Copyright-Notiz sowie
diese Erlaubnis beibehalten werden. Außerdem muss der Verteiler
dieses Dokuments den Empfängern die gleichen Rechte einräumen,
welche durch diese Erlaubnis gegeben sind.
Zugleich wird die Erlaubnis erteilt, modifizierte Versionen dieses
Dokuments, oder Teile davon, zu verteilen, und zwar zu den oben
gegebenen Bedingungen unter der Voraussetzung, dass eindeutig zu
erkennen ist, wer zuletzt dieses Dokument verändert hat.
Die Vervielfältigungsbedingungen für Emacs selbst sind etwas
komplexer, folgen aber in etwa den gleichen Richtlinien. Lesen Sie
bitte die Datei COPYING und geben Sie Emacs an Ihre Freunde weiter!
Helfen Sie mit, die Idee von freier Software zu propagieren, indem Sie
freie Software verwenden, verteilen, oder sogar selber schreiben.
--- end of TUTORIAL.de ---
;;; Local Variables:
;;; coding: utf-8
;;; End:
|