This file is indexed.

/usr/share/doc/HOWTO/de-html/DE-Emacs-Einsteiger-HOWTO-4.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
<!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: Den Emacs anpassen</TITLE>
 <LINK HREF="DE-Emacs-Einsteiger-HOWTO-5.html" REL=next>
 <LINK HREF="DE-Emacs-Einsteiger-HOWTO-3.html" REL=previous>
 <LINK HREF="DE-Emacs-Einsteiger-HOWTO.html#toc4" REL=contents>
</HEAD>
<BODY>
<A HREF="DE-Emacs-Einsteiger-HOWTO-5.html"><IMG SRC="next.png" ALT="Weiter"></A>
<A HREF="DE-Emacs-Einsteiger-HOWTO-3.html"><IMG SRC="prev.png" ALT="Zurück"></A>
<A HREF="DE-Emacs-Einsteiger-HOWTO.html#toc4"><IMG SRC="toc.png" ALT="Inhalt"></A>
<HR>
<H2><A NAME="DE-Emacs-Einsteiger-HOWTO-customizing_emacs"></A> <A NAME="s4">4.</A> <A HREF="DE-Emacs-Einsteiger-HOWTO.html#toc4">Den Emacs anpassen</A></H2>

<P>Praktisch die gesamte Emacs-Anpassung geschieht &uuml;ber den
Lisp-Code. Man kann Variablen ver&auml;ndern, die Einfluss darauf nehmen, wie
der Emacs arbeitet oder man kann dem Emacs neue Funktionen hinzuf&uuml;gen
oder bereits existierende Funktionen aufheben und durch eigene
ersetzen.</P>


<H2><A NAME="ss4.1">4.1</A> <A HREF="DE-Emacs-Einsteiger-HOWTO.html#toc4.1">Tempor&auml;re Anpassung</A>
</H2>

<P>Das Experimentieren mit der Emacs-Anpassung m&ouml;chten Sie wahrscheinlich
so gestalten, dass sie tempor&auml;r bleibt. Wenn man was ganz schrecklich
Falsches macht, braucht man nur »C-x C-c« einzugeben, um den Emacs zu
schlie&szlig;en und wieder zu starten. Sobald Sie herausgefunden haben, welche
der Ver&auml;nderungen Sie gerne f&uuml;r immer h&auml;tten, k&ouml;nnen Sie sie zur eigenen
<CODE>.emacs</CODE>-Datei hinzuf&uuml;gen, so dass sie bei jedem Start von Emacs geladen
werden. Dies wird im n&auml;chsten Abschnitt besprochen.</P>


<H3>Variablen-Zuweisung</H3>

<P>Die einfachsten Anpassungen erreicht man durch das &Auml;ndern des Wertes
einer Variablen im Emacs.  Der Lisp-Code, um dies zu tun, sieht so aus:</P>

<P>
<BLOCKQUOTE><CODE>
<PRE>
(setq variable-name new-value)
</PRE>
</CODE></BLOCKQUOTE>
</P>





<P>Wobei »variable-name« der Name der Variablen ist und
»new-value« der Wert, den Sie der Variablen  &uuml;bergeben m&ouml;chten. Im
Lisp-Jargon bindet man
eine Variable an einen Wert. Die »setq«
Funktion in Lisp entspricht
den Bestimmungsoperatoren (meist »=«) in anderen Programmiersprachen.</P>

<P>Beachten Sie: Ich gehe hier - um der Einfachheit willen -  &uuml;ber viele
Details hinweg. Es kann auch sein, dass man mich oder andere 
beim Benutzen der Lisp-Funktionen »set« und sogar »setq-default«
sieht. Wer wirklich neugierig ist, sollte sie einfach in einer Emacs Lisp
Referenz nachsehen.</P>

<P>Betrachten wir eine Zeile aus meiner <CODE>.emacs</CODE>-Datei:</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
(setq-default transient-mark-mode t)
</PRE>
</CODE></BLOCKQUOTE>
</P>

<P>Die Variable »transient-mark-mode« steuert, ob eine Region hervorgehoben
wird, wenn ich sie markiere oder nicht. Bei vielen GUI Applikationen
wird sie invertiert oder einer anderen Farbe hervorgehoben, wenn
man klickt und die Maus zieht, um einen Textbereich auszuw&auml;hlen. Der
Emacs macht das gleiche, wenn die Variable des »transient-mark-mode«
auf einen nicht-»nil« Wert gesetzt wurde.</P>


