/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ü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 über den
Lisp-Code. Man kann Variablen verändern, die Einfluss darauf nehmen, wie
der Emacs arbeitet oder man kann dem Emacs neue Funktionen hinzufü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äre Anpassung</A>
</H2>
<P>Das Experimentieren mit der Emacs-Anpassung möchten Sie wahrscheinlich
so gestalten, dass sie temporär bleibt. Wenn man was ganz schrecklich
Falsches macht, braucht man nur »C-x C-c« einzugeben, um den Emacs zu
schließen und wieder zu starten. Sobald Sie herausgefunden haben, welche
der Veränderungen Sie gerne für immer hätten, können Sie sie zur eigenen
<CODE>.emacs</CODE>-Datei hinzufügen, so dass sie bei jedem Start von Emacs geladen
werden. Dies wird im nächsten Abschnitt besprochen.</P>
<H3>Variablen-Zuweisung</H3>
<P>Die einfachsten Anpassungen erreicht man durch das Ä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 übergeben mö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 - ü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ählen. Der
Emacs macht das gleiche, wenn die Variable des »transient-mark-mode«
auf einen nicht-»nil« Wert gesetzt wurde.</P>
<P>Was fü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ö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ür die vollstä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ä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ändige Name für Sie
ergä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ö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ü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ückgabewert des Ausdrucks, den Sie ausgewertet haben.</P>
<P>Nur um zu zeigen, dass es funktioniert - tippen Sie einen oder zwei Sä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ühren.</P>
<H3>Zuordnung von Dateinamen</H3>
<P>Sie können den Emacs so konfigurieren, dass er automatisch etwas tut,
wenn Sie eine Datei eines bestimmten Typs öffnen (so wie einige GUIs
automatisch eine bestimmte Applikation starten, wenn man auf das Icon
klickt). Zum Beispiel, möchte ich vielleicht,
dass der Emacs jedes Mal automatisch zum Textmodus
wechselt, wenn ich eine Datei mit einer <CODE>.txt</CODE>-Endung öffne. Nun, das
passiert bereits :-). Sagen wir also dem Emacs, dass er in den
Textmodus geht, wenn Sie eine Datei namens <CODE>README</CODE> ö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üssen (es wü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ält. Jedes Paar enthält einen regulären Ausdruck
und einen Emacs-Modus-Namen. Wenn eine Datei, die Sie öffnen, dem
regulären Ausdruck entspricht (in diesem Fall, die Zeichenkette »README«),
startet der Emacs den Modus, den Sie festgelegt haben.</P>
<P>Die merkwürdige Syntax oben ergibt sich deshalb, weil man im Grunde
genommen ein weiteres Paar an die Modusliste anfügt. Sie würden
nicht wollen, etwas der »auto-mode-alist« zuzuordnen, ohne sicher zu
stellen, dass die Werte, die sie bereit hä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 öffne, die auf <CODE>.html</CODE> oder <CODE>.htm</CODE> endet, würde ich
folgendes meiner <CODE>.emacs</CODE> Datei hinzufü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ö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ätte, möchte
man wahrscheinlich ein paar Dinge dauerhaft anpassen (oder mindestens
so lange, bis man seine Meinung geändert hat). Wenn Sie täglich mit
dem Emacs arbeiten, werden Sie auch feststellen, das die <CODE>.emacs</CODE>-Datei
mit der Zeit immer größ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ü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öchten, in Ihre <CODE>.emacs</CODE>-Datei schreiben und das
schließ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ßte, wie ich Hilfe finden konnte
und was weiß ich). Deshalb suchte ich nach einem Weg, sie
auszuschalten.</P>
<P>Zur Übung versuchen Sie eine eigene <CODE>.emacs</CODE>-Datei zu erstellen
und fügen Sie diese Zeile an. Dann schließen Sie den Emacs und starten ihn
wieder. Die Willkommensmeldung sollte nicht mehr erscheinen.</P>
<P>Oft, wenn Sie etwas über einen Emacs-Modus (oder ein Paket) lesen, wird in
der Dokumentation vorgeschlagen, einen Code an die eigene <CODE>.emacs</CODE>-Datei
anzuhä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ält einige Themen, die sich auf
<CODE>.emacs</CODE>-Dateien beziehen und die Sie möglicherweise nü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ärer wurde und sich kontinuierlich entwickelt hat,
hat vielleicht irgendwer einmal gesagt: »es muß fü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ö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änderungen vornehmen, in dem Sie <CODE>customize</CODE> benutzen,
speichert der Emacs diese Veränderungen in Ihrer <CODE>.emacs</CODE>-Datei. Das ist
ziemlich praktisch, weil Sie leicht die Veränderungen einsehen und verändern
können, die er für Sie gemacht hat.</P>
<P>Ich benutze das Customize Interface nicht, deshalb kann ich nicht viel
mehr darü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önnen die ursprü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 ü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önnen das, was sie gerade eingegeben haben, in
<CODE>/etc/X11/Xresources/emacs</CODE>
schreiben und bekommen dann die gleichen schönen Farben, die sie
bekommen hätten, wenn Sie RedHat benutzen wü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>
|