This file is indexed.

/usr/share/doc/HOWTO/de-html/DE-Emacs-Einsteiger-HOWTO-3.html is in doc-linux-de 2003.10-5.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  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
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
 <META NAME="GENERATOR" CONTENT="LinuxDoc-Tools 0.9.65">
 <TITLE>HOWTO f&uuml;r den Emacs Einsteiger: Emacs-Modi</TITLE>
 <LINK HREF="DE-Emacs-Einsteiger-HOWTO-4.html" REL=next>
 <LINK HREF="DE-Emacs-Einsteiger-HOWTO-2.html" REL=previous>
 <LINK HREF="DE-Emacs-Einsteiger-HOWTO.html#toc3" REL=contents>
</HEAD>
<BODY>
<A HREF="DE-Emacs-Einsteiger-HOWTO-4.html"><IMG SRC="next.png" ALT="Weiter"></A>
<A HREF="DE-Emacs-Einsteiger-HOWTO-2.html"><IMG SRC="prev.png" ALT="Zurück"></A>
<A HREF="DE-Emacs-Einsteiger-HOWTO.html#toc3"><IMG SRC="toc.png" ALT="Inhalt"></A>
<HR>
<H2><A NAME="s3">3.</A> <A HREF="DE-Emacs-Einsteiger-HOWTO.html#toc3">Emacs-Modi</A></H2>

<P>Emacs-Modi sind unterschiedliche Verhaltensformen und Charakteristika,
die f&uuml;r unterschiedliche Zwecke an- und ausgeschaltet (oder nat&uuml;rlich
auch angepasst) werden k&ouml;nnen. Es sind Modi, die einen Editor (Emacs)
gleicherma&szlig;en gut verwendbar machen, sowohl Dokumentationen zu
schreiben, in einer Vielzahl von Sprachen (C, C++, Perl, Python, Java
und viele mehr) zu programmieren, eine Homepage zu erstellen, E-Mails
zu verschicken, Usenet News zu lesen, &uuml;ber die eigenen Termine auf dem
Laufenden zu bleiben und sogar Spiele zu spielen.</P>

<P>Emacs-Modi sind einfach Lisp-Code-Bibliotheken, die den Emacs auf
irgendeine Art und Weise erweitern, ver&auml;ndern oder optimieren.</P>


<H2><A NAME="ss3.1">3.1</A> <A HREF="DE-Emacs-Einsteiger-HOWTO.html#toc3.1">Haupt- vs. Untermodi</A>
</H2>

<P>Es gibt im Wesentlichen zwei Moditypen: Haupt- und Untermodi (Major
und Minor Modes). Der
Unterschied ist nicht ganz einfach zu begreifen, wenn man noch nicht
hin und wieder mit einigen von ihnen gearbeitet hat, aber versuchen
wir es mal.</P>

<P>Zu einer bestimmten Zeit kann nur ein Hauptmodus aktiv sein. Es k&ouml;nnen
aber viele Untermodi zu einer bestimmten Zeit aktiv sein. Hauptmodi
tendieren dazu, sprach- oder funktionsspezifisch zu sein, w&auml;hrend es
sich bei Untermodi um kleinere und weniger spezifische Einrichtungen
handelt, die funktions&uuml;bergreifend sind.</P>
<P>Klingt ein bisschen abstrakt, versuchen wir also ein Beispiel. Es gibt
einen Modus, den ich ziemlich oft benutze, um ganz normale Textdateien
zu schreiben. Er hei&szlig;t »text-mode«. Dieser Modus wurde zum Schreiben von
freiem, unformatiertem Text entwickelt, wie einer README Datei. Er
kann W&ouml;rter und Abs&auml;tze identifizieren und stellt im Allgemeinen
sicher, dass das passiert, was ich erwarte, wenn ich die normalen
Navigationstasten verwende.</P>