<P>Was f&uuml;r einen Wert?</P>

<P>Okay. Kurzer Exkurs. Die meisten Programmiersprachen unterscheiden
zwischen wahr/falsch Werten. In C/C++ wird ein Wert als wahr
betrachtet, wenn er ein Wert ungleich Null ist. In Perl ist ein non-null
oder non-zero Wert wahr. In Lisp, existiert die gleiche Idee, aber die
Namen und Symbole sind andere. </P>

<P>Wahr wird gew&ouml;hnlich als »t« geschrieben und falsch (oder Null) als
»nil«. Wie in anderen Sprachen, wird jedoch jeder nicht-»nil« Wert als wahr
betrachtet.</P>

<P>F&uuml;r die vollst&auml;ndige Beschreibung dessen, was »transient-mark-mode« tut,
kann man die Online-Hilfe benutzen. Tippen Sie »C-h v« oder »M-x
describe-variable« und dann »transient-mark-mode«. Wenn man faul ist wie
ich, kann man sich durch Gebrauch der »Tab«-Taste die 
Variablennamen-Erg&auml;nzung zu Nutze machen. Tippen Sie einen Teil des 
Variablennamens ein und schlagen Sie
die »Tab«-Taste an. Wenn genug eingetippt wurde, sodass der Emacs es
eindeutig identifizieren kann, wird der vollst&auml;ndige Name f&uuml;r Sie
erg&auml;nzt.</P>



<P>Eine weitere Variable, die oft gesetzt wird, ist »fill-column«. Sie sagt
dem Emacs, wie weit der Bildschirm beim Zeilenumbruch (und der
»auto-fill-mode« respektiert diesen Wert) sein sollte. Um mal einen
absurden Wert einzugeben, k&ouml;nnte man eintippen:</P>

<P>
<BLOCKQUOTE><CODE>
<PRE>
(setq fill-column 20)
</PRE>
</CODE></BLOCKQUOTE>
</P>

<P>Aber dann passiert eigentlich nichts. Man muss den Emacs anweisen, den
Ausdruck, den man eingetippt hat, auszuwerten. Um das zu tun,
stellen Sie den Cursor an das Ende des Ausdrucks und tippen »C-x C-e«,
dies ruft die Funktion »eval-last-sexp« auf (f&uuml;r den Fall, dass es Sie
interessiert). Wenn Sie das tun, werden sie feststellen, dass
»20« (oder welchen Wert auch immer sie genommen haben) im Mini-Puffer am
unteren Rand des Bildschirms wiedergegeben wird. Dies ist nur
der R&uuml;ckgabewert des Ausdrucks, den Sie ausgewertet haben.</P>


<P>Nur um zu zeigen, dass es funktioniert - tippen Sie einen oder zwei S&auml;tze
ein. Wenn Sie den »auto-fill-mode« eingeschaltet haben (haben sie
wahrscheinlich nicht), werden Sie den Zeilenumbruch nach dem 20. Zeichen
erleben. Oder, wenn Sie irgend etwas eingegeben haben, tippen Sie
»M-q«, es ruft die Funktion »fill-paragraph« auf. Sie wird dann den
Zeilenumbruch ausf&uuml;hren.</P>


<H3>Zuordnung von Dateinamen</H3>

<P>Sie k&ouml;nnen den Emacs so konfigurieren, dass er automatisch etwas tut,
wenn Sie eine Datei eines bestimmten Typs &ouml;ffnen (so wie einige GUIs
automatisch eine bestimmte Applikation starten, wenn man auf das Icon
klickt). Zum Beispiel, m&ouml;chte ich vielleicht,
dass der Emacs jedes Mal automatisch zum Textmodus
wechselt, wenn ich eine Datei mit einer <CODE>.txt</CODE>-Endung &ouml;ffne. Nun, das
passiert bereits :-). Sagen wir also dem Emacs, dass er in den
Textmodus geht, wenn Sie eine Datei namens <CODE>README</CODE> &ouml;ffnen.</P>

