\chyph
\newcount\columnsperpage
\columnsperpage=1
\def\versionnumber{2.2}
\def\versionemacs{22}
\def\versionyear{2006} \def\year{2007}
\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{v\versionnumber{} for GNU Emacs version \versionemacs, \versionyear}
\centerline{designed by Stephen Gildea}
Permission is granted to make and distribute copies of
this card provided the copyright notice and this permission notice
are preserved on all copies.
For copies of the GNU Emacs manual, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
\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 -.75in
\voffset -.745in
\font\titlefont=csbx10 \scaledmag2
\font\headingfont=csbx10 \scaledmag1
\font\smallfont=csr6
\font\smallsy=cmsy6
\font\eightrm=csr8
\font\eightbf=csbx8
\font\eightit=csti8
\font\eighttt=cstt8
\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 -- Referenční karta}
\centerline{(pro verzi \versionemacs)}
\section{Spuštění Emacsu}
Pro vstup do GNU~Emacsu~\versionemacs{} napište jeho jméno: \kbd{emacs}
Jak načítat a editovat soubory se dozvíte níže v~oddíle Soubory.
\section{Opuštění Emacsu}
\key{pozastavení Emacsu (ikonizace v~X11)}{C-z}
\key{definitivní odchod z~Emacsu}{C-x C-c}
\section{Soubory}
\key{{\bf načíst} souboru do Emacsu}{C-x C-f}
\key{{\bf uložit} soubor zpět na disk}{C-x C-s}
\key{uložit {\bf všechny} soubory}{C-x s}
\key{{\bf vložit} obsahu jiného souboru do bufferu}{C-x i}
\key{zaměnit tento soubor jiným souborem}{C-x C-v}
\key{zapsat buffer do zadaného souboru}{C-x C-w}
\key{vložit do systému správy verzí}{C-x C-q}
\section{Používání nápovědy}
Systém nápovědy je snadný. Stiskněte \kbd{C-h} (nebo \kbd{F1}) a sledujte
instrukce. Úvodní {\bf tutoriál} lze spustit pomocí \kbd{C-h t}.
\key{odstranit okno s~nápovědou}{C-x 1}
\key{rolovat okno s~nápovědou}{C-M-v}
\key{apropos: příkazy odpovídající řetězci}{C-h a}
\key{zobrazit funkci dané klávesy}{C-h c}
\key{zobrazit popis funkce}{C-h f}
\key{zobrazit informace o~aktuálních módech}{C-h m}
\section{Opravy chyb}
\key{{\bf přerušit} zadávaný nebo vykonávaný příkaz}{C-g}
\metax{{\bf obnovit} soubor ztracený pádem systému}{M-x recover-file}
\key{{\bf zrušit} nechtěnou změnu}{C-x u {\it n.} C-_}
\metax{vrátit původní obsah bufferu}{M-x revert-buffer}
\key{překreslit \uv{rozpadlou} obrazovku}{C-l}
\section{Přírůstkové vyhledávání}
\key{vyhledat dopředu}{C-s}
\key{vyhledat dozadu}{C-r}
\key{vyhledat regulární výraz}{C-M-s}
\key{vyhledat regulární výraz dozadu}{C-M-r}
\key{předchozí vyhledávaný řetězec}{M-p}
\key{následující novější vyhledávaný řetězec}{M-n}
\key{ukončit inkrementální vyhledávání}{RET}
\key{zrušit efekt posledního zadaného znaku}{DEL}
\key{přerušit probíhající vyhledávání}{C-g}
Další \kbd{C-s} nebo \kbd{C-r} zopakuje vyhledání v~daném směru. Pokud
Emacs vyhledává, \kbd{C-g} zruší pouze nenalezenou část řetězce.
\shortcopyrightnotice
\section{Pohyb}
\paralign to \hsize{#\tabskip=10pt plus 1 fil&#\tabskip=0pt&#\cr
\threecol{{\bf posun o }}{{\bf dozadu}}{{\bf dopředu}}
\threecol{znak}{C-b}{C-f}
\threecol{slovo}{M-b}{M-f}
\threecol{řádek}{C-p}{C-n}
\threecol{na začátek nebo konec řádku}{C-a}{C-e}
\threecol{větu}{M-a}{M-e}
\threecol{odstavec}{M-\{}{M-\}}
\threecol{stránku}{C-x [}{C-x ]}
\threecol{symbolický výraz}{C-M-b}{C-M-f}
\threecol{funkci}{C-M-a}{C-M-e}
\threecol{na začátek nebo konec bufferu}{M-<}{M->}
}
\key{rolovat na další obrazovku}{C-v}
\key{rolovat na předchozí obrazovku}{M-v}
\key{rolovat vlevo}{C-x <}
\key{rolovat vpravo}{C-x >}
\key{aktuální řádek do středu obrazovky}{C-u C-l}
\section{Rušení a mazání}
\paralign to \hsize{#\tabskip=10pt plus 1 fil&#\tabskip=0pt&#\cr
\threecol{{\bf rušený objekt }}{{\bf dozadu}}{{\bf dopředu}}
\threecol{znak (mazání, ne rušení)}{DEL}{C-d}
\threecol{slovo}{M-DEL}{M-d}
\threecol{řádek (do konce)}{M-0 C-k}{C-k}
\threecol{věta}{C-x DEL}{M-k}
\threecol{symbolický výraz}{M-- C-M-k}{C-M-k}
}
\key{zrušit {\bf oblast}}{C-w}
\key{zkopírovat oblast do schránky}{M-w}
\key{zrušit až po nejbližší výskyt znaku {\it znak}}{M-z {\it znak}}
\key{vhodit naposledy zrušený objekt}{C-y}
\key{nahradit vhozený objekt předchozím zrušeným}{M-y}
\section{Označování}
\key{vložit značku}{C-@ {\it n.} C-SPC}
\key{prohodit kurzor a značku}{C-x C-x}
\key{označit zadaný počet {\bf slov}}{M-@}
\key{označit {\bf odstavec}}{M-h}
\key{označit {\bf stránku}}{C-x C-p}
\key{označit {\bf symbolický výraz}}{C-M-@}
\key{označit {\bf funkci}}{C-M-h}
\key{označit celý {\bf buffer}}{C-x h}
\section{Interaktivní nahrazování}
\key{interaktivně nahradit textový řetězec}{M-\%}
\metax{s~užitím regulárního výrazu}{M-x query-replace-regexp}
Platné odpovědi v~módu query-replace jsou
\key{{\bf záměnu provést} a jít na další}{SPC}
\key{záměnu provést a zůstat na místě}{,}
\key{{\bf skočit} na další bez provedení záměny}{DEL}
\key{zaměnit všechny zbývající výskyty}{!}
\key{{\bf zpět} na předchozí výskyt řetězce}{^}
\key{{\bf konec} nahrazování}{RET}
\key{rekurzivní editace (ukončí se \kbd{C-M-c})}{C-r}
\section{Okna}
Jestliže jsou zobrazeny dva příkazy, pak ten druhý platí pro X okno.
\key{zrušit všechna ostatní okna}{C-x 1}
{\setbox0=\hbox{\kbd{0}}\advance\hsize by 0\wd0
\paralign to \hsize{#\tabskip=10pt plus 1 fil&#\tabskip=0pt&#\cr
\threecol{rozdělit okno na horní a dolní}{C-x 2\ \ \ \ }{C-x 5 2}
\threecol{zrušit toto okno}{C-x 0\ \ \ \ }{C-x 5 0}
}}
\key{rozdělit okno na levé a pravé}{C-x 3}
\key{rolovat jiné okno}{C-M-v}
{\setbox0=\hbox{\kbd{0}}\advance\hsize by 2\wd0
\paralign to \hsize{#\tabskip=10pt plus 1 fil&#\tabskip=0pt&#\cr
\threecol{přepnout kurzor do jiného okna}{C-x o}{C-x 5 o}
\threecol{vybrat buffer v~jiném okně}{C-x 4 b}{C-x 5 b}
\threecol{zobrazit buffer v~jiném okně}{C-x 4 C-o}{C-x 5 C-o}
\threecol{otevřít soubor v~jiném okně}{C-x 4 f}{C-x 5 f}
\threecol{otevřít soubor jen pro čtení v~jiném okně}{C-x 4 r}{C-x 5 r}
\threecol{spustit Dired v~jiném okně}{C-x 4 d}{C-x 5 d}
\threecol{najít tag v~jiném okně}{C-x 4 .}{C-x 5 .}
}}
\key{zvětšit okno}{C-x ^}
\key{zúžit okno}{C-x \{}
\key{rozšířit okno}{C-x \}}
\section{Formátování}
\key{odsadit aktuální {\bf řádek} (dle módu)}{TAB}
\key{odsadit {\bf oblast} (dle módu)}{C-M-\\}
\key{odsadit {\bf symbolický výraz} (dle módu)}{C-M-q}
\key{odsadit oblast napevno o~{\it argument\/} sloupců}{C-x TAB}
\key{vložit znak nového řádku za kurzor}{C-o}
\key{posunout zbytek řádku svisle dolů}{C-M-o}
\key{smazat prázdné řádky okolo kurzoru}{C-x C-o}
\key{spojit řádek s~předchozím (s~arg.~s~násl.)}{M-^}
\key{smazat prázdné místo kolem kurzoru}{M-\\}
\key{nechat přesně jednu mezeru kolem kurzoru}{M-SPC}
\key{zalomit odstavec}{M-q}
\key{nastavit sloupec pro zalamování}{C-x f}
\key{nastavit prefix, kterým začínají řádky}{C-x .}
\key{nastavit font}{M-g}
\section{Změna velikosti písmen}
\key{změnit písmena slova na velká}{M-u}
\key{změnit písmena slova na malá}{M-l}
\key{změnit počáteční písmeno slova na velké}{M-c}
\key{změnit písmena oblasti na velká}{C-x C-u}
\key{změnit písmena oblasti na malá}{C-x C-l}
\section{Minibuffer}
Následující klávesy jsou platné pro minibuffer.
\key{doplnit z~nabídky}{TAB}
\key{doplnit do nejbližšího slova}{SPC}
\key{doplnit a vykonat}{RET}
\key{zobrazit možná doplnění}{?}
\key{předchozí příkaz z~minibufferu}{M-p}
\key{novější nebo implicitní příkaz z~minibufferu}{M-n}
\key{vyhledat regulární výraz v~historii vzad}{M-r}
\key{vyhledat regulární výraz v~historii vpřed}{M-s}
\key{zrušit příkaz}{C-g}
Stiskněte \kbd{C-x ESC ESC} pro editaci a zopakování posledního příkazu
z~minibufferu. Stiskněte \kbd{F10} pro aktivaci menu v~minibufferu.
\newcolumn
\title{GNU Emacs -- Referenční karta}
\section{Buffery}
\key{vybrat jiný buffer}{C-x b}
\key{seznam všech bufferů}{C-x C-b}
\key{zrušit buffer}{C-x k}
\section{Výměny}
\key{přehodit {\bf znaky}}{C-t}
\key{přehodit {\bf slova}}{M-t}
\key{přehodit {\bf řádky}}{C-x C-t}
\key{přehodit {\bf symbolické výrazy}}{C-M-t}
\section{Kontrola pravopisu}
\key{kontrola pravopisu aktuálního slova}{M-\$}
\metax{kontrola pravopisu všech slov v oblasti}{M-x ispell-region}
\metax{kontrola pravopisu celého bufferu}{M-x ispell-buffer}
\section{Tagy}
\key{najít tag (definici)}{M-.}
\key{najít další výskyt tagu}{C-u M-.}
\metax{zadat soubor s novými tagy}{M-x visit-tags-table}
\metax{vyhledat reg.\ výraz v~souborech s~tagy}{M-x tags-search}
\metax{spustit nahrazování pro ony soubory}{M-x tags-query-replace}
\key{pokračovat v~prohledávání nebo nahrazování}{M-,}
\section{Příkazový interpret}
\key{vykonat shellový příkaz}{M-!}
\key{vykonat shellový příkaz na oblast}{M-|}
\key{zfiltrovat oblast shellovým příkazem}{C-u M-|}
\key{spustit shell v okně \kbd{*shell*}}{M-x shell}
\section{Obdélníky}
\key{zkopírovat obdélník do registru}{C-x r r}
\key{zrušit obdélník}{C-x r k}
\key{vhodit obdélník}{C-x r y}
\key{vložit obdélník mezer}{C-x r o}
\key{nahradit obdélník obdélníkem mezer}{C-x r c}
\key{nahradit řádky obdélníku zadaným řetězcem}{C-x r t}
\section{Zkratky}
\key{přidat globální zkratku}{C-x a g}
\key{přidat lokální zkratku}{C-x a l}
\key{přidat globální expanzi pro zkratku }{C-x a i g}
\key{přidat lokální expanzi pro zkratku}{C-x a i l}
\key{expandovat zkratku}{C-x a e}
\key{dynamická expanze předcházejícího slova}{M-/}
\section{Regulární výrazy}
\key{libovolný znak kromě nového řádku}{. {\rm(tečka)}}
\key{žádné nebo několik opakování}{*}
\key{jedno nebo více opakování}{+}
\key{žádné nebo jedno opakování}{?}
\key{zrušit zvláštní význam znaku {\it c\/} ve výrazu}{\\{\it c}}
\key{alternativa (\uv{nebo})}{\\|}
\key{skupina}{\\( {\rm$\ldots$} \\)}
\key{stejný text jako {\it n\/}-tá skupina}{\\{\it n}}
\key{hranice slova}{\\b}
\key{nikoliv hranice slova}{\\B}
\paralign to \hsize{#\tabskip=10pt plus 1 fil&#\tabskip=0pt&#\cr
\threecol{{\bf element}}{{\bf začátek}}{{\bf konec}}
\threecol{řádek}{^}{\$}
\threecol{slovo}{\\<}{\\>}
\threecol{buffer}{\\`}{\\'}
\threecol{{\bf třída znaků}}{{\bf odpovídá}}{{\bf neodpovídá}}
\threecol{explicitní množina}{[ {\rm$\ldots$} ]}{[^ {\rm$\ldots$} ]}
\threecol{slovotvorný znak}{\\w}{\\W}
\threecol{znak se syntaxí {\it c}}{\\s{\it c}}{\\S{\it c}}
}
\section{Mezinárodní znakové sady}
\metax{zadat hlavní jazyk}{M-x set-language-environment}
\metax{zobrazit všechny vstupní metody}{M-x list-input-methods}
\key{zapnout nebo vypnout vstupní metodu}{C-\\}
\key{zadat kódování pro následující příkaz}{C-x RET c}
\metax{zobrazit všechna kódování}{M-x list-coding-systems}
\metax{změnit preferované kódování}{M-x prefer-coding-system}
\section{Info}
\key{spustit Info}{C-h i}
\key{najít zadanou funkci nebo proměnnou v~Info}{C-h C-i}
\beginindentedkeys
Pohyb uvnitř uzlů:
\key{rolování vpřed}{SPC}
\key{rolování zpět}{DEL}
\key{na začátek uzlu}{. {\rm (tečka)}}
Pohyb mezi uzly:
\key{{\bf další} uzel}{n}
\key{{\bf předchozí} uzel}{p}
\key{{\bf nadřazený} uzel}{u}
\key{vybrat z~menu podle názvu}{m}
\key{vybrat {\it n\/}-tou položku menu (1--9)}{{\it n}}
\key{nejbližší příští křížový odkaz (návrat \kbd{l})}{f}
\key{vrátit se do naposledy prohlíženého uzlu}{l}
\key{vrátit se do adresáře uzlů}{d}
\key{přejít do kteréhokoliv uzlu podle jména}{g}
Další:
\key{spustit {\bf tutoriál} k~Info}{h}
\key{prohledat uzly na řetězec}{M-s}
\key{{\bf ukončit} Info}{q}
\endindentedkeys
\section{Registry}
\key{uložit oblast do registru}{C-x r s}
\key{vložit obsah registru do bufferu}{C-x r i}
\key{uložit pozici kurzoru do registru}{C-x r SPC}
\key{skočit na pozici uloženou v~registru}{C-x r j}
\section{Klávesová makra}
\key{{\bf zahájit} definování klávesového makra}{C-x (}
\key{{\bf zakončit} definování klávesového makra}{C-x )}
\key{{\bf vykonat} poslední definované makro}{C-x e}
\key{připojit k~poslednímu klávesovému makru}{C-u C-x (}
\metax{pojmenovat poslední makro}{M-x name-last-kbd-macro}
\metax{vložit do bufferu lispovou definici}{M-x insert-kbd-macro}
\section{Příkazy související s~Emacs Lispem}
\key{vyhodnotit {\bf výraz} před kurzorem}{C-x C-e}
\key{vyhodnotit {\bf funkci} pod kurzorem}{C-M-x}
\metax{vyhodnotit {\bf oblast}}{M-x eval-region}
\key{načíst a vyhodnotit výraz v~minibufferu}{M-:}
\metax{načíst soubor ze systémového adresáře}{M-x load-library}
\section{Jednoduchá přizpůsobení}
\metax{nastavit proměnné a faces}{M-x customize}
Definice obecné klávesové zkratky v~Emacs Lispu (příklad):
\beginexample(global-set-key "\\C-cg" 'goto-line)
(global-set-key "\\M-\#" 'query-replace-regexp)
\endexample
\section{Zápis příkazů}
\beginexample(defun \<command-name> (\<args>)
"\<documentation>" (interactive "\<template>")
\<body>)
\endexample
Příklad:
\beginexample(defun this-line-to-top-of-window (line)
"Reposition line point is on to top of window.
With ARG, put point on line ARG."
(interactive "P")
(recenter (if (null line)
0
(prefix-numeric-value line))))
\endexample
Specifikace \kbd{interactive} říká, jak interaktivně načíst ar\-gu\-men\-ty.
Více se dozvíte po provedení \kbd{C-h f interactive}.
\copyrightnotice
\bye