Emacs-Workshop
Table of Contents
1 2010-03-22 erster_tag
1.1 Organisatorisches
- reicht der Platz? => ja
- passt der Termin / die Uhrzeit? => Beginn verschoben auf 19:00
-
2010-04-05 ist Ostermontag, ist das gut oder schlecht?
(3-4 Leute wuerden kommen)
1.2 Vorstellung
Arbeite seit ca. 2000 als Systemadministrator und Programmierer (Web).
Benutze GNU Emacs ernsthaft seit 2001 (Version 21), davor sporadisch
bzw. einen Emacs-Klon (jove).
Ich benutze Emacs
-
zum Programmieren (Ruby/Rails, HTML, CSS, JavaScript; PHP, Python,
C, Common Lisp und natuerlich Emacs Lisp) -
fuer umfangreichere Sysadmin-Aufgaben (z.B. Apache-Konfiguration
aufraeumen) - fuer Email, News und Chat (IRC, Jabber, IM via Bitlbee)
- fuer Notizen und Vortraege (Org-mode)
- fuer Artikel und Briefe (LaTeX mit AucTeX)
1.3 Warum mache ich diesen Workshop?
- andere fuer Emacs begeistern
-
Einstieg in Emacs kann schwierig sein, denn
-
Emacs hat eine lange Geschichte, viele Begrifflichkeiten sind
anders als erwartet. -
entgegen den Erwartungen laesst sich nicht alles ueber das GUI
ansprechen, die Konfiguration ueber das “customize”-System ist
verwirrend und unuebersichtlich. -
Im Kern arbeitet ein Skript-Interpreter, die Konfiguration ist
Teil der Skripte, die laufen => Konfigurationsfehler fuehren zu
Laufzeitfehlern, die ohne Grundkenntnisse in Emacs Lisp
verwirrend sein koennen.
-
Emacs hat eine lange Geschichte, viele Begrifflichkeiten sind
Wenn ich manches frueher gewusst haette, waere mein Weg zu Emacs
leichter gewesen – ihr sollt es besser haben.
1.4 Und ihr?
Wer von euch programmiert?
…fuer Geld?
Spielt gern mit Linux/freier Software herum?
…fuer Geld?
Welches OS benutzt ihr hauptsaechlich?
Welchen Editor?
- Emacs
- vi(m)
- Textmate / jEdit
- Eclipse / Netbeans / IDEA / VS
- notepad / gedit / nano
- scite / notepad++ / kate
Konsole oder GUI?
Benutzt ihr Emacs schon, wie gut kennt ihr ihn?
- gar nicht
- natuerlich hab ich das Tutorial gemacht!
- hab ich mal ausprobiert
- benutze ich gelegentlich, Grundkenntnisse
- benutze ich viel, zeig mir Tricks
1.4.1 Themen
- Konfiguration mit und ohne “Customize”
- Emacs-Extensions installieren
- Lisp-Grundlagen
- Emacs Lisp im Detail
- Tools fuer Programmierer (Versionskontrolle, Syntax-Check, Debugger, Codebrowser )
- Emacs als Mailprogramm (gnus)
- LaTeX (AucTeX)
- Terminplaner und mehr (Org-Mode)
- Zugriff auf entfernte Dateien (TRAMP)
- Filemanager (Dired)
1.5 Installation
Hat alles geklappt? Versionen < 22, 22.x, 23.1, > 23.1?
X oder Konsole?
- X hat mehr Farben (besseres Syntax-Highlighting)
- X kann mehr Tastenkombinationen unterscheiden
- Konsole und Backspace funktioniert nicht? => stty erase ‘^?’
- Maus/Scrollrad funktionieren auch in der Konsole
1.6 Hilfesystem
1.6.1 Hilfesystem “Info”
“Info” ist ein fruehes Hypertext-System, aelter und simpler als HTML
aber leistungsfaehiger als *NIX “manpages”.
Es ist das Dokumentationsformat des GNU-Projektes
Help > Read the Emacs Manual
“h” ruft das Info-Tutorial auf. Es lohnt sich!
Das Emacs-Handbuch ist euer Freund, es ist ausfuehrlich, hilfreich,
gut geschrieben und passt immer zur installierten Version. Englisch
sollte man aber schon verstehen.
Entweder machen wir das zusammen oder ich helfe noch bei
Installationsproblemen und fassen das kurz zusammen.
Unter Debian ist die Dokumentation in einem separaten Paket zu finden,
wegen Konflikten zwischen der GFDL und den DFSG absurderweise in
“non-free”. Siehe dazu auch http://www.emacswiki.org/emacs/EmacsManualLicense
- Die wichtigsten Tastenbindungen fuer Info
SPACE, BackSpace vorwaerts/rueckwaerts blaettern n, p naechster/vorheriger Knoten u, ^ einen Knoten hoch m, 0-9 Knoten aus Menue auswaehlen (rote Markierungen in 3er-Schritten) l, r History zurueck, vor ("left", "right") i Index t zum Anfangsknoten ("top") d zum Verzeichnis ("directory") q Info-Buffer verstecken T Inhaltsverzeichnis ("Table of contents")
- andere interessante Doku im Info-Format
- elisp (Emacs Lisp Reference)
- eintr (Emacs Lisp Introduction)
- bash (als man-page nur schwer verdaulich)
- python (bis python-2.5)
- mysql
- zsh
- GNU libc, gawk, GNU sed
1.6.2 Externe Quellen
- Emacswiki
- #emacs auf irc.freenode.net
1.7 Grundbegriffe
1.7.1 Anzeigeelemente
- menu bar (selbsterklaerend)
- tool bar (reine Platzverschwendung)
- scroll bar (rechts oder links)
- fringe (fuer Breakpoints, Falzmarken etc.)
- mode line
- echo area
1.7.2 Tasten, Notation
C-x ist Control-x / Strg-x M-x ist meist Alt-x oder "ESC x" (hintereinander) ("Meta") M-C-x entweder: Alt+Control+x oder ESC Control+x
Eine Tastenkombination kann sich aus mehreren Tastendruecken
zusammensetzen, z. B. “C-x C-f” oder “C-x r k”, ein sog. “key chord”.
Wenn ihr nicht wisst, was ihr schon eingegeben habt, wartet ein
bisschen, Emacs blendet die Tasten unten in der “Echo Area” ein.
Wenn ihr mal nicht weiter kommt: C-g bricht ab.
1.7.3 Buffer, Window, Frame
- Buffer
Jede geoeffnete Datei hat mindestens einen Buffer.
Es gibt Buffer ohne Datei.
Ein Buffer kann in mehreren Fenstern angezeigt werden.Eine Datei oeffnet man mit
C-x C-f find-file
Findet heraus, was TAB macht. Die Eingabe des Dateinamens findet im
“Minibuffer” statt, der sich die untere Bildschirmzeile mit der “Echo
Area” teilt.Buffer wechseln kann man ueber das “Buffers” Menue, C-mouse-1, mit
C-x b switch-to-buffer C-x C-b list-buffers
und auf vielen anderen Wegen.
Man sammelt in Emacs schnell viele Buffer an, das stoert aber nicht,
sobald man eine effiziente Methode zum Puffer-wechseln gefunden
hat. Ein GUI mit Tabs waere dafuer allerdings wenig praktikabel.Weitere wichtige Kommandos fuer Buffer:
C-x k Buffer loeschen ("kill") C-x C-s Datei speichern
- Window
Ein Emacs “Window” wuerde man heute “Split” oder “Pane” nennen. Warum
der Name? Emacs ist aelter als grafische Oberflaechen.C-x 2 horizontal teilen C-x 3 vertikal teilen C-x 1 Split aufheben C-x 0 dieses "Window" entfernen C-x o "Window" wechseln
Einige nuetzliche Funktionen fangen mit C-x 4 an:
C-x 4 f find-file-other-window C-x 4 b switch-to-buffer-other-window
Uebrigens: alle Tastenbindungen, die mit C-x 4 anfangen, koennt ihr
mit:C-x 4 C-h
sehen.
- Frames
Ein Frame ist das was wir heute ein Fenster nennen. Koennt ihr raten,
was diese Befehle bewirken?C-x 5 2 C-x 5 1 C-x 5 0 C-x 5 o
“Frames” gibt es auch auf der Konsole, dort ist aber immer nur ein
“Frame” sichtbar.Es gibt noch mehr Tastenbindungen, die mit C-x 5 anfangen, teilweise
analog zu C-x 4. Wie findet ihr das heraus?
1.7.4 Point, Mark, Region
C-SPACE setzt die "Mark" C-x C-x tauscht "Point" und "Mark"
1.7.5 Kill, Yank und der Kill-Ring
C-w loescht die Region ("kill") M-w kopiert die Region in den Kill-Ring C-y einfuegen "yank" M-y geht durch den Kill-Ring
1.7.6 Hilfe
C-h b listet alle Tastenbindungen C-h k zeigt Hilfe zu einer Tastenbindung C-h K springt in die Info-Dokumentation zu einer Tastenbindung C-h f zeigt Hilfe zu einem Kommandonamen
1.7.7 Suchen und Ersetzen
C-s I-Search vorwaerts C-r I-Search rueckwaerts C-w Naechstes Wort in den Suchstring kopieren C-y Zeile in den Suchstring kopieren M-y aus dem Kill-Ring kopieren M-c Case-Sensitive umschalten M-r Regex an/aus M-% suchen und ersetzen beginnen M-% Suchen und ersetzen C-M-s I-Search mit regulaeren Ausdruecken C-M-r C-M-%
1.7.8 Hausaufgaben
Im Manual blaettern
Durch’s Hilfesystem klicken