<P>Wenn ich einen Text als Lesefutter f&uuml;r den menschlichen
Konsum schreibe, will ich nat&uuml;rlich, dass er gut aussieht. Er
sollte einen passenden Zeilenumbruch haben - nach einer angemessenen Anzahl
von Zeichen und so weiter. Um Zeilenumbr&uuml;che zu erm&ouml;glichen, rufe
ich einfach den Untermodus »auto-fill« auf. Dieser Untermodus versucht,
das Richtige zu tun, w&auml;hrend ich vor mich hintippe und das Ende der
Zeile erreiche. Die Tatsache, dass es ein Untermodus ist, bedeutet,
dass er mit einigen unterschiedlichen Hauptmodi arbeiten kann. Meine
Vorstellung davon, was das Richtige ist, wenn ich am Zeilenende bin,
ist eine andere, wenn ich in einem »text-mode« bin oder zum Beispiel im
»java-mode«.  Ich will nicht, dass mein Java-Code umgebrochen wird, als
w&auml;re er ein englischer Text. Aber ich will meine Kommentarbl&ouml;cke in
meinem Java-Code umgebrochen haben. Der »auto-fill« Modus ist smart genug,
das herauszukriegen</P>

<P>Die Entwickler verschiedener Emacs-Modi haben gute Arbeit geleistet, in
dem sie sicher gestellt haben, dass Dinge, die als Untermodi arbeiten
sollten, auch Untermodi sind.</P>

<P>Wenn Sie sich noch einmal die ASCII-Skizze eines Emacs-Bildschirmes
ansehen, werden Sie feststellen, dass die Moduszeile den/die Modus/Modi anzeigt
in dem/denen der Emacs sich befindet. In diesem Fall hie&szlig; der Modus »Lisp
Interaction«, der der Default-Modus ist. Er ist wirklich nur sinnvoll,
wenn man Lisp-Code schreiben will. Aber da fast alles vom Emacs in
Lisp geschrieben ist, warum nicht?</P>


<H2><A NAME="ss3.2">3.2</A> <A HREF="DE-Emacs-Einsteiger-HOWTO.html#toc3.2">Programmier-Modi</A>
</H2>

<P>Zuallererst: der Emacs wurde von einem Programmierer f&uuml;r Programmierer
entwickelt. Es gibt hochwertige Modi f&uuml;r fast jede popul&auml;re
Programmiersprache, die man sich denken kann (und sogar einige nicht ganz so
popul&auml;re). Ich beschreibe nur wenige von ihnen kurz hier.</P>

<P>Die meisten Programmier-Modi teilen einige gemeinsame
Charakteristika. Normalerweise machen sie das Folgende ganz oder
teilweise:</P>

<P>
<UL>
<LI>stellen eine farbliche Hervorhebung der Syntax f&uuml;r die Sprache zur Verf&uuml;gung,
</LI>
<LI>stellen automatischen Texteinzug und Code-Formatierung f&uuml;r die
Sprache zur Verf&uuml;gung,
</LI>
<LI>verf&uuml;gen &uuml;ber eine kontext- (sprach-)sensitive Hilfefunktion,
</LI>
<LI>verf&uuml;gen &uuml;ber ein automatisches Interface mit Ihrem Debugger,
</LI>
<LI>erg&auml;nzen die Menuezeile durch sprachspezifische Menues.
</LI>
</UL>
</P>

<P>Zus&auml;tzlich gibt es einige nicht-sprachspezifische Modi, die Funktionen
unterst&uuml;tzen, die beim Programmieren in vielen Sprachen h&auml;ufig
vorkommen:  Dinge wie eine Schnittstelle zu Ihrer
Versionskontrollsoftware, automatisches Anf&uuml;gen von Kommentaren an
Ihren Code, Erstellen von Makefiles, Aktualisieren von Change Logs und
so weiter.</P>

<P>Wenn man all diese Modi zusammen nimmt und die Reife und Stabilit&auml;t
des Emacs-Codes ber&uuml;cksichtigt, f&auml;llt der Vergleich mit kommerziellen
Integrated Development Environments (IDEs) f&uuml;r Sprachen wie C++ und
Java doch ziemlich gut aus. Und er ist nat&uuml;rlich frei verf&uuml;gbar.</P>



<H3>C/C++/Java</H3>

<P>Da die Syntax von C, C++ und Java ziemlich &auml;hnlich ist, gibt es einen
Emacs-Modus f&uuml;r alle drei Sprachen (aber auch f&uuml;r Objective-C und
IDL). Es ist ein sehr ausgereiftes und vollst&auml;ndiges Paket und in der
Emacs-Distribution enthalten. Dieser Modus wird entweder »cc-mode« oder
»CC Mode« genannt.</P>
<P>F&uuml;r weitere Details oder den Download einer neueren Version, besuchen
Sie 
<BLOCKQUOTE><CODE>
<A HREF="http://www.python.org/emacs/">http://www.python.org/emacs/</A></CODE></BLOCKQUOTE>
</P>

<H3>Perl</H3>

<P>Es gibt eigentlich zwei Modi, um Perl-Code im Emacs zu editieren. Der
erste hei&szlig;t »perl-mode« (wie wohl zu erwarten war) und der zweite
»cperl-mode«. Ich kenne mich in dieser Geschichte nicht gut aus und wei&szlig;
nicht, warum es zwei Modi gibt (steht nicht in der Doku), aber es
scheint so, als ob »perl-mode« der Original-Modus war, um Perl-Code im
Emacs zu editieren. Er scheint &uuml;ber weniger Merkmale als »cperl-mode« zu
verf&uuml;gen und es mangelt ihm an der F&auml;higkeit, einige von Perls
ausgefalleneren Sprachkonstrukten zu erkennen.</P>

<P>Ich pers&ouml;nlich benutze und empfehle »cperl-mode«, der anscheinend
ziemlich aktiv gepflegt wird und genau all die Charakteristika hat,
die ich mir &uuml;berhaupt nur w&uuml;nschen kann.  Die neueste Version findet
man hier:  
<BLOCKQUOTE><CODE>
<A HREF="ftp://ftp.math.ohio-state.edu/pub/users/ilya/emacs">ftp://ftp.math.ohio-state.edu/pub/users/ilya/emacs</A></CODE></BLOCKQUOTE>
</P>

<P>Aber nehmen Sie mich nicht beim Wort. Probieren Sie beide aus und
nehmen Sie den, der am meisten Ihren Bed&uuml;rfnissen entspricht.</P>

<H3>Python</H3>

<P>F&uuml;r Python (eine weitere sehr popul&auml;re Skript-Sprache) gibt es auch einen
Emacs-Modus. So weit ich wei&szlig;, ist er nicht in der GNU Emacs, sondern
in der XEmacs-Distribution enthalten. Er funktioniert aber recht gut in
beiden Editoren.</P>


<P>Sie k&ouml;nnen den »python-mode« von der offiziellen Python-Website
beziehen: 
<BLOCKQUOTE><CODE>
<A HREF="http://www.python.org/emacs/python-mode/">http://www.python.org/emacs/python-mode/</A> 
</CODE></BLOCKQUOTE>
</P>

<H3>Weitere</H3>

<P>Es gibt viele, viele andere Editier-Modi zur Unterst&uuml;tzung von
Programmierern. Diese Modi helfen bei Dingen wie:</P>


<P>
<UL>
<LI>Shell Skripte (<CODE>bash</CODE>, <CODE>sh</CODE>, <CODE>ksh</CODE>, <CODE>csh</CODE> usw)</LI>
<LI><CODE>awk</CODE>, <CODE>sed</CODE>, <CODE>tcl</CODE> usw.</LI>
<LI>Makefiles</LI>
<LI>Change Logs</LI>
<LI>Dokumentation</LI>
<LI>Debugging
</LI>
</UL>
</P>

<P>und vielen weiteren Dingen. Wenn Sie mehr Informationen dazu m&ouml;chten, wie man
an Modi und Add-Ins kommt, gehen Sie zum letzten Abschnitt dieses
Dokuments.</P>

<H2><A NAME="ss3.3">3.3</A> <A HREF="DE-Emacs-Einsteiger-HOWTO.html#toc3.3">Arbeiten als Autor</A>
</H2>

<P>Stellen Sie sich vor, Emacs-Modi sind <EM>nicht</EM> nur auf die beschr&auml;nkt,
die Code schreiben. Leute die Dokumentationen jeglicher Art schreiben,
k&ouml;nnen auch von einer breiten Auswahl an Emacs-Modi profitieren.</P>

<H3>Rechtschreibpr&uuml;fung (»ispell« Modus)</H3>

