view etc/ru-refcard.tex @ 73331:f21883dcffa9

Merge from upstream, upto version 5.22. After 5.0: `cperl-add-tags-recurse-noxs-fullpath': new function (for -batch mode) After 5.1: ;; Major edit. Summary of most visible changes: ;; a) Multiple <<HERE per line allowed. ;; b) Handles multiline subroutine declaration headers (with comments). ;; (The exception is `cperl-etags' - but it is not used in the rest ;; of the mode.) ;; c) Fontifies multiline my/our declarations (even with comments, ;; and with legacy `font-lock'). ;; d) Major speedup of syntaxification, both immediate and postponed ;; (3.5x to 15x [for different CPUs and versions of Emacs] on the ;; huge real-life document I tested). ;; e) New bindings, edits to imenu. ;; f) "_" is made into word-char during fontification/syntaxification; ;; some attempts to recognize non-word "_" during other operations too. ;; g) Detect bug in Emacs with `looking-at' inside `narrow' and bulk out. ;; h) autoload some more perldoc-related stuff ;; i) Some new convenience features: ISpell POD/HEREDOCs, narrow-to-HEREDOC ;; j) Attempt to incorporate XEmacs edits which reached me Fine-grained changelog: `cperl-hook-after-change': New configuration variable `cperl-vc-sccs-header': Likewise. `cperl-vc-sccs-header': Likewise. `cperl-vc-header-alist': Default via two preceding variables `cperl-invalid-face': Remove double quoting under XEmacs (still needed under 21.2) `cperl-tips': Update URLs for resources `cperl-problems': Likewise. `cperl-praise': Mention new features New C-c key bindings: for `cperl-find-bad-style', `cperl-pod-spell', `cperl-here-doc-spell', `cperl-narrow-to-here-doc', `cperl-perdoc', `cperl-perldoc-at-point' CPerl Mode menu changes: "Fix style by spaces", "Imenu on Perl Info" moved, new submenu of Tools with Ispell entries and narrowing. `cperl-after-sub-regexp': New defsubst `cperl-imenu--function-name-regexp-perl': Use `cperl-after-sub-regexp', Allows heads up to head4 Allow "package;" `defun-prompt-regexp': Use `cperl-after-sub-regexp', `paren-backwards-message': ??? Something for XEmacs??? `cperl-mode': Never auto-switch abbrev-mode off Try to allow '_' be non-word char Do not use `font-lock-unfontify-region-function' on XEmacs Reset syntax cache on mode start Support multiline facification (even on legacy `font-lock') `cperl-facemenu-add-face-function': ??? Some contributed code ??? `cperl-after-change-function': Since `font-lock' and `lazy-lock' refuse to inform us whether the fontification is due to lazy calling or due to edit to a buffer, install our own hook (controlled by `cperl-hook-after-change') `cperl-electric-pod': =cut may have been recognized as start `cperl-block-p': Moved, updated for attributes `cperl-calculate-indent': Try to allow '_' be non-word char Support subs with attributes `cperl-where-am-i': Queit (?) a warning `cperl-cached-syntax-table' New function `cperl-forward-re': Use `cperl-cached-syntax-table' `cperl-unwind-to-safe': Recognize `syntax-type' property changing in a middle of line `cperl-find-sub-attrs': New function `cperl-find-pods-heres': Allow many <<EOP per line Allow subs with attributes Major speedups (3.5x..15x on a real-life test file nph-proxy.pl) Recognize "extproc " (OS/2) case-folded and only at start /x on s///x with empty replacement was not recognized Better comments `cperl-after-block-p': Remarks on diff with `cperl-block-p' Allow subs with attributes, labels Do not confuse "else::foo" with "else" Minor optimizations... `cperl-after-expr-p': Try to allow '_' be non-word char `cperl-fill-paragraph': Try to detect a major bug in Emacs with `looking-at' inside `narrow' and bulk out if found `cperl-imenu--create-perl-index': Updates for new `cperl-imenu--function-name-regexp-perl' `cperl-outline-level': Likewise. `cperl-init-faces': Allow multiline subroutine headers and my/our declarations, and ones with comments Allow subroutine attributes `cperl-imenu-on-info': Better docstring. `cperl-etags' Rudimentary support for attributes Support for packages and "package;" `cperl-add-tags-recurse-noxs': Better (?) docstring `cperl-add-tags-recurse-noxs-fullpath': Likewise. `cperl-tags-hier-init': Misprint for `fboundp' fixed `cperl-not-bad-style-regexp': Try to allow '_' be non-word char `cperl-perldoc': Add autoload `cperl-perldoc-at-point': Likewise. `cperl-here-doc-spell': New function `cperl-pod-spell': Likewise. `cperl-map-pods-heres': Likewise. `cperl-get-here-doc-region': Likewise. `cperl-font-lock-fontify-region-function': Likewise (backward compatibility for legacy `font-lock') `cperl-font-lock-unfontify-region-function': Fix style `cperl-fontify-syntaxically': Recognize and optimize away deferred calls with no-change. Governed by `cperl-hook-after-change' `cperl-fontify-update': Recognize that syntaxification region can be larger than fontification one. XXXX we leave `cperl-postpone' property, so this is quadratic... `cperl-fontify-update-bad': Temporary placeholder until it is clear how to implement `cperl-fontify-update'. `cperl-time-fontification': New function `attrib-group': New text attribute `multiline': New value: `syntax-type' text attribute After 5.2: `cperl-emulate-lazy-lock': New function `cperl-fontify-syntaxically': Would skip large regions Add `cperl-time-fontification', `cperl-emulate-lazy-lock' to menu Some globals were declared, but uninitialized After 5.3, 5.4: `cperl-facemenu-add-face-function': Add docs, fix U<> Copyright message updated. `cperl-init-faces': Work around a bug in `font-lock'. May slow facification down a bit. Misprint for my|our|local for old `font-lock' "our" was not fontified same as "my|local" Highlight variables after "my" etc even in a middle of an expression Do not facify multiple variables after my etc unless parentheses are present After 5.5, 5.6 `cperl-fontify-syntaxically': after-change hook could reset `cperl-syntax-done-to' to a middle of line; unwind to BOL. After 5.7: `cperl-init-faces': Allow highlighting of local ($/) `cperl-problems-old-emaxen': New variable (for the purpose of DOCSTRING). `cperl-problems': Remove fixed problems. `cperl-find-pods-heres': Recognize #-comments in m##x too Recognize charclasses (unless delimiter is \). `cperl-fontify-syntaxically': Unwinding to safe was done in wrong order `cperl-regexp-scan': Update docs `cperl-beautify-regexp-piece': use information got from regexp scan After 5.8: Major user visible changes: Recognition and fontification of character classes in RExen. Variable indentation of RExen according to groups `cperl-find-pods-heres': Recognize POSIX classes in REx charclasses Fontify REx charclasses in variable-name face Fontify POSIX charclasses in "type" face Fontify unmatched "]" in function-name face Mark first-char of HERE-doc as `front-sticky' Reset `front-sticky' property when needed `cperl-calculate-indent': Indents //x -RExen accordning to parens level `cperl-to-comment-or-eol': Recognize ends of `syntax-type' constructs `cperl-backward-to-noncomment': Recognize stringy `syntax-type' constructs Support `narrow'ed buffers. `cperl-praise': Remove a reservation `cperl-make-indent': New function `cperl-indent-for-comment': Use `cperl-make-indent' `cperl-indent-line': Likewise. `cperl-lineup': Likewise. `cperl-beautify-regexp-piece': Likewise. `cperl-contract-level': Likewise. `cperl-toggle-set-debug-unwind': New function New menu entry for this `fill-paragraph-function': Use when `boundp' `cperl-calculate-indent': Take into account groups when indenting RExen `cperl-to-comment-or-eol': Recognize # which end a string `cperl-modify-syntax-type': Make only syntax-table property non-sticky `cperl-fill-paragraph': Return t: needed for `fill-paragraph-function' `cperl-fontify-syntaxically': More clear debugging message `cperl-pod2man-build-command': XEmacs portability: check `Man-filter-list' `cperl-init-faces': More complicated highlight even on XEmacs (new) Merge cosmetic changes from XEmacs After 5.9: `cperl-1+': Moved to before the first use `cperl-1-': Likewise. After 5.10: This code may lock Emacs hard!!! Use on your own risk! `cperl-font-locking': New internal variable `cperl-beginning-of-property': New function `cperl-calculate-indent': Use `cperl-beginning-of-property' instead of `previous-single-property-change' `cperl-unwind-to-safe': Likewise. `cperl-after-expr-p': Likewise. `cperl-get-here-doc-region': Likewise. `cperl-font-lock-fontify-region-function': Likewise. `cperl-to-comment-or-eol': Do not call `cperl-update-syntaxification' recursively Bound `next-single-property-change' via `point-max' `cperl-unwind-to-safe': Bound likewise `cperl-font-lock-fontify-region-function': Likewise. `cperl-find-pods-heres': Mark as recursive for `cperl-to-comment-or-eol' Initialization of `cperl-font-lock-multiline-start' could be missed if the "main" fontification did not run due to the keyword being already fontified. `cperl-pod-spell': Return t from do-one-chunk function `cperl-map-pods-heres': Stop when the worker returns nil Call `cperl-update-syntaxification' `cperl-get-here-doc-region': Call `cperl-update-syntaxification' `cperl-get-here-doc-delim': Remove unused function After 5.11: The possible lockup of Emacs (introduced in 5.10) fixed `cperl-unwind-to-safe': `cperl-beginning-of-property' won't return nil `cperl-syntaxify-for-menu': New customization variable `cperl-select-this-pod-or-here-doc': New function `cperl-get-here-doc-region': Extra argument Do not adjust pos by 1 New menu entries (Perl/Tools): Selection of current POD or HERE-DOC section (Debugging CPerl:) backtrace on fontification After 5.12: `cperl-cached-syntax-table': use `car-safe' `cperl-forward-re': Remove spurious argument SET-ST Add documentation `cperl-forward-group-in-re': New function `cperl-find-pods-heres': Find and highlight (?{}) blocks in RExen (XXXX Temporary (?) hack is to syntax-mark them as comment) After 5.13: `cperl-string-syntax-table': Make { and } not-grouping (Sometimes they ARE grouping in RExen, but matching them would only confuse in many situations when they are not) `beginning-of-buffer': Replaced two occurences with goto-char... `cperl-calculate-indent': `char-after' could be nil... `cperl-find-pods-heres': REx can start after "[" too Hightlight (??{}) in RExen too `cperl-maybe-white-and-comment-rex': New constant `cperl-white-and-comment-rex': Likewise. XXXX Not very efficient, but hard to make better while keeping 1 group After 5.13: `cperl-find-pods-heres': $foo << identifier() is not a HERE-DOC Likewise for 1 << identifier After 5.14: `cperl-find-pods-heres': Different logic for $foo .= <<EOF etc Error-less condition-case could fail `cperl-font-lock-fontify-region-function': Likewise. `cperl-init-faces': Likewise. After 5.15: `cperl-find-pods-heres': Support property REx-part2 `cperl-calculate-indent': Likewise. Don't special-case REx with non-empty 1st line `cperl-find-pods-heres': In RExen, highlight non-literal backslashes Invert highlighting of charclasses: now the envelop is highlighted Highlight many others 0-length builtins `cperl-praise': Mention indenting and highlight in RExen After 5.15: `cperl-find-pods-heres': Highlight capturing parens in REx After 5.16: `cperl-find-pods-heres': Highlight '|' for alternation Initialize `font-lock-warning-face' if not present `cperl-find-pods-heres': Use `font-lock-warning-face' instead of `font-lock-function-name-face' `cperl-look-at-leading-count': Likewise. `cperl-find-pods-heres': localize `font-lock-variable-name-face' `font-lock-keyword-face' (needed for batch processing) etc Use `font-lock-builtin-face' for builtin in REx Now `font-lock-variable-name-face' is used for interpolated variables Use "talking aliases" for faces inside REx Highlight parts of REx (except in charclasses) according to the syntax and/or semantic Syntax-mark a {}-part of (?{}) as "comment" (it was the ()-part) Better logic to distinguish what is what in REx `cperl-tips-faces': Document REx highlighting `cperl-praise': Mention REx syntax highlight etc. After 5.17: `cperl-find-sub-attrs': Would not always manage to print error message `cperl-find-pods-heres': localize `font-lock-constant-face' After 5.18: `cperl-find-pods-heres': Misprint in REx for parsing REx Very minor optimization `my-cperl-REx-modifiers-face' got quoted Recognize "print $foo <<END" as HERE-doc Put `REx-interpolated' text attribute if needed `cperl-invert-if-unless-modifiers': New function `cperl-backward-to-start-of-expr': Likewise. `cperl-forward-to-end-of-expr': Likewise. `cperl-invert-if-unless': Works in "the opposite way" too Cursor position on return is on the switch-word Indents comments better `REx-interpolated': New text attribute `cperl-next-interpolated-REx': New function `cperl-next-interpolated-REx-0': Likewise. `cperl-next-interpolated-REx-1': Likewise. "\C-c\C-x", "\C-c\C-y", "\C-c\C-v": New keybinding for these functions Perl/Regexp menu: 3 new entries for `cperl-next-interpolated-REx' `cperl-praise': Mention finded interpolated RExen After 5.19: `cperl-init-faces': Highlight %$foo, @$foo too `cperl-short-docs': Better docs for system, exec `cperl-find-pods-heres': Better detect << after print {FH} <<EOF etc. Would not find HERE-doc ended by EOF without NL `cperl-short-docs': Correct not-doubled \-escapes start block: Put some `defvar' for stuff gone from XEmacs After 5.20: initial comment: Extend copyright, fix email address `cperl-indent-comment-at-column-0': New customization variable `cperl-comment-indent': Indentation after $#a would increasy by 1 `cperl-mode': Make `defun-prompt-regexp' grok BEGIN/END etc `cperl-find-pods-heres': Mark CODE of s///e as `syntax-type' `multiline' `cperl-at-end-of-expr': Would fail if @BAR=12 follows after ";" `cperl-init-faces': If `cperl-highlight-variables-indiscriminately' highlight $ in $foo too (UNTESTED) `cperl-set-style': Docstring missed some available styles toplevel: Menubar/Perl/Indent-Styles had FSF, now K&R Change "Current" to "Memorize Current" `cperl-indent-wrt-brace': New customization variable; the default is as for pre-5.2 version `cperl-styles-entries': Keep `cperl-extra-newline-before-brace-multiline' `cperl-style-alist': Likewise. `cperl-fix-line-spacing': Support `cperl-merge-trailing-else' being nil, and `cperl-extra-newline-before-brace' etc being t `cperl-indent-exp': Plans B and C to find continuation blocks even if `cperl-extra-newline-before-brace' is t After 5.21: Improve some docstrings concerning indentation. `cperl-indent-rules-alist': New variable `cperl-sniff-for-indent': New function name (separated from `cperl-calculate-indent') `cperl-calculate-indent': Separated the sniffer and the indenter; uses `cperl-sniff-for-indent' now `cperl-comment-indent': Test for `cperl-indent-comment-at-column-0' was inverted; Support `comment-column' = 0
author Stefan Monnier <monnier@iro.umontreal.ca>
date Wed, 11 Oct 2006 06:47:35 +0000
parents ab6bbd94ecf9
children 3ef60cc45b6d
line wrap: on
line source

% Copyright (C) 1997, 2002, 2003, 2004, 2005,
%   2006 Free Software Foundation, Inc.

\documentclass[10pt]{article}
\usepackage{multicol,tabularx}
\usepackage[a4paper,hmargin={2cm,2cm},vmargin={2cm,2cm},nohead,twoside]{geometry}
\usepackage[T2A]{fontenc}
\usepackage[koi8-r]{inputenc}
\usepackage[english,russian]{babel}
\usepackage{verbatim}
%\usepackage{enumerate,calc}
%\usepackage{indentfirst,amsmath,graphicx,citehack,floatflt}
%
%\usepackage{pscyr}
%\renewcommand{\rmdefault}{fha}

\newlength{\ColWidth}
\setlength{\ColWidth}{120mm}
\newlength{\ColThreeWidth}
\setlength{\ColThreeWidth}{25mm}

\newcommand{\versionnumber}[0]{2.3}
\newcommand{\nyear}[0]{2006}

\newcommand\shortcopyrightnotice[0]{\vskip 1ex plus 2 fill
  \centerline{\footnotesize \copyright\ \nyear\ Free Software Foundation, Inc.
  Permissions on back.  v\versionnumber}}

\newcommand\copyrightnotice[0]{
\vskip 1ex plus 2 fill\begingroup\footnotesize
\centerline{Copyright \copyright\ \nyear\ Free Software Foundation, Inc.}
\centerline{v\versionnumber{} for GNU Emacs version 22, June \nyear}
\centerline{designed by Stephen Gildea}
\centerline{Перевод Alex Ott <alexott@gmail.com>}

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}

\hyphenation{mini-buf-fer}

\parindent 0pt
%\parskip 0.5ex plus .2ex minus .2ex

\newcommand{\kbd}[1]{\texttt{#1}}

\begin{document}

%\begin{multicols}{3}

\centerline{Справочник команд GNU Emacs}
\centerline{(для версии 22)}

\section{Запуск Emacs}

Для запуска GNU Emacs 22, просто наберите имя программы: \kbd{emacs}

\section{Выход из Emacs}

\begin{tabular}{p{\ColWidth}p{\ColThreeWidth}p{\ColThreeWidth}}
Приостановить работу Emacs (или свернуть в иконку при работе в X) & \kbd{C-z} \\
Выйти из Emacs & \kbd{C-x C-c} \\
\end{tabular}

\section{Файлы}

\begin{tabular}{p{\ColWidth}p{\ColThreeWidth}p{\ColThreeWidth}}
{\bf открыть} файл в Emacs & \kbd{C-x C-f} \\
{\bf сохранить} файл обратно на диск & \kbd{C-x C-s} \\
сохранить {\bf все} файлы & \kbd{C-x s} \\
{\bf вставить} содержимое другого файла в текущий буфер & \kbd{C-x i} \\
открыть нужный вам файл вместо текущего & \kbd{C-x C-v} \\
сохранить буфер в указанном файле & \kbd{C-x C-w} \\
Переключить состояние буфера ``только для чтения'' & \kbd{C-x C-q} \\
\end{tabular}

\section{Получение помощи}

Справочная система достаточно проста. Hажмите \kbd{C-h} (или \kbd{F1}) и
следуйте инструкциям.  Если вы в первый раз работаете с Emacs, то наберите
\kbd{C-u C-h t Russian RET} для вызова {\bf учебника}.

\begin{tabular}{p{\ColWidth}p{\ColThreeWidth}p{\ColThreeWidth}}
Скрыть окно справки & \kbd{C-x 1} \\
Прокрутить окно справки & \kbd{C-M-v} \\

apropos: показать команды, соответствующие строке & \kbd{C-h a} \\
показать имя функции, которая запускается клавишей & \kbd{C-h k} \\
получить информацию о функции & \kbd{C-h f} \\
получить информацию о режиме & \kbd{C-h m} \\
\end{tabular}

\section{Исправление ошибок}

\begin{tabular}{p{\ColWidth}p{\ColThreeWidth}p{\ColThreeWidth}}
{\bf прервать} частично набранную или исполняемую команду & \kbd{C-g} \\
{\bf восстановить} файл, потерянный при крахе системы & \kbd{M-x recover-file} \\
{\bf отменить} нежелательные изменения & \kbd{C-x u, C-\_ {\rm или} C-/} \\
восстановить буфер в первоначальное состояние & \kbd{M-x revert-buffer} \\
перерисовать заполненный мусором экран & \kbd{C-l} \\
\end{tabular}

\section{Hаращиваемый поиск}

\begin{tabular}{p{\ColWidth}p{\ColThreeWidth}p{\ColThreeWidth}}
поиск вперед & \kbd{C-s} \\
поиск назад & \kbd{C-r} \\
поиск по регулярному выражению вперед & \kbd{C-M-s} \\
поиск по регулярному выражению назад & \kbd{C-M-r} \\

выбрать предыдущую строку поиска & \kbd{M-p} \\
выбрать следующую строку поиска & \kbd{M-n} \\
прекратить наращиваемый поиск & \kbd{RET} \\
отменить эффект ввода последнего символа & \kbd{DEL} \\
прервать текущий поиск & \kbd{C-g} \\
\end{tabular}

Для повтора поиска в любом направлении используйте клавиши \kbd{C-s} или
\kbd{C-r}. Если Emacs все еще производит поиск, \kbd{C-g} отменит только
не выполненную часть.

\section{Перемещение}

\begin{tabular}{p{\ColWidth}p{\ColThreeWidth}p{\ColThreeWidth}}
{\bf единицы перемещения} & {\bf назад} & {\bf вперед} \\
символ & \kbd{C-b} & \kbd{C-f} \\
слово & \kbd{M-b} & \kbd{M-f} \\
строка & \kbd{C-p} & \kbd{C-n} \\
начало (или конец) строки & \kbd{C-a} & \kbd{C-e} \\
предложение & \kbd{M-a} & \kbd{M-e} \\
абзац & \kbd{M-\{} & \kbd{M-\}} \\
страница & \kbd{C-x [} & \kbd{C-x ]} \\
выражение (sexp) & \kbd{C-M-b} & \kbd{C-M-f} \\
функция & \kbd{C-M-a} & \kbd{C-M-e} \\
переход в начало (или конец) буфера & \kbd{M-<} & \kbd{M->} \\

\end{tabular}

\begin{tabular}{p{\ColWidth}l}
прокрутка экрана вниз & \kbd{C-v} \\
прокрутка экрана вверх & \kbd{M-v} \\
прокрутка влево & \kbd{C-x <} \\
прокрутка вправо & \kbd{C-x >} \\
установка текущей строки в центр экрана & \kbd{C-u C-l} \\
\end{tabular}

\section{Уничтожение и удаление}

\begin{tabular}{p{\ColWidth}p{\ColThreeWidth}p{\ColThreeWidth}}
{\bf уничтожаемый объект} & {\bf назад} & {\bf вперед} \\
символ (удаление, а не уничтожение) & \kbd{DEL} & \kbd{C-d} \\
слово & \kbd{M-DEL} & \kbd{M-d} \\
строка (до конца строки) & \kbd{M-0 C-k} & \kbd{C-k} \\
предложение & \kbd{C-x DEL} & \kbd{M-k} \\
выражение & \kbd{M-- C-M-k} & \kbd{C-M-k} \\
\end{tabular}


\begin{tabular}{p{\ColWidth}l}
уничтожить {\bf область} & \kbd{C-w} \\
скопировать область в список уничтожений & \kbd{M-w} \\
уничтожить до следующего вхождения символа {\it char} & \kbd{M-z {\it char}} \\

вставить последний уничтоженный объект & \kbd{C-y} \\
заменить только что восстановленный текст предшествующим уничтоженным текстом & M-y \\
\end{tabular}

\section{Пометка}

\begin{tabular}{p{\ColWidth}l}
установить пометки & \kbd{C-@ {\rm или} C-SPC} \\
поменять местами курсор и пометку & \kbd{C-x C-x} \\

пометить {\it arg\/} {\bf слов} & \kbd{M-@} \\
пометить {\bf параграф} & \kbd{M-h} \\
пометить {\bf страницу} & \kbd{C-x C-p} \\
пометить {\bf выражение} & \kbd{C-M-@} \\
пометить {\bf функцию} & \kbd{C-M-h} \\
пометить весь {\bf буфер} & \kbd{C-x h} \\
\end{tabular}

\section{Замена с запросом}

\begin{tabular}{p{\ColWidth}l}
интерактивная замена текстовой строки & \kbd{M-\%} \\
с использованием регулярных выражений & \kbd{M-x query-replace-regexp} \\
\end{tabular}

В режиме интерактивной замены пользователю доступны следующие команды:

\begin{tabular}{p{\ColWidth}l}
{\bf заменить} данное соответствие, перейти к следующему & \kbd{SPC} \\
заменить это соответствие, не перемещаться & \kbd{,} \\
{\bf пропустить} соответствие без замены & \kbd{DEL} \\
заменить все оставшиеся соответствия & \kbd{!} \\
{\bf вернуться} к предыдущему соответствию & \kbd{\^} \\
{\bf выйти} из режима ``замена с запросом'' & \kbd{RET} \\
войти в режим рекурсивного редактирования (для выхода используется \kbd{C-M-c}) & \kbd{C-r} \\
\end{tabular}

\section{Использование нескольких окон}

Команды, приведенные во втором столбце, применяются к другому
фрэйму (окну используемой оконной системы).

\begin{tabular}{p{\ColWidth}l}
удалить все остальные окна & \kbd{C-x 1} \\
\end{tabular}

\begin{tabular}{p{\ColWidth}p{\ColThreeWidth}p{\ColThreeWidth}}
разбить окно по горизонтали & \kbd{C-x 2\ \ \ \ } & \kbd{C-x 5 2} \\
удалить данное окно & \kbd{C-x 0\ \ \ \ } & \kbd{C-x 5 0} \\

разбить окно по вертикали & \kbd{C-x 3} \\

выполнить прокрутку в другом окне & \kbd{C-M-v} \\
\end{tabular}

\begin{tabular}{p{\ColWidth}p{\ColThreeWidth}p{\ColThreeWidth}}
переместить курсор в другое окно & \kbd{C-x o} & \kbd{C-x 5 o} \\

выбрать буфер в другом окне & \kbd{C-x 4 b} & \kbd{C-x 5 b} \\
показать буфер в другом окне & \kbd{C-x 4 C-o} & \kbd{C-x 5 C-o} \\
загрузить файл в другое окно & \kbd{C-x 4 f} & \kbd{C-x 5 f} \\
открыть файл в режиме чтения в другом окне & \kbd{C-x 4 r} & \kbd{C-x 5 r} \\
запустить Dired в другом окне & \kbd{C-x 4 d} & \kbd{C-x 5 d} \\
найти таг в другом окне & \kbd{C-x 4 .} & \kbd{C-x 5 .} \\

\end{tabular}

\begin{tabular}{p{\ColWidth}l}
увеличить высоту окна & \kbd{C-x \^} \\
сузить текущее окно & \kbd{C-x \{} \\
расширить текущее окно & \kbd{C-x \}} \\
\end{tabular}

\section{Форматирование}

\begin{tabular}{p{\ColWidth}l}
сделать отступ для текущей {\bf строки} (в зависимости от режима) & \kbd{TAB} \\
сделать отступ для {\bf области} (в зависимости от режима) & \kbd{C-M-$\backslash$} \\
сделать отступ для {\bf выражения} (в зависимости от режима) & \kbd{C-M-q} \\
сделать отступ к заданной {\it arg\/} колонке & \kbd{C-x TAB} \\

вставить новую строку после курсора & \kbd{C-o} \\
сдвинуть остаток строки вертикально вниз & \kbd{C-M-o} \\
удалить пустые строки вокруг курсора & \kbd{C-x C-o} \\
объединить строку с предыдущей (со следующими arg) & \kbd{M-\^} \\
удалить пустое пространство вокруг курсора & \kbd{M-$\backslash$} \\
поместить только один пробел в позиции курсора & \kbd{M-SPC} \\

отформатировать текущий параграф & \kbd{M-q} \\
установить столбец заполнения & \kbd{C-x f} \\
установить префикс заполнения каждой строки & \kbd{C-x .} \\

установить начертание (face) & \kbd{M-g} \\
\end{tabular}

\section{Изменение регистра}

\begin{tabular}{p{\ColWidth}l}
сделать буквы слова заглавными & \kbd{M-u} \\
сделать буквы слова строчными & \kbd{M-l} \\
сделать первую букву слова заглавной & \kbd{M-c} \\

сделать буквы области заглавными & \kbd{C-x C-u} \\
сделать буквы области строчными & \kbd{C-x C-l} \\
\end{tabular}

\section{Минибуфер}

Следующие клавиши (ключи) определены в минибуфере.

\begin{tabular}{p{\ColWidth}l}
дополнить насколько возможно & \kbd{TAB} \\
дополнить до одного слова & \kbd{SPC} \\
дополнить и выполнить & \kbd{RET} \\
показать возможные дополнения & \kbd{?} \\
выбрать предыдущую строку из истории ввода & \kbd{M-p} \\
выбрать следующую строку из истории ввода & \kbd{M-n} \\
поиск в истории по регулярному выражению в обратном напрвлении & \kbd{M-r} \\
поиск в истории по регулярному выражению в прямом напрвлении & \kbd{M-s} \\
прервать команду & \kbd{C-g} \\
\end{tabular}

Наберите \kbd{C-x ESC ESC} для редактирования и повторения последней
команды набранной в минибуфере. Наберите \kbd{F10}, чтобы работать с
пунктами меню при помощи команд минибуфера.

\section{Буфера}

\begin{tabular}{p{\ColWidth}l}
выбрать другой буфер & \kbd{C-x b} \\
выдать список всех буферов & \kbd{C-x C-b} \\
уничтожить буфер & \kbd{C-x k} \\
\end{tabular}

\section{Перестановка данных}

\begin{tabular}{p{\ColWidth}l}
обменять местами {\bf символы} & \kbd{C-t} \\
обменять местами  {\bf слова} & \kbd{M-t} \\
обменять местами  {\bf строки} & \kbd{C-x C-t} \\
обменять местами  {\bf выражения} & \kbd{C-M-t} \\
\end{tabular}

\section{Проверка правописания}

\begin{tabular}{p{\ColWidth}l}
проверить текущее слово & \kbd{M-\$} \\
проверить все слова в области & \kbd{M-x ispell-region} \\
выполнить проверку всего буфера & \kbd{M-x ispell-buffer} \\
\end{tabular}

\section{Теги}

\begin{tabular}{p{\ColWidth}l}
найти определение тега & \kbd{M-.} \\
найти следующее вхождение тега & \kbd{C-u M-.} \\
использовать новый файл с тегами & \kbd{M-x visit-tags-table} \\

поиск по шаблону по всей таблице тегов & \kbd{M-x tags-search} \\
выполнить query-replace над всеми файлами & \kbd{M-x tags-query-replace} \\
продолжить поиск или поиск-замену тега & \kbd{M-,} \\
\end{tabular}

\section{Командные процессоры}

\begin{tabular}{p{\ColWidth}l}
Выполнить команду командного процессора & \kbd{M-!} \\
выполнить команду командного процессора над областью & \kbd{M-|} \\
пропустить содержимое области через команду командного процессора & \kbd{C-u M-|} \\
запустить командный процессор в окне \kbd{*shell*} & \kbd{M-x shell} \\
\end{tabular}

\section{Прямоугольные области}

\begin{tabular}{p{\ColWidth}l}
скопировать прямоугольную область в регистр & \kbd{C-x r r} \\
удалить прямоугольную область & \kbd{C-x r k} \\
вставить последную уничтоженную прямоугольную область & \kbd{C-x r y} \\
открыть прямоугольную область, сдвигая текст вправо & \kbd{C-x r o} \\
очистить прямоугольную область & \kbd{C-x r c} \\
предварить каждую строку строкой текста & \kbd{C-x r t} \\
\end{tabular}

\section{Сокращения}

\begin{tabular}{p{\ColWidth}l}
добавить глобальное сокращение & \kbd{C-x a g} \\
добавить локальное для режима сокращение & \kbd{C-x a l} \\
добавить глобальное значение для данного сокращения & \kbd{C-x a i g} \\
добавить специфическое для режима значение данного сокращения & \kbd{C-x a i l} \\
явно вставить значение для сокращения & \kbd{C-x a e} \\

динамически дополнить предыдущее слово & \kbd{M-/} \\
\end{tabular}

\section{Регулярные выражения}

\begin{tabular}{p{\ColWidth}l}
любой одиночный символ (за исключением символа новой строки) & \kbd{. {\rm(dot)}} \\
ноль или более повторений & \kbd{*} \\
одно или более повторений & \kbd{+} \\
ноль или одно повторение & \kbd{?} \\
экранировать специальный символ {\it c\/} & \kbd{$\backslash${\it c}} \\
выбор между альтернативами (``или'') & \kbd{$\backslash|$} \\
группировка & \kbd{$\backslash$( {\rm$\ldots$} $\backslash$)} \\
текст в {\it n\/}-й группе & \kbd{$\backslash${\it n}} \\
граница слова & \kbd{$\backslash$b} \\
не граница слова & \kbd{$\backslash$B} \\
\end{tabular}

\begin{tabular}{p{\ColWidth}p{\ColThreeWidth}p{\ColThreeWidth}}
{\bf объект} & {\bf начало соответствия} & {\bf конец соответствия} \\
строка & \kbd{\^} & \kbd{\$} \\
слово & \kbd{$\backslash$<} & \kbd{$\backslash$>} \\
буфер & \kbd{$\backslash$`} & \kbd{$\backslash$'} \\
\end{tabular}

\begin{tabular}{p{\ColWidth}p{\ColThreeWidth}p{\ColThreeWidth}}
{\bf класс символов} & {\bf соответ\-ствует им} & {\bf соответ\-ствует другим} \\
явный набор & \kbd{[ {\rm$\ldots$} ]} & \kbd{[\^ {\rm$\ldots$} ]} \\
символ-буква & \kbd{$\backslash$w} & \kbd{$\backslash$W} \\
символ с синтаксисом {\it c} & \kbd{$\backslash$s{\it c}} & \kbd{$\backslash$S{\it c}} \\
\end{tabular}

\section{Международные наборы символов}

\begin{tabular}{p{\ColWidth}l}
выбрать язык & \kbd{C-x RET l} \\
показать все возможные методы ввода & \kbd{M-x list-input-methods} \\
разрешить или запретить метод ввода & \kbd{C-$\backslash$} \\
установить систему кодирования для следующей команды & \kbd{C-x RET c} \\
показать список всех систем кодирования & \kbd{M-x list-coding-systems} \\
выбрать предпочтительную систему кодирования & \kbd{M-x prefer-coding-system} \\
\end{tabular}

\section{Информация (система Info)}

\begin{tabular}{p{\ColWidth}l}
запустить систему доступа к документации & \kbd{C-h i} \\
найти указанную функцию или переменную в документации & \kbd{C-h S} \\
\end{tabular}

Перемещение внутри узла (нодами):

\begin{tabular}{p{\ColWidth}l}
прокрутка вперед & \kbd{SPC} \\
прокрутка назад & \kbd{DEL} \\
перейти к началу узла & \kbd{. {\rm (dot)}} \\
\end{tabular}

Перемещение между узлами:

\begin{tabular}{p{\ColWidth}l}
{\bf следующий} узел & \kbd{n} \\
{\bf предыдущий} узел & \kbd{p} \\
перейти к {\bf верхнему} узлу & \kbd{u} \\
выбрать пункт меню по имени & \kbd{m} \\
выбрать {\it n\/}-й пункт меню по номеру (1--9) & \kbd{{\it n}} \\
перейти по ссылке (возврат с помощью \kbd{l}) & \kbd{f} \\
возвратится к последнему просмотренному узлу & \kbd{l} \\
возвратится к узлу-каталогу & \kbd{d} \\
Перейти к верхему узлу файла & \kbd{t} \\
перейти к узлу, заданному именем & \kbd{g} \\
\end{tabular}

Другие команды:

\begin{tabular}{p{\ColWidth}l}
запустить {\bf учебник} по системе документации & \kbd{h} \\
поиск темы в индексе & \kbd{i} \\
поиск в узлах с помощью регулярных выражений & \kbd{s} \\
{\bf прекратить работу} с документацией & \kbd{q} \\
\end{tabular}

\section{Регистры}

\begin{tabular}{p{\ColWidth}l}
сохранить область в регистре & \kbd{C-x r s} \\
вставить содержимое регистра в буфер & \kbd{C-x r i} \\

сохранить положение курсора в регистре & \kbd{C-x r SPC} \\
перейти к положению курсора, сохраненному в регистре & \kbd{C-x r j} \\
\end{tabular}

\section{Клавиатурные макросы}

\begin{tabular}{p{\ColWidth}l}
{\bf начать} определение клавиатурного макроса & \kbd{C-x (} \\
{\bf закончить} определение клавиатурного макроса & \kbd{C-x )} \\
{\bf выполнить} последний определенный макрос & \kbd{C-x e} \\
дополнить последний определенный макрос & \kbd{C-u C-x (} \\
задать имя для последнего определенного макроса & \kbd{M-x name-last-kbd-macro} \\
вставить в буфер определение макроса на языке Lisp & \kbd{M-x insert-kbd-macro} \\
\end{tabular}

\section{Команды, связанные с Emacs Lisp}

\begin{tabular}{p{\ColWidth}l}
вычислить {\bf выражение} перед курсором & \kbd{C-x C-e} \\
вычислить текущую функцию {\bf defun} & \kbd{C-M-x} \\
вычислить {\bf область} как выражение & \kbd{M-x eval-region} \\
считать и вычислить выражение из минибуфера & \kbd{M-:} \\
загрузить из стандартного системного каталога & \kbd{M-x load-library} \\
\end{tabular}

\section{Простая настройка}

\begin{tabular}{p{\ColWidth}l}
настроить переменные и оформление (faces) & \kbd{M-x customize} \\
\end{tabular}

% The intended audience here is the person who wants to make simple
% customizations and knows Lisp syntax.

Создание глобальных привязок клавиш (ключей) на Emacs Lisp (примеры):

\begin{verbatim}
(global-set-key "\C-cg" 'goto-line)
(global-set-key "\M-#" 'query-replace-regexp)
\end{verbatim}

\section{Написание команд}

\begin{verbatim}
(defun <command-name> (<args>)
  "<documentation>" (interactive "<template>")
  <body>)
\end{verbatim}

Пример:

\begin{verbatim}
(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))))
\end{verbatim}

Спецификация \kbd{interactive} сообщает о том, что аргумент надо считывать
интерактивно. Для дополнительной информации наберите \kbd{C-h f interactive}.

\copyrightnotice

%\end{multicols}

\end{document}

% Local variables:
% compile-command: "latex ru-refcard"
% coding: cyrillic-koi8
% End:

% arch-tag: 868a12f6-4339-4a14-a56e-4a3937277a9e