% Reference Card for GNU Emacs version 19 on Unix systems
%**start of header
\newcount\columnsperpage

% This file can be printed with 1, 2, or 3 columns per page (see below).
% Specify how many you want here.  Nothing else needs to be changed.

\columnsperpage=2

% Copyright (c) 1987, 1993, 1996, 2000 Free Software Foundation, Inc.

% This file is part of GNU Emacs.

% GNU Emacs is free software; you can redistribute it and/or modify
% it under the terms of the GNU General Public License as published by
% the Free Software Foundation; either version 2, or (at your option)
% any later version.

% GNU Emacs is distributed in the hope that it will be useful,
% but WITHOUT ANY WARRANTY; without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
% GNU General Public License for more details.

% You should have received a copy of the GNU General Public License
% along with GNU Emacs; see the file COPYING.  If not, write to
% the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
% Boston, MA 02111-1307, USA.

% This file is intended to be processed by plain TeX (TeX82).
%
% The final reference card has six columns, three on each side.
% This file can be used to produce it in any of three ways:
% 1 column per page
%    produces six separate pages, each of which needs to be reduced to 80%.
%    This gives the best resolution.
% 2 columns per page
%    produces three already-reduced pages.
%    You will still need to cut and paste.
% 3 columns per page
%    produces two pages which must be printed sideways to make a
%    ready-to-use 8.5 x 11 inch reference card.
%    For this you need a dvi device driver that can print sideways.
% Which mode to use is controlled by setting \columnsperpage above.
%
% Author:
%  Stephen Gildea
%  Internet: gildea@stop.mail-abuse.org
%
% Thanks to Paul Rubin, Bob Chassell, Len Tower, and Richard Mlynarik
% for their many good ideas.

% If there were room, it would be nice to see a section on Dired.

\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}

% make \bye not \outer so that the \def\bye in the \else clause below
% can be scanned without complaint.
\def\bye{\par\vfill\supereject\end}

\newdimen\intercolumnskip	%horizontal space between columns
\newbox\columna			%boxes to hold columns already built
\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}

% This multi-way format was designed by Stephen Gildea October 1986.
% Note that the 1-column format is fontfamily-independent.
\if 1\ncolumns			%one-column format uses normal size
  \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				%2 or 3 columns uses prereduced size
  \hsize 3.2in
  \vsize 7.95in
%  \hoffset -.75in
  \hoffset -.82in
%  \voffset -.745in
  \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		%make definitions take effect

  \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={%			%see The TeXbook page 257
      % This next line is useful when designing the layout.
      %\immediate\write16{Column \folio\abc\space starts with \firstmark}
      \if \maxcolumn\abc \multicolumnformat \global\def\abc{a}
      \else\if a\abc
	\global\setbox\columna\columnbox \global\def\abc{b}
        %% in case we never use \columnb (two-column mode)
        \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

% we won't be using math mode much, so redefine some of the characters
% we might want to talk about
\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}

% newcolumn - force a new column.  Use sparingly, probably only for
% the first column of a page, which should have a title anyway.
\outer\def\newcolumn{\vfill\eject}

% title - page title.  Argument is title text.
\outer\def\title#1{{\titlefont\centerline{#1}}\vskip 1ex plus .5ex}

% section - new major section.  Argument is section name.
\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

% beginindentedkeys...endindentedkeys - key definitions will be
% indented, but running text, typically used as headings to group
% definitions, will not.
\def\beginindentedkeys{\keyindent=1em}
\def\endindentedkeys{\keyindent=0em}
\endindentedkeys

% paralign - begin paragraph containing an alignment.
% If an \halign is entered while in vertical mode, a parskip is never
% inserted.  Using \paralign instead of \halign solves this problem.
\def\paralign{\vskip\parskip\halign}

% \<...> - surrounds a variable name in a code example
\def\<#1>{{\it #1\/}}

% kbd - argument is characters typed literally.  Like the Texinfo command.
\def\kbd#1{{\tt#1}\null}	%\null so not an abbrev even if period follows

% beginexample...endexample - surrounds literal text, such a code example.
% typeset in a typewriter font with line breaks preserved
\def\beginexample{\par\leavevmode\begingroup
  \obeylines\obeyspaces\parskip0pt\tt}
{\obeyspaces\global\let =\ }
\def\endexample{\endgroup}

% key - definition of a key.
% \key{description of key}{key-name}
% prints the description left-justified, and the key-name in a \kbd
% form near the right margin.
\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

% metax - definition of a M-x command.
% \metax{description of command}{M-x command-name}
% Tries to justify the beginning of the command name at the same place
% as \key starts the key name.  (The "M-x " sticks out to the left.)
\def\metax#1#2{\leavevmode\hbox to \hsize{\hbox to .75\hsize
  {\hskip\keyindent\relax#1\hfil}%
  \hskip -\metaxwidth minus 1fil
  \kbd{#2}\hfil}}

% threecol - like "key" but with two key names.
% for example, one for doing the action backward, and one for forward.
\def\threecol#1#2#3{\hskip\keyindent\relax#1\hfil&\kbd{#2}\hfil\quad
  &\kbd{#3}\hfil\quad\cr}

%**end of header


\title{GNU Emacs Referenzkarte}

%\centerline{(fuer version 19)}

\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}

% Das ist nur was fuer Leute die Lisp beherrschen

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

% Local variables:
% compile-command: "tex refcard"
% End:
