\newcount\columnsperpage
\columnsperpage=2
\def\versionnumber{2.1}
\def\year{1996}
\def\version{March \year\ v\versionnumber}
\def\shortcopyrightnotice{\vskip 1ex plus 2 fill
\centerline{\small \copyright\ \year\ Free Software Foundation, Inc.
Permissions on back. v\versionnumber}}
\def\copyrightnotice{\vskip 1ex plus 2 fill\begingroup\small
\centerline{Copyright \copyright\ \year\ Free Software Foundation, Inc.}
\centerline{designed by Stephen Gildea, \version}
\centerline{for GNU Emacs version 19 on Unix systems}
Permission is granted to make and distribute copies of
this card provided the copyright notice and this permission notice
are preserved on all copies.
\endgroup}
\def\bye{\par\vfill\supereject\end}
\newdimen\intercolumnskip \newbox\columna \newbox\columnb
\def\ncolumns{\the\columnsperpage}
\message{[\ncolumns\space
column\if 1\ncolumns\else s\fi\space per page]}
\def\scaledmag#1{ scaled \magstep #1}
\if 1\ncolumns \hsize 4in
\vsize 10in
\voffset -.7in
\font\titlefont=\fontname\tenbf \scaledmag3
\font\headingfont=\fontname\tenbf \scaledmag2
\font\smallfont=\fontname\sevenrm
\font\smallsy=\fontname\sevensy
\footline{\hss\folio}
\def\makefootline{\baselineskip10pt\hsize6.5in\line{\the\footline}}
\else \hsize 3.2in
\vsize 7.95in
\hoffset -.82in
\voffset -.6in
\font\titlefont=cmbx10 \scaledmag2
\font\headingfont=cmbx10 \scaledmag1
\font\smallfont=cmr6
\font\smallsy=cmsy6
\font\eightrm=cmr8
\font\eightbf=cmbx8
\font\eightit=cmti8
\font\eighttt=cmtt8
\font\eightmi=cmmi8
\font\eightsy=cmsy8
\textfont0=\eightrm
\textfont1=\eightmi
\textfont2=\eightsy
\def\rm{\eightrm}
\def\bf{\eightbf}
\def\it{\eightit}
\def\tt{\eighttt}
\normalbaselineskip=.8\normalbaselineskip
\normallineskip=.8\normallineskip
\normallineskiplimit=.8\normallineskiplimit
\normalbaselines\rm
\if 2\ncolumns
\let\maxcolumn=b
\footline{\hss\rm\folio\hss}
\def\makefootline{\vskip 2in \hsize=6.86in\line{\the\footline}}
\else \if 3\ncolumns
\let\maxcolumn=c
\nopagenumbers
\else
\errhelp{You must set \columnsperpage equal to 1, 2, or 3.}
\errmessage{Illegal number of columns per page}
\fi\fi
\intercolumnskip=.46in
\def\abc{a}
\output={ \if \maxcolumn\abc \multicolumnformat \global\def\abc{a}
\else\if a\abc
\global\setbox\columna\columnbox \global\def\abc{b}
\global\setbox\columnb\hbox to -\intercolumnskip{}
\else
\global\setbox\columnb\columnbox \global\def\abc{c}\fi\fi}
\def\multicolumnformat{\shipout\vbox{\makeheadline
\hbox{\box\columna\hskip\intercolumnskip
\box\columnb\hskip\intercolumnskip\columnbox}
\makefootline}\advancepageno}
\def\columnbox{\leftline{\pagebody}}
\def\bye{\par\vfill\supereject
\if a\abc \else\null\vfill\eject\fi
\if a\abc \else\null\vfill\eject\fi
\end}
\fi
\catcode`\^=12
\catcode`\_=12
\chardef\\=`\\
\chardef\{=`\{
\chardef\}=`\}
\hyphenation{mini-buf-fer}
\parindent 0pt
\parskip 1ex plus .5ex minus .5ex
\def\small{\smallfont\textfont2=\smallsy\baselineskip=.8\baselineskip}
\outer\def\newcolumn{\vfill\eject}
\outer\def\title#1{{\titlefont\centerline{#1}}\vskip 1ex plus .5ex}
\outer\def\section#1{\par\filbreak
\vskip 3ex plus 2ex minus 2ex {\headingfont #1}\mark{#1} \vskip 2ex plus 1ex minus 1.5ex}
\newdimen\keyindent
\def\beginindentedkeys{\keyindent=1em}
\def\endindentedkeys{\keyindent=0em}
\endindentedkeys
\def\paralign{\vskip\parskip\halign}
\def\<#1>{{\it #1\/}}
\def\kbd#1{{\tt#1}\null}
\def\beginexample{\par\leavevmode\begingroup
\obeylines\obeyspaces\parskip0pt\tt}
{\obeyspaces\global\let =\ }
\def\endexample{\endgroup}
\def\key#1#2{\leavevmode\hbox to \hsize{\vtop
{\hsize=.75\hsize\rightskip=1em
\hskip\keyindent\relax#1}\kbd{#2}\hfil}}
\newbox\metaxbox
\setbox\metaxbox\hbox{\kbd{M-x }}
\newdimen\metaxwidth
\metaxwidth=\wd\metaxbox
\def\metax#1#2{\leavevmode\hbox to \hsize{\hbox to .75\hsize
{\hskip\keyindent\relax#1\hfil} \hskip -\metaxwidth minus 1fil
\kbd{#2}\hfil}}
\def\threecol#1#2#3{\hskip\keyindent\relax#1\hfil&\kbd{#2}\hfil\quad
&\kbd{#3}\hfil\quad\cr}
\title{GNU Emacs Referenzkarte}
\section{Emacs Starten}
Um GNU Emacs 19 zu starten, tippen Sie ein: \kbd{emacs}
Um eine Datei fuers Editieren zu laden, lesen Sie unten weiter.
\section{Emacs Verlassen}
\key{Emacs pausieren lassen}{C-z}
\key{Emacs beenden}{C-x C-c}
\section{Dateien}
\key{Datei {\bf oeffnen} }{C-x C-f}
\key{Datei {\bf sichern} }{C-x C-s}
\key{{\bf alle} Dateien sichern}{C-x s}
\key{den Inhalt einer anderen Datei {\bf einfuegen}}{C-x i}
\key{diese Datei durch eine andere ersetzen}{C-x C-v}
\key{Datei neu anlegen und speichern}{C-x C-w}
\key{version control ein/auschecken}{C-x C-q}
\section{Hilfe}
Das Hilfesystem ist einfach zu bedienen. Tippen Sie \kbd{C-h} (oder \kbd{F1}). Neulinge tippen \kbd{C-h t} um ein {\bf tutorial} zu starten.
\key{Hilfe Fenster entfernen}{C-x 1}
\key{Hilfe Fenster scrollen}{C-M-v}
\key{apropos: zeigt alle Befehle mit dem Muster}{C-h a}
\key{zeigt die Funktion mit dieser Tastenkomb.}{C-h c}
\key{beschreibt die Funktion}{C-h f}
\key{modusspezifische Information}{C-h m}
\section{Was tun wenn nichts mehr geht}
\key{{\bf Abbrechen} eines Vorgangs}{C-g}
\metax{{\bf Wiederherstellung} von Dateien}{M-x recover-file}
\key{{\bf rueckgaengig} machen}{C-x u}
\metax{Puffer in Ursprungszustand bringen}{M-x revert-buffer}
\key{Bildschirmanzeige in Ordnung bringen}{C-l}
\section{Inkrementelle Suche}
\key{Suche vorwaerts}{C-s}
\key{Suche rueckwaerts}{C-r}
\key{Suche mit regulaeren Ausdruecken}{C-M-s}
\key{Rueckwaertssuche mit reg. Ausdruecken}{C-M-r}
\key{letzten Suchausdruck auswaehlen}{M-p}
\key{spaeteren Suchausdruck auswaehlen}{M-n}
\key{inkrementelle Suche beenden}{RET}
\key{ein Suchzeichen zurueckgehen}{DEL}
\key{Suche abbrechen}{C-g}
Wiederholtes Druecken von \kbd{C-s} oder \kbd{C-r} sucht weitere Treffer.
Wenn Emacs sucht, unterbricht \kbd{C-g} nur die jeweils letzte Suche.
\shortcopyrightnotice
\section{Cursor Bewegung}
\paralign to \hsize{#\tabskip=10pt plus 1 fil&#\tabskip=0pt&#\cr
\threecol{{\bf Textteile ueberspringen}}{{\bf rueckw.}}{{\bf vorw.}}
\threecol{Zeichen}{C-b}{C-f}
\threecol{Wort}{M-b}{M-f}
\threecol{Zeile}{C-p}{C-n}
\threecol{zum Zeilenende springen}{C-a}{C-e}
\threecol{Satz}{M-a}{M-e}
\threecol{Paragraph}{M-\{}{M-\}}
\threecol{Seite}{C-x [}{C-x ]}
\threecol{Lisp-s-expression}{C-M-b}{C-M-f}
\threecol{Funktion}{C-M-a}{C-M-e}
\threecol{zum Pufferanfang (oder Ende)springen}{M-<}{M->}
}
\key{eine Bildschirmseite runter scrollen}{C-v}
\key{eine Bildschirmseite hoch scrollen}{M-v}
\key{nach links scrollen}{C-x <}
\key{nach rechts scrollen}{C-x >}
\key{Cursorzeile in die Bildschirmmitte scrollen}{C-u C-l}
\section{Loeschen}
\paralign to \hsize{#\tabskip=10pt plus 1 fil&#\tabskip=0pt&#\cr
\threecol{{\bf Textteile }}{{\bf rueckwaerts}}{{\bf vorwaerts}}
\threecol{Zeichen (loeschen)}{DEL}{C-d}
\threecol{Wort}{M-DEL}{M-d}
\threecol{Zeile (bis zum Ende)}{M-0 C-k}{C-k}
\threecol{Satz}{C-x DEL}{M-k}
\threecol{Lisp-s-expression}{M-- C-M-k}{C-M-k}
}
\key{{\bf Bereiche} loeschen}{C-w}
\key{Bereich in die Ablage kopieren}{M-w}
\key{Bis zum {\it Zeichen} loeschen }{M-z {\it Zeichen}}
\key{letztes geloeschtes Zeichen einsetzen}{C-y}
\key{eins davor einsetzen}{M-y}
\section{Markieren}
\key{Marke setzen}{C-@ {\rm or} C-SPC}
\key{zwischen Cursor und Marke wechseln}{C-x C-x}
\key{Marke {\it Argument\/} {\bf Worte} entfernt setzen}{M-@}
\key{{\bf Paragraph} markieren}{M-h}
\key{{\bf Seite} markieren}{C-x C-p}
\key{{\bf Lisp-s-expression} markieren}{C-M-@}
\key{{\bf Funktion} markiern}{C-M-h}
\key{den ganzen {\bf Puffer} markieren}{C-x h}
\section{Interaktives Ersetzen}
\key{Zeichenkette interaktiv ersetzen}{M-\%}
\metax{mit regulaeren Ausdruecken}{M-x query-replace-regexp}
Moegliche Antworten in diesem Modus:
\key{dies {\bf ersetzten} und zum naechsten gehen}{SPC}
\key{dies ersetzen}{,}
\key{dies {\bf ueberspringen}, zum naechsten gehen}{DEL}
\key{alle verbleibenden Treffer ersetzen}{!}
\key{eine Ersetzung{\bf rueckgaengig} machen }{^}
\key{interaktiven Modus{\bf verlassen}}{RET}
\key{rekursiven Modus starten (\kbd{C-M-c} verlassen)}{C-r}
\section{Mehrere Fenster}
Die zweite Tastenk. bezieht sich immer auf das andere Fenster:
\key{alle anderen Fenster in den Hintergrund}{C-x 1}
{\setbox0=\hbox{\kbd{0}}\advance\hsize by 0\wd0
\paralign to \hsize{#\tabskip=10pt plus 1 fil&#\tabskip=0pt&#\cr
\threecol{Fenster vertikal teilen}{C-x 2\ \ \ \ }{C-x 5 2}
\threecol{dieses Fenster loeschen}{C-x 0\ \ \ \ }{C-x 5 0}
}}
\key{Fenster horizontal teilen}{C-x 3}
\key{das andere Fenster scrollen}{C-M-v}
{\setbox0=\hbox{\kbd{0}}\advance\hsize by 2\wd0
\paralign to \hsize{#\tabskip=10pt plus 1 fil&#\tabskip=0pt&#\cr
\threecol{ins andere Fenster wechseln}{C-x o}{C-x 5 o}
\threecol{Puffer in ein anderes Fenster bringen}{C-x 4 b}{C-x 5 b}
\threecol{Puffer in einem anderen Fenster darstellen}{C-x 4 C-o}{C-x 5 C-o}
\threecol{Datei in ein anderes Fenster oeffnen}{C-x 4 f}{C-x 5 f}
\threecol{Datei im Ansichtmodus in anderem Fenster oeffnen}{C-x 4 r}{C-x 5 r}
\threecol{Dired in einem anderen Fenster oeffnen}{C-x 4 d}{C-x 5 d}
\threecol{Tag in einem anderen Fenster finden}{C-x 4 .}{C-x 5 .}
}}
\key{Fenster vergroessern}{C-x ^}
\key{Fenster schmaler machen}{C-x \{}
\key{Fenster breiter machen}{C-x \}}
\section{Formattierung}
\key{{\bf Zeile} (modusabhaengig) einruecken}{TAB}
\key{{\bf Bereich} (modusabh.) einruecken}{C-M-\\}
\key{{\bf Lisp-s-expression} (modusabh.) einruecken}{C-M-q}
\key{Bereich {\it Argument\/} Spalten einruecken}{C-x TAB}
\key{Zeilenumbruch nach Cursor einfuegen}{C-o}
\key{Zeilenrest vertikal nach unten verschieben}{C-M-o}
\key{Leerzeilen um Cursorposition loeschen}{C-x C-o}
\key{Zeile mit letzter verbinden (Arg. naechster)}{M-^}
\key{Leerzeichen an Cursorposition loeschen}{M-\\}
\key{ein Leerzeichen an Cursorposition setzen}{M-SPC}
\key{Paragraph auffuellen}{M-q}
\key{Fuell Spalte setzen}{C-x f}
\key{Praefix setzen fuer jede Zeile}{C-x .}
\key{Zeichendarstellung setzen}{M-g}
\section{Gross-Kleinbuchstaben}
\key{Wort in Grossbuchstaben}{M-u}
\key{Wort in Kleinbuchstaben}{M-l}
\key{Word mit grossen Anfangsbuchstaben}{M-c}
\key{Bereich in Grossbuchstaben}{C-x C-u}
\key{Bereich in Kleinbuchstaben}{C-x C-l}
\section{Der Minipuffer}
Die folgenden Tastenkombination gelten im Minipuffer:
\key{so viel wie moeglich ergaenzen}{TAB}
\key{ein Wort ergaenzen}{SPC}
\key{ergaenzen und ausfuehren}{RET}
\key{moegliche Ergaenzungen zeigen}{?}
\key{letzte Eingabe wiederanzeigen}{M-p}
\key{spaetere Eingabe wiederanzeigen}{M-n}
\key{reg. Ausd. rueckwaerts in History suchen}{M-r}
\key{reg. Ausd. vorwaerts in History suchen}{M-s}
\key{Vorgang unterbrechen}{C-g}
Tippen Sie \kbd{C-x ESC ESC} um den letzten Befehl zu editieren und zu wiederholen der im Minipuffer ausgefuehrt wurde.
\newcolumn
\title{GNU Emacs Referenzkarte}
\section{Puffer}
\key{anderen Puffer auswaehlen}{C-x b}
\key{alle Puffer anzeigen}{C-x C-b}
\key{Puffer loeschen}{C-x k}
\section{Vertauschen}
\key{ {\bf Zeichen} vertauschen}{C-t}
\key{ {\bf Worte} vertauschen}{M-t}
\key{ {\bf Zeilen} vertauschen}{C-x C-t}
\key{ {\bf Lisp-s-expressions} vertauschen}{C-M-t}
\section{Rechtschreibkorrrektur}
\key{Ueberpruefe aktuelles Wort}{M-\$}
\metax{Ueberpruefe alle Woerter in Bereich}{M-x ispell-region}
\metax{Ueberpruefe den gesamten Bereich}{M-x ispell-buffer}
\section{Tags}
\key{Tag finden (Definition)}{M-.}
\key{Naechstes Vorkommen von Tag finden}{C-u M-.}
\metax{Neue Tags Datei angeben}{M-x visit-tags-table}
\metax{Regulaere Ausdruck Suche in Dateien}{M-x tags-search}
\metax{Interakt. Ersetzen in allen Dateien}{M-x tags-query-replace}
\key{Letzte Tag Suche oder Ersetzen nochmal}{M-,}
\section{Shells}
\key{Shell Kommando ausfuehren}{M-!}
\key{Shell Kommando fuer bereich ausfuehren}{M-|}
\key{Bereich durch Shell Kommando filtern}{C-u M-|}
\metax{Shell im Fenster \kbd{*shell*} starten}{M-x shell}
\section{Rechtecke}
\key{Kopiere Rechteck in Register}{C-x r r}
\key{Loesche Rechteck}{C-x r k}
\key{Rechteck einsetzen}{C-x r y}
\key{Rechteck aufmachen, Text nach rechts}{C-x r o}
\key{Rechteck mit Leerzeichen ueberschreiben}{C-x r c}
\key{Praefix vor jede Zeile setzen}{C-x r t}
\section{Abkuerzungen}
\key{globale Abkuerzung hinzufuegen}{C-x a g}
\key{modusabhaengige Abkuerzung hinzufuegen}{C-x a l}
\key{globale Expansion fuer Abk. definieren}{C-x a i g}
\key{modusabhaengige Abkuerzung definieren}{C-x a i l}
\key{explizites Expandieren}{C-x a e}
\key{letztes Wort dynamisch expandieren}{M-/}
\section{Regulaere Ausdruecke}
\key{jedes Zeichen ausser Zeilenumbruch}{. {\rm(Punkt)}}
\key{Null oder mehr Wiederholungen}{*}
\key{Eine oder mehr Wiederholungen}{+}
\key{Null oder eine Wiederholung}{?}
\key{jedes Zeichen in der Menge}{[ {\rm$\ldots$} ]}
\key{jedes Zeichen nicht in der Menge}{[^ {\rm$\ldots$} ]}
\key{Zeilenanfang}{^}
\key{Zeilenende}{\$}
\key{spezielles Zeichen maskieren {\it c\/}}{\\{\it c}}
\key{Alternative (``oder'')}{\\|}
\key{Gruppe}{\\( {\rm$\ldots$} \\)}
\key{{\it n\/}te Gruppe}{\\{\it n}}
\key{Pufferanfang}{\\`}
\key{Pufferende}{\\'}
\key{Wortzwischenraum}{\\b}
\key{Weder Anfang noch Ende eines Wortes}{\\B}
\key{Wortanfang}{\\<}
\key{Wortende}{\\>}
\key{jedes Wort-Syntax Zeichen}{\\w}
\key{jedes Nicht-Wort-Syntax Zeichen}{\\W}
\key{Zeichen mit Syntax {\it c}}{\\s{\it c}}
\key{Zeichen nicht mit Syntax {\it c}}{\\S{\it c}}
\section{Register}
\key{Region in Register speichern}{C-x r s}
\key{Register Inhalt in Puffer einfuegen}{C-x r i}
\key{Cursorposition in Register speichern}{C-x r SPC}
\key{Springe zur abgespeicherten Position}{C-x r j}
\section{Info}
\key{Info starten}{C-h i}
\beginindentedkeys
Bewegung innerhalb eines Knotens:
\key{vorwaerts scrollen}{SPC}
\key{rueckwaerts scrollen}{DEL}
\key{zum Anfang eines Knotens}{. {\rm (dot)}}
Bewegung zwischen Knoten:
\key{{\bf naechster} Knoten}{n}
\key{{\bf vorheriger} Knoten}{p}
\key{nach {\bf oben}}{u}
\key{Menue Element ueber Namen auswaehlen}{m}
\key{{\it n\/}ten Menueeintrag auswaehlen (1--9)}{{\it n}}
\key{Kreuzverweis folgen (zurueck mit \kbd{l})}{f}
\key{zurueck zum letzten gesehenen Knoten}{l}
\key{zurueck zum Verzeichnisknoten}{d}
\key{Knoten ueber Namen auswaehlen}{g}
Sonstige:
\key{Info {\bf Tutorial} starten}{h}
\key{Info Befehle zeigen}{?}
\key{Info {\bf verlassen} }{q}
\key{Knoten nach reg. Ausd. durchsuchen}{M-s}
\endindentedkeys
\section{Tastatur Makros}
\key{Tastatur Makro Definition {\bf starten} }{C-x (}
\key{Tastatur Makro Definition {\bf beenden} }{C-x )}
\key{zuletzt definiertes Tast. Makro {\bf ausfuehren}}{C-x e}
\key{an letztes Tastatur Makro anhaengen}{C-u C-x (}
\metax{letztes Tastatur Makro benennen}{M-x name-last-kbd-macro}
\metax{Lisp Definition in Puffer einfuegen}{M-x insert-kbd-macro}
\section{Kommandos fuer Emacs Lisp}
\key{{\bf Lisp-s-expression} vor Cursor laden}{C-x C-e}
\key{aktuelle {\bf Definition} auswerten}{C-M-x}
\metax{{\bf Bereich} auswerten}{M-x eval-region}
\metax{gesamten {\bf Puffer} auswerten}{M-x eval-current-buffer}
\key{Lispausdruck im Minipuffer auswerten}{M-:}
\key{letztes Minipufferkommando auswerten}{C-x ESC ESC}
\metax{Emacs Lisp Datei lesen und auswerten}{M-x load-file}
\metax{aus Standard Systemverzeichnis laden}{M-x load-library}
\section{Einfaches Konfigurieren}
Ein Beispiel dafuer, wie man Tastenkombinationen definiert:
\beginexample(global-set-key "\\C-cg" 'goto-line)
(global-set-key "\\C-x\\C-k" 'kill-region)
(global-set-key "\\M-\#" 'query-replace-regexp)
\endexample
So weist man in Emacs Lisp einer Variablen Werte zu:
\beginexample(setq backup-by-copying-when-linked t)
\endexample
\section{Selbst Kommandos schreiben}
\beginexample(defun \<Commando-Name> (\<args>)
"\<Documentation>"
(interactive "\<template>")
\<body>)
\endexample
Ein Beispiel:
\beginexample(defun diese-Zeile-zum-Fensteranfang (Zeile)
"Zeile an Cursorposition zum Fensteranfang bewegen"
Mit numerischem Argument n, zur Zeile n
Mit negativem Argument zum Fensterende
(interactive "P")
(recenter (if (null Zeile)
0
(prefix-numeric-value Zeile))))
\endexample
Das Argument fuer \kbd{interactive} ist eine Zeichenkette, die spe\-zi\-fi\-ziert, wie die
Ar\-gu\-men\-te be\-reit\-ge\-stellt wer\-den, wenn die Funktion inter\-aktiv auf\-ge\-ru\-fen wird.
\kbd{C-h f interactive} fuer mehr Informationen.
\copyrightnotice
\bye