<P>Autoren vieler Arten von Dokumenten brauchen immer wieder mal eine 
Hilfe bei der  Rechtschreibpr&uuml;fung. Wenn sie GNU <CODE>ispell</CODE>
installiert haben, k&ouml;nnen Sie »M-x ispell« eintippen und den aktuellen
Puffer auf seine Rechtschreibung hin &uuml;berpr&uuml;fen lassen. Wenn <CODE>ispell</CODE> W&ouml;rter
findet, die er nicht kennt, bekommt man eine Liste m&ouml;glicher Varianten
und kann sich eine oder keine aussuchen.  Die Funktion entspricht in
etwa der Rechtschreibkorrektur vieler anderer nicht kostenloser
Softwarepakete.</P>


<H3>HTML (»html-helper-mode«)</H3>

<P>Wenn Sie immer wieder mal oder sogar oft HTML-Dateien schreiben,
m&ouml;chten Sie vielleicht den <CODE>html-helper-mode</CODE> ausprobieren. Man bekommt
ihn unter 
<BLOCKQUOTE><CODE>
<A HREF="http://www.santafe.edu/~nelson/tools/">http://www.santafe.edu/~nelson/tools/</A></CODE></BLOCKQUOTE>
 wie auch die
Dokumentation und was damit zu tun hat.</P>

<P>Wie der Namen schon andeutet, kann der <CODE>html-helper-mode</CODE> viel f&uuml;r die
Leute tun, die noch HTML mit der Hand schreiben, auf die altmodische
Art.</P>


<H3>TeX (»tex-mode«)</H3>

<P>Wenn man Dokumente in TeX schreibt, ist es oft hilfreich, sich den
Emacs zu besorgen, um etwas Farbe hinzuzuf&uuml;gen, um die Backslashes,
Klammern und andere Buchstaben hervorzuheben. Der <CODE>tex-mode</CODE>
macht das f&uuml;r Sie.</P>

<P>Obwohl ich nicht mehr viel direkt in TeX schreibe, hat er sich, als
ich es noch tat, als ziemlich hilfreich dabei erwiesen, meinen
TeX-Code etwas lesbarer zu machen.</P>




<H3>SGML (»sgml-mode«)</H3>

<P>Das Dokument, das sie gerade lesen, wurde in SGML geschrieben und
in das Format konvertiert, in dem sie es lesen. Der
<CODE>sgml-mode</CODE> hat alle Grundlagen f&uuml;r SGML Dokumente: Validierung,
Hervorhebung, Forward-Tag, Backward-Tag, und vieles mehr. Er ist ein
Standardbestandteil des Emacs.</P>



<H2><A NAME="ss3.4">3.4</A> <A HREF="DE-Emacs-Einsteiger-HOWTO.html#toc3.4">Andere Modi</A>
</H2>

<P>Nat&uuml;rlich gibt es noch viele andere praktische Modi, die das Leben
einfacher machen. Hier folgt nur eine kleine Auswahl der popul&auml;ren:</P>


<H3>Versionskontrolle (»vc« Modus)</H3>

<P>Der <CODE>vc</CODE> Modus hat Schnittstellen zu den meisten der popul&auml;ren
Versionskontrollsysteme (RCS, SCCS, CVS). Dies macht es sehr leicht,
Dateien ein- und auszuchecken, Releases zu managen etc. Er ist ein
Standardbestandteil des Emacs und wird in der Emacs-Dokumentation
beschrieben.</P>


<H3>Shell Modus (»shell«)</H3>

<P>Warum zu einem anderen X Window Fenster oder einer virtuellen Konsole
wechseln, nur um ein paar Shell-Kommandos auszuf&uuml;hren?  Machen Sie es
vom Emacs aus und ersparen Sie sich die M&uuml;he :-).</P>

<P>»M-x shell« ruft eine Shell innerhalb eines Emacs-Puffers auf. Mit
diesem Puffer kann man die meisten Sachen machen, die man auch mit
einem normalen Shell tun k&ouml;nnte (au&szlig;er dem Betrieb von Programmen, die
den ganzen Bildschirm einnehmen, wie <CODE>vi</CODE> oder <CODE>pine</CODE>), weil der Emacs
hinter den Kulissen mit der wirkichen Shell kommuniziert.</P>

<P>Auch dies ist ein Standardbestandteil des Emacs, so dass man ihn in
der Emacs-Dokumentation dokumentiert findet.</P>

<H3>Telnet und FTP (»telnet« und »ftp« Modi)</H3>

<P>Warum zu einem anderen X Window Fenster oder einer virtuellen Konsole
wechseln, nur um Telnet und FTP auszuf&uuml;hren?  Machen Sie es vom Emacs
aus und ersparen Sie sich die M&uuml;he.(Erkennen Sie schon das Muster ;-)?</P>

<P>Genau wie eine Shell im Emacs zu betreiben, kann man von ihm aus mit
Telnet und FTP arbeiten. Versuchen Sie »M-x telnet« oder »M-x ftp«, um es
selbst auszuprobieren. Lesen Sie die Dokumentation wegen all der blutr&uuml;nstigen
Details.</P>


<H3>Handbuch (»man« Modus)</H3>

<P>Warum zu einem anderen X Window Fenster oder einer virtuellen Konsole
wechseln, nur um eine Manual Page zu lesen? Machen Sie es vom Emacs aus
und ersparen Sie sich die M&uuml;he. Ich verspreche, ich h&ouml;re jetzt auf.</P>


<P>Genau wie beim Betreiben der Shell innerhalb des Emacs, kann man vom
Emacs aus Manual Pages lesen. Versuchen Sie »M-x man«  um es selbst
auszuprobieren. Lesen Sie die Dokumentation, wenn Sie weitere Informationen m&ouml;chten.</P>


<H3>Ange-FTP</H3>

<P>Um die <CODE>ange-ftp</CODE> Dokumentation zu zitieren:</P>

<P>
<BLOCKQUOTE>
Dieses Paket will den Zugang zu Dateien und Verzeichnissen f&uuml;r die
Nutzung von FTP vom GNU Emacs aus so einfach und transparent wie
m&ouml;glich machen.  Ein Teil der gebr&auml;uchlichen Dateiarbeitsvorg&auml;nge ist
f&uuml;r die Interaktion mit FTP erweitert worden.
</BLOCKQUOTE>
</P>

<P>Dies bedeutet, dass man Dateien auf weit entfernten Rechnern behandeln
kann, als w&auml;ren sie lokal. Will man also eine Datei auf einem anderen
Computer editieren, muss man nur den Emacs anweisen, sie zu &ouml;ffnen (in
dem man eine etwas andere Pfadsyntax benutzt) und er k&uuml;mmert sich um
alle Details beim Login und dem Holen der Datei. Dann, wenn die Datei mit
»C-x C-s« gespeichert wird, nimmt <CODE>ange-ftp</CODE> die Speicherung vor und
schreibt die Datei zur&uuml;ck auf den weit entfernten Rechner.</P>

<P>Die etwas andere Pfadsyntax geht so: Eine <CODE>myfile</CODE> benannte Datei in
einem <CODE>user</CODE> Verzeichnis auf einem <CODE>my.host.org</CODE> benannten Rechner
kann durch »C-x f« ge&ouml;ffnet werden:</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
/user@my.host.org:~user/myfile
</PRE>
</CODE></BLOCKQUOTE>
</P>

<P>Auch dies ist ein Standardbestandteil der Emacs-Distribution, sodass
man es in der Emacs Dokumentation dokumentiert findet.</P>


<P>Meinen Dank an Etienne Grossman 
(<CODE>
<A HREF="mailto:etienne@anonimo.isr.ist.utl.pt">etienne@anonimo.isr.ist.utl.pt</A></CODE>) f&uuml;r das obige Beispiel.</P>

<HR>
<A HREF="DE-Emacs-Einsteiger-HOWTO-4.html"><IMG SRC="next.png" ALT="Weiter"></A>
<A HREF="DE-Emacs-Einsteiger-HOWTO-2.html"><IMG SRC="prev.png" ALT="Zurück"></A>
<A HREF="DE-Emacs-Einsteiger-HOWTO.html#toc3"><IMG SRC="toc.png" ALT="Inhalt"></A>
</BODY>
</HTML>