Emacs-Workshop
Table of Contents
1 2010-03-29 zweiter_tag
1.1 Grundfunktionen
1.1.1 Loeschen
C-d Loescht das Zeichen nach dem Point (wie "Entfernen") C-k Loescht den Zeileninhalt ab dem Point
1.1.2 Undo
C-/ Drei Bindungen fuer dasselbe C-_ C-x u
Die Kette der Undos wird durch andere Kommandos unterbrochen,
Cursor-Bewegung reicht dafuer aus. Danach werden die vorherigen Undos
selbst Teil der Geschichte, weitere Undos machen diese damit wieder
rueckgaengig.
1.1.3 Wiederholen
C-x z wiederholt das letzte Kommando C-x zzzzzz danach kann man bliebig oft "z" druecken
1.1.4 Prefix-Argument
C-u C-k Loescht vier Zeilen C-u C-u C-k Loescht 16 Zeilen C-u 10 C-k Loescht 10 Zeilen M-1 M-0 C-k alternative Schreibweise C-1 C-0 C-k noch eine alternative Schreibweise (funktioniert nicht in der Konsole) C-u - 1 C-k Loescht bis zum Anfang der letzten Zeile M-- C-k alternative Schreibweise C-- C-k alternative Schreibweise
1.1.5 Shell-Kommandos aufrufen
M-! ausfuehren, Ausgabe in der Echo Area C-u M-! Ausgabe wird im Puffer eingefuegt
z.B. C-u M-! pwgen -s 12 1 N.B.: hier ist das Praefix-Argument nicht
numerisch, bzw. ist eine Zahl, wenn uebergeben, nicht ausschlaggebend.
M-| schickt die region an stdin, Ausgabe in Echo Area C-u M-| schickt die Region durch ein Programm, die Ausgabe ersetzt die Region
z.B. C-u M-| sort RET. Evtl. muss das als “C-u ESC |” eingegeben
werden.
1.1.6 Wichtige Bewegungskommandos
C-a zum Anfang der Zeile C-e zum Ende der Zeile
C-n Zeile nach unten ("next") C-p Zeile nach oben ("previous") C-f Zeichen nach vorn ("forward") C-b Zeichen nach hinten ("backward")
M-f ein Wort nach vorn M-b ein Wort zurueck M-a zum Anfang des Satzes M-e zum Ende des Satzes
Die Logik zur Erkennung von Satzenden geht davon aus, dass nach einem
Satzzeichen zwei Leerzeichen stehen. Im Deutschen bewegt man sich eher
einen Absatz weiter.
M-d loescht das folgende Wort M-Backspace loescht das vorherige Wort
Mehrere hintereinander geloeschte Worte werden zu einem Eintrag im
Kill-Ring zusammengefassst.
1.1.7 Gross- und Kleinschreibung
M-l das naechste Wort klein schreiben und ueberspringen ("lower case") M-u das naechste Wort in Grossbuchstaben schreiben ("upper case") M-c das naechste Wort gross schreiben ("capitalize")
Mit Praefix-Argument auch fuer mehrere Worte.
Mit negativem Praefix-Argument fuer die vorhergehenden Worte.
Praktisch vor allem:
M-- M-c Korrigiert das letzte Wort mit Grossschreibung M-- M-l Korrigiert das letzte Wort mit Kleinschreibung
1.2 Exkurs: Bash
Die bash sowie alle libreadline-basierten Programme haben
standardmaessig Emacs-Tastenbindungen. Die zuvor beschriebenen
Editier-Kommandos funktionieren hier genauso, es gibt ebenso einen
Kill-Ring und Praefix-Argumente. Zwei Tasten sind unterschiedlich:
C-w loescht rueckwaerts bis zum naechsten Leerzeichen (M-Backspace verhaelt sich etwas anders) C-u loescht rueckwaerts bis zum Anfang der Zeile
Praefix-Argumente koennen also nur mit Meta eingegeben werden.
1.3 Fortgeschrittenen Editorfunktionen
1.3.1 Register
C-x r s R Region in Register "R" speichern C-x r i R Register "R" einfuegen C-x r SPC R Aktuelle Position in Register "R" speichern C-x r j R Zur im Register "R" gespeicherten Position springen C-x r n R eine Zahl im Register speichern ("number") C-x r + R die Zahl im Register "R" erhoehen (Praefix-Argument!)
1.3.2 Rechtecke
C-x r k Rechteck loeschen ("kill") C-x r o Rechteck nach rechts schieben ("open") C-x r y Rechteck wieder einfuegen ("yank") C-x r t Rechteck durch Text ersetzen ("text") C-x r r R Rechteck in Register speichern ("rectangle register")
1.3.3 Makros
C-x ( Makro-Definition beginnen C-x ) Makro-Definition beenden C-x e Makro ausfuehren ("execute") C-x C-k e Makro editieren C-h l: lossage, die letzten 100 Tastendruecke M-x name-last-kbd-macro letztes Keyboard-Makro benennen M-x insert-kbd-macro benanntes Keyboard-Makro in Buffer einfuegen
Mit Keyboard-Makros sind Register besonders sinnvoll. Das Makro-System
bringt aber auch einen eigenen Zaehler mit. Die zuletzt definierten
Makros werden ausserdem in einem Makro-Ring gespeichert.
C-x C-k C-n naechstes Makro im Makro-Ring auswaehlen C-x C-k C-p vorheriges Makro im Makro-Ring auswaehlen C-x C-k C-h Hilfe zu mehr Makro-Funktionen
1.4 Major- und Minor-Modes
1.4.1 Major-Modes
Jeder Buffer hat genau einen Major-Mode.
- Font Locking (AKA Syntax Highlighting)
- intelligente Einrueckung
- Syntax-Tabelle (beeinflusst regulaere Ausdruecke und Bewegungskommandos)
-
lokale Keymap (evtl. Befehle zur Codevervollstaendigung,
Syntax-Check, Compilieren, schnellen Wechsel zwischen Header und
Code etc.)
Major-Mode wird meist automatisch bestimmt, anhand von Extension oder
Inhalt, leicht bei Shell/Perl-Skripten zu sehen
M-x sh-mode
M-x normal-mode
M-x find-file-literally
TAB rueckt ein C-q TAB fuegt ein TAB-Zeichen ein ("quote") genauso fuer ^M, ESC...
1.4.2 Minor-Modes
- tool-bar-mode
- menu-bar-mode
- scroll-bar-mode
- show-paren-mode
- recentf-mode
- column-number-mode
- mouse-wheel-mode
- xterm-mouse-mode
- global-linum-mode (ab Emacs 23)
- ido-mode
Interaktiv umschalten mit z.B. M-x ido-mode
Code fuer die .emacs
(ido-mode) ;; schaltet um (ido-mode 1) ;; schaltet ein (tool-bar-mode -1) ;; schaltet aus
Codeschnipsel lassen sich ueberall ausprobieren, z.B. direkt in der
.emacs oder im *scratch*
-Buffer.
C-x C-e nach der letzten schliessenden Klammer ("evaluate") C-u C-x C-e ausfuehren und Ausgabe einfuegen M-C-x kompletten geklammerten Ausdruck ausfuehren
- Lokale Minor-Modes
Nicht alle Minor-Modes haben globale Auswirkungen, manche wirken nur
in dem Buffer, in dem sie aktiviert wurden.- auto-fill-mode
Der auto-fill-mode bricht beim schreiben von Fliesstext automatisch
um. Die Variable “fill-column” bestimmt, ab wann umgebrochen
wird. Wenn ihr sie in Elisp-Code auf einen anderen Wert setzen wollt,
geht das etwa so:(setq fill-column 60)
Uebrigens koennt ihr auch explizit umbrechen mit
M-q
- linum-mode
Man kann in Emacs 23 die Zeilennummerierung auch nur fuer einen Buffer
einschalten.
- auto-fill-mode