<P>
<BLOCKQUOTE><CODE>
<PRE>
(setq auto-mode-alist (cons '("README" . text-mode) auto-mode-alist))
</PRE>
</CODE></BLOCKQUOTE>
</P>

<P>Huh?</P>

<P>Ohne tief in die Lisp-Programmierung einzutauchen, die Sie wirklich
nicht kennen m&uuml;ssen (es w&uuml;rde Ihnen aber nicht weh tun, sie zu lernen),
lassen Sie mich einfach sagen, dass die Variable »auto-mode-alist« eine
Liste von Paaren enth&auml;lt. Jedes Paar enth&auml;lt einen regul&auml;ren Ausdruck
und einen Emacs-Modus-Namen. Wenn eine Datei, die Sie &ouml;ffnen, dem
regul&auml;ren Ausdruck entspricht (in diesem Fall, die Zeichenkette »README«),
startet der Emacs den Modus, den Sie festgelegt haben.</P>

<P>Die merkw&uuml;rdige Syntax oben ergibt sich deshalb, weil man im Grunde
genommen ein weiteres Paar an die Modusliste anf&uuml;gt. Sie w&uuml;rden
nicht wollen, etwas der »auto-mode-alist« zuzuordnen, ohne sicher zu
stellen, dass die Werte, die sie bereit h&auml;lt, nicht verloren gehen.</P>

<P>Und wenn ich wollte, dass der Emacs jedes Mal automatisch zum
(<CODE>html-helper-mode</CODE> wechselt, wenn ich eine
Datei &ouml;ffne, die auf <CODE>.html</CODE> oder <CODE>.htm</CODE> endet, w&uuml;rde ich
folgendes meiner <CODE>.emacs</CODE> Datei hinzuf&uuml;gen:</P>

<P>
<BLOCKQUOTE><CODE>
<PRE>
(setq auto-mode-alist (cons '("\\.html$" . html-helper-mode) auto-mode-alist))
(setq auto-mode-alist (cons '("\\.htm$" . html-helper-mode) auto-mode-alist))
</PRE>
</CODE></BLOCKQUOTE>
</P>

<P>Die M&ouml;glichkeiten sind wirklich unbegrenzt.</P>

<H2><A NAME="ss4.2">4.2</A> <A HREF="DE-Emacs-Einsteiger-HOWTO.html#toc4.2">Der Umgang mit der ».emacs«-Datei</A>
</H2>

<P>Wenn man etwas Zeit mit dem Emacs verbracht hat und eine grundlegende
Vorstellung davon hat, welche Vorteile eine Anpassung h&auml;tte, m&ouml;chte
man wahrscheinlich ein paar Dinge dauerhaft anpassen (oder mindestens
so lange, bis man seine Meinung ge&auml;ndert hat). Wenn Sie t&auml;glich mit
dem Emacs arbeiten, werden Sie auch feststellen, das die <CODE>.emacs</CODE>-Datei
mit der Zeit immer gr&ouml;&szlig;er wird. Das ist eine gute Sache, denn es
bedeutet, das Sie herausgefunden haben, wie Sie den Emacs dazu bringen
so zu arbeiten, wie Sie wollen. Es ist eine Schande, dass viele
Softwareprodukte Sie das nicht tun lassen.</P>


<P>F&uuml;r den Fall, das Sie es noch nicht erraten haben, jedes Mal, wenn der
Emacs gestartet wird, sucht er eine <CODE>.emacs</CODE> benannte Datei in Ihrem
Homeverzeichnis. Sie sollten Lisp-Code, den Sie automatisch laufen
lassen m&ouml;chten, in Ihre <CODE>.emacs</CODE>-Datei schreiben und das 
schlie&szlig;t die Art
von Anpassung  ein, die hier gerade behandelt wurde.</P>


<P>Ein weiteres Beispiel aus meiner <CODE>.emacs</CODE>-Datei:</P>

<P>
<BLOCKQUOTE><CODE>
<PRE>
(setq inhibit-startup-message t)
</PRE>
</CODE></BLOCKQUOTE>
</P>


<P>Die Variable »inhibit-startup-message« steuert, ob der Emacs die
Willkommensmeldung anzeigt, wenn er startet. Nach einer Weile war ich
es leid, sie zu betrachten (da ich wu&szlig;te, wie ich Hilfe finden konnte
und was wei&szlig; ich). Deshalb suchte ich nach einem Weg, sie
auszuschalten.</P>

<P>Zur &Uuml;bung versuchen Sie eine eigene <CODE>.emacs</CODE>-Datei zu erstellen
und f&uuml;gen Sie diese Zeile an. Dann schlie&szlig;en Sie den Emacs und starten ihn
wieder. Die Willkommensmeldung sollte nicht mehr erscheinen.</P>

<P>Oft, wenn Sie etwas &uuml;ber einen Emacs-Modus (oder ein Paket) lesen, wird in
der Dokumentation vorgeschlagen, einen Code an die eigene <CODE>.emacs</CODE>-Datei
anzuh&auml;ngen, um den Modus oder das Paket auf eine bestimmte Art und
Weise arbeiten zu lassen.</P>

<P>Die GNU Emacs FAQ (»C-h F«) enth&auml;lt einige Themen, die sich auf
<CODE>.emacs</CODE>-Dateien beziehen und die Sie m&ouml;glicherweise n&uuml;tzlich finden.</P>



<H2><A NAME="ss4.3">4.3</A> <A HREF="DE-Emacs-Einsteiger-HOWTO.html#toc4.3">Das customize-Paket</A>
</H2>

<P>Als der Emacs popul&auml;rer wurde und sich kontinuierlich entwickelt hat,
hat vielleicht irgendwer einmal gesagt: »es mu&szlig; f&uuml;r Einsteiger einen besseren
Weg geben, um ihren Emacs anzupassen«. Und <CODE>customize</CODE> wurde geboren.</P>

<P>Mit <CODE>customize</CODE> gibt es eine intuitivere M&ouml;glichkeit, Teile des Emacs
anzupassen. Um es auszuprobieren, sehen Sie sich entweder das
<CODE>Customize</CODE>-Untermenue in Ihrem <CODE>Help</CODE> Menue an, 
oder tippen »M-x customize«.</P>

<P>Customize unterteilt die Anpassung in sinnvolle Gruppen wie
»Editieren«, »Programmieren«, »Dateien« und so weiter. Einige Gruppen
enthalten Untergruppen.</P>


<P>Wenn Sie Ver&auml;nderungen vornehmen, in dem Sie <CODE>customize</CODE> benutzen,
speichert der Emacs diese Ver&auml;nderungen in Ihrer <CODE>.emacs</CODE>-Datei. Das ist
ziemlich praktisch, weil Sie leicht die Ver&auml;nderungen einsehen und ver&auml;ndern
k&ouml;nnen, die er f&uuml;r Sie gemacht hat.</P>

<P>Ich benutze das Customize Interface nicht, deshalb kann ich nicht viel
mehr dar&uuml;ber sagen.</P>


<H2><A NAME="ss4.4">4.4</A> <A HREF="DE-Emacs-Einsteiger-HOWTO.html#toc4.4">X Window</A>
</H2>

<P>Wie jede gut erzogene X Applikation respektiert der Emacs Ihre X
Ressourcen. Das bedeutet, Sie k&ouml;nnen die urspr&uuml;nglichen Farben,
Geometrie und andere X-spezifischen Dinge steuern, genau wie bei
<CODE>xterm</CODE>, <CODE>nxterm</CODE> oder was auch immer.</P>

<P>Hier ist der relevante Teil meiner <CODE>~/.Xdefaults</CODE> Datei:</P>

<P>
<BLOCKQUOTE><CODE>
<PRE>
emacs*Background: DarkSlateGray
emacs*Foreground: Wheat
emacs*pointerColor: Orchid
emacs*cursorColor: Orchid
emacs*bitmapIcon: on
emacs*font: fixed
emacs.geometry: 80x25
</PRE>
</CODE></BLOCKQUOTE>
</P>

<P>Lesen Sie die Manual Page zu <CODE>X</CODE>, um mehr Einzelheiten &uuml;ber X Ressourcen
zu erfahren.</P>



<P>Chris Gray (<CODE>
<A HREF="mailto:cgray4@po-box.mcgill.ca">cgray4@po-box.mcgill.ca</A></CODE>)
stellt auch fest:</P>
<P>
<BLOCKQUOTE>
Debian benutzt anscheinend die <CODE>~/.Xdefaults</CODE> nicht. Wie dem
auch sei, Debian-Leute k&ouml;nnen das, was sie gerade eingegeben haben, in
<CODE>/etc/X11/Xresources/emacs</CODE> 
schreiben und bekommen dann die gleichen sch&ouml;nen Farben, die sie
bekommen h&auml;tten, wenn Sie RedHat benutzen w&uuml;rden.
</BLOCKQUOTE>
</P>

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