Improvements
[infodrom.org/oldenburg.linux.de] / src / Service / emacs.wml
1 #include "LUGO.style"
2
3 <PAGE name="Emacs">
4
5 <H3>Emacs als Entwicklungsumgebung</H3>
6
7 Der Emacs ist wohl in jeder GNU/Linux-Distribution enthalten und meist
8 vorkonfiguriert. Neben dem eigentlichen Editor enthält das Paket
9 eine Reihe von Erweiterungen (in Emacs-LISP geschrieben), mit deren
10 Hilfe sich Emacs hervorragend als Entwicklungsumgebung für die C/C++
11 Programmierung eignet.<P>
12
13 Im folgenden sind die wohl wichtigsten Tastaturbefehle und Arbeitsweisen
14 zusammengefaßt, die man für diesen Verwendungszweck braucht.<P>
15
16 <EM>
17 M-x steht dabei für ALT-x bzw. für ESC-x, C-x für Control-x
18 </EM><P>
19
20 <H4>Definitionen und Vorbereitung</H4>
21
22 Ein <EM>Puffer</EM> ist ein Speicherbereich von Emacs, der Dateiinhalte, Ausgaben
23 etc. aufnimmt. Jeder Puffer hat einen Namen, der Name eines Dateipuffers ist
24 gleich dem Dateinamen. Es können zwei Puffer gleichzeitig angezeigt werden.
25 Besäße der Emacs eine GUI Oberfläche, würde man wohl von einem Fenster
26  sprechen.<P>
27
28 Der <EM>Ringpuffer</EM> nimmt als Minipuffer beim Löschen von Blöcken
29 diese auf und kopiert den Inhalt auf Wunsch.
30 Der Start des Compilers unter Emacs setzt eine <EM>Makefile</EM> vorraus,
31 da der Compiler über make -k gestartet wird. Eine minimale Makefile für
32 die Datei demo.cpp ist<P>
33
34 <PRE>
35 demo:
36 (TAB)c++ -Wall -o a.out demo.cpp
37 </PRE><P>
38
39 wobei (TAB) für ein Tabulatorzeichen steht. Mit einem kleinen bash-Skript
40 lassen sich Mini-Makefiles auch automatisch erzeugen:<P>
41
42 Datei cppemacs (mit chmod ausführbar setzen)
43
44 <PRE>
45
46 #!/bin/sh
47 #Compileroptionen für normale Compilierung
48 cflags="-Wall"
49 #Compileroptionen für GNU Debugger
50 #cflags="-g -O0"
51 echo $1: > Makefile
52 echo -e "\tc++ $cflags -o a.out $1.cpp" >> Makefile
53 emacs $1.cpp
54
55 </PRE><P>
56 Aufruf mit cppemacs Sourcedatei OHNE die Extension .cpp
57
58 <P>
59
60 <HR>
61 <H4>Allgemeine Befehle</H4>
62 <PRE>
63 Emacs beenden                                   C-x C-c
64
65 Aktuellen Puffer speichern                      C-x C-s
66 Datei in neuen Puffer laden                     C-x C-f
67 Datei in aktuellen Puffer einfügen              C-x i
68
69 Zeilenanfang                                    C-a
70 Zeilenende                                      C-e
71 </PRE><P>
72
73 <HR>
74 <H2>Puffer</H2>
75 <PRE>
76 Puffer löschen                                  C-x k
77
78 Zum anderen angezeigten Puffer wechseln         C-x o
79 Aktueller Puffer auf volle Größe                C-x 1
80
81 Namen aller Puffer anzeigen                     C-x C-b
82 Zum Puffer name wechseln                        C-x b name
83 </PRE><P>
84
85 <HR>
86 <H4>Blockbefehle</H4>
87 <PRE>
88 Blockanfang                                     C-LEERTASTE
89 Blockende                                       Cursorposition
90
91 Block in Ringpuffer löschen                     C-w
92 Block in Ringpuffer kopieren                    M-w
93 Block aus Ringpuffer an Cursorpos. einfügen     C-y
94 </PRE><P>
95
96 <HR>
97 <H4>Der c-mode und c++-mode</H4>
98 <P>
99 Diese Modi führen während der Eingabe des Quellcodes bereits
100 einen einfachen Syntaxcheck durch. Klammerebenen werden überwacht
101 und die zu einer schließenden Klammer gehörende offene Klammer
102 angezeigt und Klammerverwechselungen bemerkt. Logische Blöcke
103 werden erkannt und Zeilen mit der TAB Taste automatisch eingerückt.
104 Dabei werden {} Blöcke, if, while, for, switch, case etc erkannt.<P>
105
106 <PRE>
107 Laden des c-  Modus                             M-x c-mode
108 Laden des c++-Modus                             M-x c++-mode
109 Zeile unter Cursor einrücken                    TAB-Taste
110 </PRE><P>
111
112 <H4>Compilieren unter Emacs</H4>
113
114
115         Den als Vorgabe erscheinenden Befehl make -k kann man
116         mit der Eingabetaste bestätigen (siehe oben). Die Aus-
117         gaben des Compilers werden in einen eigenen Puffer ge-
118         schrieben.
119
120 <PRE>
121 Compilerlauf starten                            M-x compile
122
123 In den Compile- Puffer wechseln                 C-x o
124 Cursor auf eine Fehlermeldung plazieren         Pfeiltasten
125 Sourcezeile zur Fehlermeldung anzeigen          C-c C-c
126 Nächste Fehlermeldung                           M-n
127 Vorhergehende Fehlermeldung                     M-p
128 Im Sourcepuffer: Nächster Fehler                C-x `
129         (Shift-"Taste-neben-Backspace"!)
130 </PRE><P>
131
132 <H4>GNU Debugger unter Emacs</H4>
133 <P>
134 Damit der GNU-Debugger richtig arbeitet, muß das Programm mit den
135 Optionen <EM>-g -O0</EM> ("Oh null") übersetzt werden.<P>
136 Für den gdb wird ein eigener Puffer geöffnet, in dem die gdb- Kommandos
137 benutzt werden können.<P>
138
139 <PRE>
140 GNU Debugger und Programm a.out starten         M-x gdb a.out
141 Breakpoint an einer Stelle im Source setzen     C-x LEERTASTE
142 Breakpoint löschen                              C-x C-a C-d
143 </PRE>
144
145 </PAGE>
146
147 # Local variables:
148 # mode: html
149 # mode: auto-fill
150 # mode: iso-accents
151 # end: