1% Copyright (C) 1997, 2002--2021 Free Software Foundation, Inc.
2
3% Author: Stephen Gildea <stepheng+emacs@gildea.com>
4% Russian translation: Alex Ott <alexott@gmail.com>
5
6% This document is free software: you can redistribute it and/or modify
7% it under the terms of the GNU General Public License as published by
8% the Free Software Foundation, either version 3 of the License, or
9% (at your option) any later version.
10
11% As a special additional permission, you may distribute reference cards
12% printed, or formatted for printing, with the notice "Released under
13% the terms of the GNU General Public License version 3 or later"
14% instead of the usual distributed-under-the-GNU-GPL notice, and without
15% a copy of the GPL itself.
16
17% This document is distributed in the hope that it will be useful,
18% but WITHOUT ANY WARRANTY; without even the implied warranty of
19% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
20% GNU General Public License for more details.
21
22% You should have received a copy of the GNU General Public License
23% along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.
24
25\documentclass[10pt]{article}
26\usepackage{multicol,tabularx}
27\usepackage[a4paper,hmargin={2cm,2cm},vmargin={2cm,2cm},nohead,twoside]{geometry}
28\usepackage[T2A]{fontenc}
29\usepackage[utf8]{inputenc}
30\usepackage[english,russian]{babel}
31\usepackage{verbatim}
32%\usepackage{enumerate,calc}
33%\usepackage{indentfirst,amsmath,graphicx,citehack,floatflt}
34%
35%\usepackage{pscyr}
36%\renewcommand{\rmdefault}{fha}
37
38\newlength{\ColWidth}
39\setlength{\ColWidth}{120mm}
40\newlength{\ColThreeWidth}
41\setlength{\ColThreeWidth}{25mm}
42
43\newcommand{\versionemacs}[0]{29} % version of Emacs this is for
44\newcommand{\cyear}[0]{2021}       % copyright year
45
46\newcommand\shortcopyrightnotice[0]{\vskip 1ex plus 2 fill
47  \centerline{\footnotesize \copyright\ \cyear\ Free Software Foundation, Inc.
48  Permissions on back.}}
49
50\newcommand\copyrightnotice[0]{
51\vskip 1ex plus 2 fill\begingroup\footnotesize
52\centerline{Copyright \copyright\ \cyear\ Free Software Foundation, Inc.}
53\centerline{For GNU Emacs version \versionemacs}
54\centerline{Designed by Stephen Gildea}
55\centerline{Перевод Alex Ott <alexott@gmail.com>}
56
57\centerline{Released under the terms of the GNU General Public License
58  version 3 or later.}
59
60\centerline{For more Emacs documentation, and the \TeX{} source for this card,}
61\centerline{see the Emacs distribution, or {\tt https://www.gnu.org/software/emacs}}
62\endgroup}
63
64\hyphenation{mini-buf-fer}
65
66\parindent 0pt
67%\parskip 0.5ex plus .2ex minus .2ex
68
69\newcommand{\kbd}[1]{\texttt{#1}}
70
71\begin{document}
72
73%\begin{multicols}{3}
74
75\centerline{Справочник команд GNU Emacs}
76\centerline{(для версии \versionemacs)}
77
78\section{Запуск Emacs}
79
80Для запуска GNU Emacs \versionemacs, просто наберите имя программы: \kbd{emacs}
81
82\section{Выход из Emacs}
83
84\begin{tabular}{p{\ColWidth}p{\ColThreeWidth}p{\ColThreeWidth}}
85Приостановить работу Emacs (или свернуть в иконку при работе в X) & \kbd{C-z} \\
86Выйти из Emacs & \kbd{C-x C-c} \\
87\end{tabular}
88
89\section{Файлы}
90
91\begin{tabular}{p{\ColWidth}p{\ColThreeWidth}p{\ColThreeWidth}}
92{\bf открыть} файл в Emacs & \kbd{C-x C-f} \\
93{\bf сохранить} файл обратно на диск & \kbd{C-x C-s} \\
94сохранить {\bf все} файлы & \kbd{C-x s} \\
95{\bf вставить} содержимое другого файла в текущий буфер & \kbd{C-x i} \\
96открыть нужный вам файл вместо текущего & \kbd{C-x C-v} \\
97сохранить буфер в указанном файле & \kbd{C-x C-w} \\
98Переключить состояние буфера ``только для чтения'' & \kbd{C-x C-q} \\
99\end{tabular}
100
101\section{Получение помощи}
102
103Справочная система достаточно проста. Hажмите \kbd{C-h} (или \kbd{F1}) и
104следуйте инструкциям.  Если вы в первый раз работаете с Emacs, то наберите
105\kbd{C-u C-h t Russian RET} для вызова {\bf учебника}.
106
107\begin{tabular}{p{\ColWidth}p{\ColThreeWidth}p{\ColThreeWidth}}
108Скрыть окно справки & \kbd{C-x 1} \\
109Прокрутить окно справки & \kbd{C-M-v} \\
110
111apropos: показать команды, соответствующие строке & \kbd{C-h a} \\
112показать имя функции, которая запускается клавишей & \kbd{C-h k} \\
113получить информацию о функции & \kbd{C-h f} \\
114получить информацию о режиме & \kbd{C-h m} \\
115\end{tabular}
116
117\section{Исправление ошибок}
118
119\begin{tabular}{p{\ColWidth}p{\ColThreeWidth}p{\ColThreeWidth}}
120{\bf прервать} частично набранную или исполняемую команду & \kbd{C-g} \\
121{\bf восстановить} файл, потерянный при крахе системы & \kbd{M-x recover-file} \\
122{\bf отменить} нежелательные изменения & \kbd{C-x u, C-\_ {\rm или} C-/} \\
123восстановить буфер в первоначальное состояние & \kbd{M-x revert-buffer} \\
124перерисовать заполненный мусором экран & \kbd{C-l} \\
125\end{tabular}
126
127\section{Hаращиваемый поиск}
128
129\begin{tabular}{p{\ColWidth}p{\ColThreeWidth}p{\ColThreeWidth}}
130поиск вперед & \kbd{C-s} \\
131поиск назад & \kbd{C-r} \\
132поиск по регулярному выражению вперед & \kbd{C-M-s} \\
133поиск по регулярному выражению назад & \kbd{C-M-r} \\
134
135выбрать предыдущую строку поиска & \kbd{M-p} \\
136выбрать следующую строку поиска & \kbd{M-n} \\
137прекратить наращиваемый поиск & \kbd{RET} \\
138отменить эффект ввода последнего символа & \kbd{DEL} \\
139прервать текущий поиск & \kbd{C-g} \\
140\end{tabular}
141
142Для повтора поиска в любом направлении используйте клавиши \kbd{C-s} или
143\kbd{C-r}. Если Emacs все еще производит поиск, \kbd{C-g} отменит только
144не выполненную часть.
145
146\section{Перемещение}
147
148\begin{tabular}{p{\ColWidth}p{\ColThreeWidth}p{\ColThreeWidth}}
149{\bf единицы перемещения} & {\bf назад} & {\bf вперед} \\
150символ & \kbd{C-b} & \kbd{C-f} \\
151слово & \kbd{M-b} & \kbd{M-f} \\
152строка & \kbd{C-p} & \kbd{C-n} \\
153начало (или конец) строки & \kbd{C-a} & \kbd{C-e} \\
154предложение & \kbd{M-a} & \kbd{M-e} \\
155абзац & \kbd{M-\{} & \kbd{M-\}} \\
156страница & \kbd{C-x [} & \kbd{C-x ]} \\
157выражение (sexp) & \kbd{C-M-b} & \kbd{C-M-f} \\
158функция & \kbd{C-M-a} & \kbd{C-M-e} \\
159переход в начало (или конец) буфера & \kbd{M-<} & \kbd{M->} \\
160
161\end{tabular}
162
163\begin{tabular}{p{\ColWidth}l}
164прокрутка экрана вниз & \kbd{C-v} \\
165прокрутка экрана вверх & \kbd{M-v} \\
166прокрутка влево & \kbd{C-x <} \\
167прокрутка вправо & \kbd{C-x >} \\
168установка текущей строки в центр экрана & \kbd{C-u C-l} \\
169\end{tabular}
170
171\section{Уничтожение и удаление}
172
173\begin{tabular}{p{\ColWidth}p{\ColThreeWidth}p{\ColThreeWidth}}
174{\bf уничтожаемый объект} & {\bf назад} & {\bf вперед} \\
175символ (удаление, а не уничтожение) & \kbd{DEL} & \kbd{C-d} \\
176слово & \kbd{M-DEL} & \kbd{M-d} \\
177строка (до конца строки) & \kbd{M-0 C-k} & \kbd{C-k} \\
178предложение & \kbd{C-x DEL} & \kbd{M-k} \\
179выражение & \kbd{M-- C-M-k} & \kbd{C-M-k} \\
180\end{tabular}
181
182
183\begin{tabular}{p{\ColWidth}l}
184уничтожить {\bf область} & \kbd{C-w} \\
185скопировать область в список уничтожений & \kbd{M-w} \\
186уничтожить до следующего вхождения символа {\it char} & \kbd{M-z {\it char}} \\
187
188вставить последний уничтоженный объект & \kbd{C-y} \\
189заменить только что восстановленный текст предшествующим уничтоженным текстом & M-y \\
190\end{tabular}
191
192\section{Пометка}
193
194\begin{tabular}{p{\ColWidth}l}
195установить пометки & \kbd{C-@ {\rm или} C-SPC} \\
196поменять местами курсор и пометку & \kbd{C-x C-x} \\
197
198пометить {\it arg\/} {\bf слов} & \kbd{M-@} \\
199пометить {\bf параграф} & \kbd{M-h} \\
200пометить {\bf страницу} & \kbd{C-x C-p} \\
201пометить {\bf выражение} & \kbd{C-M-@} \\
202пометить {\bf функцию} & \kbd{C-M-h} \\
203пометить весь {\bf буфер} & \kbd{C-x h} \\
204\end{tabular}
205
206\section{Замена с запросом}
207
208\begin{tabular}{p{\ColWidth}l}
209интерактивная замена текстовой строки & \kbd{M-\%} \\
210с использованием регулярных выражений & \kbd{M-x query-replace-regexp} \\
211\end{tabular}
212
213В режиме интерактивной замены пользователю доступны следующие команды:
214
215\begin{tabular}{p{\ColWidth}l}
216{\bf заменить} данное соответствие, перейти к следующему & \kbd{SPC} \\
217заменить это соответствие, не перемещаться & \kbd{,} \\
218{\bf пропустить} соответствие без замены & \kbd{DEL} \\
219заменить все оставшиеся соответствия & \kbd{!} \\
220{\bf вернуться} к предыдущему соответствию & \kbd{\^} \\
221{\bf выйти} из режима ``замена с запросом'' & \kbd{RET} \\
222войти в режим рекурсивного редактирования (для выхода используется \kbd{C-M-c}) & \kbd{C-r} \\
223\end{tabular}
224
225\section{Использование нескольких окон}
226
227Команды, приведенные во втором столбце, применяются к другому
228фрэйму (окну используемой оконной системы).
229
230\begin{tabular}{p{\ColWidth}l}
231удалить все остальные окна & \kbd{C-x 1} \\
232\end{tabular}
233
234\begin{tabular}{p{\ColWidth}p{\ColThreeWidth}p{\ColThreeWidth}}
235разбить окно по горизонтали & \kbd{C-x 2\ \ \ \ } & \kbd{C-x 5 2} \\
236удалить данное окно & \kbd{C-x 0\ \ \ \ } & \kbd{C-x 5 0} \\
237
238разбить окно по вертикали & \kbd{C-x 3} \\
239
240выполнить прокрутку в другом окне & \kbd{C-M-v} \\
241\end{tabular}
242
243\begin{tabular}{p{\ColWidth}p{\ColThreeWidth}p{\ColThreeWidth}}
244переместить курсор в другое окно & \kbd{C-x o} & \kbd{C-x 5 o} \\
245
246выбрать буфер в другом окне & \kbd{C-x 4 b} & \kbd{C-x 5 b} \\
247показать буфер в другом окне & \kbd{C-x 4 C-o} & \kbd{C-x 5 C-o} \\
248загрузить файл в другое окно & \kbd{C-x 4 f} & \kbd{C-x 5 f} \\
249открыть файл в режиме чтения в другом окне & \kbd{C-x 4 r} & \kbd{C-x 5 r} \\
250запустить Dired в другом окне & \kbd{C-x 4 d} & \kbd{C-x 5 d} \\
251найти таг в другом окне & \kbd{C-x 4 .} & \kbd{C-x 5 .} \\
252
253\end{tabular}
254
255\begin{tabular}{p{\ColWidth}l}
256увеличить высоту окна & \kbd{C-x \^} \\
257сузить текущее окно & \kbd{C-x \{} \\
258расширить текущее окно & \kbd{C-x \}} \\
259\end{tabular}
260
261\section{Форматирование}
262
263\begin{tabular}{p{\ColWidth}l}
264сделать отступ для текущей {\bf строки} (в зависимости от режима) & \kbd{TAB} \\
265сделать отступ для {\bf области} (в зависимости от режима) & \kbd{C-M-$\backslash$} \\
266сделать отступ для {\bf выражения} (в зависимости от режима) & \kbd{C-M-q} \\
267сделать отступ к заданной {\it arg\/} колонке & \kbd{C-x TAB} \\
268
269вставить новую строку после курсора & \kbd{C-o} \\
270сдвинуть остаток строки вертикально вниз & \kbd{C-M-o} \\
271удалить пустые строки вокруг курсора & \kbd{C-x C-o} \\
272объединить строку с предыдущей (со следующими arg) & \kbd{M-\^} \\
273удалить пустое пространство вокруг курсора & \kbd{M-$\backslash$} \\
274поместить только один пробел в позиции курсора & \kbd{M-SPC} \\
275
276отформатировать текущий параграф & \kbd{M-q} \\
277установить столбец заполнения & \kbd{C-x f} \\
278установить префикс заполнения каждой строки & \kbd{C-x .} \\
279
280установить начертание (face) & \kbd{M-g} \\
281\end{tabular}
282
283\section{Изменение регистра}
284
285\begin{tabular}{p{\ColWidth}l}
286сделать буквы слова заглавными & \kbd{M-u} \\
287сделать буквы слова строчными & \kbd{M-l} \\
288сделать первую букву слова заглавной & \kbd{M-c} \\
289
290сделать буквы области заглавными & \kbd{C-x C-u} \\
291сделать буквы области строчными & \kbd{C-x C-l} \\
292\end{tabular}
293
294\section{Минибуфер}
295
296Следующие клавиши (ключи) определены в минибуфере.
297
298\begin{tabular}{p{\ColWidth}l}
299дополнить насколько возможно & \kbd{TAB} \\
300дополнить до одного слова & \kbd{SPC} \\
301дополнить и выполнить & \kbd{RET} \\
302показать возможные дополнения & \kbd{?} \\
303выбрать предыдущую строку из истории ввода & \kbd{M-p} \\
304выбрать следующую строку из истории ввода & \kbd{M-n} \\
305поиск в истории по регулярному выражению в обратном напрвлении & \kbd{M-r} \\
306поиск в истории по регулярному выражению в прямом напрвлении & \kbd{M-s} \\
307прервать команду & \kbd{C-g} \\
308\end{tabular}
309
310Наберите \kbd{C-x ESC ESC} для редактирования и повторения последней
311команды набранной в минибуфере. Наберите \kbd{F10}, чтобы работать с
312пунктами меню при помощи команд минибуфера.
313
314\section{Буфера}
315
316\begin{tabular}{p{\ColWidth}l}
317выбрать другой буфер & \kbd{C-x b} \\
318выдать список всех буферов & \kbd{C-x C-b} \\
319уничтожить буфер & \kbd{C-x k} \\
320\end{tabular}
321
322\section{Перестановка данных}
323
324\begin{tabular}{p{\ColWidth}l}
325обменять местами {\bf символы} & \kbd{C-t} \\
326обменять местами  {\bf слова} & \kbd{M-t} \\
327обменять местами  {\bf строки} & \kbd{C-x C-t} \\
328обменять местами  {\bf выражения} & \kbd{C-M-t} \\
329\end{tabular}
330
331\section{Проверка правописания}
332
333\begin{tabular}{p{\ColWidth}l}
334проверить текущее слово & \kbd{M-\$} \\
335проверить все слова в области & \kbd{M-x ispell-region} \\
336выполнить проверку всего буфера & \kbd{M-x ispell-buffer} \\
337\end{tabular}
338
339\section{Теги}
340
341\begin{tabular}{p{\ColWidth}l}
342найти определение тега & \kbd{M-.} \\
343использовать новый файл с тегами & \kbd{M-x visit-tags-table} \\
344
345поиск по шаблону по всей таблице тегов & \kbd{M-x tags-search} \\
346выполнить query-replace над всеми файлами & \kbd{M-x tags-query-replace} \\
347продолжить поиск или поиск-замену тега & \kbd{M-,} \\
348\end{tabular}
349
350\section{Командные процессоры}
351
352\begin{tabular}{p{\ColWidth}l}
353Выполнить команду командного процессора & \kbd{M-!} \\
354выполнить команду командного процессора над областью & \kbd{M-|} \\
355пропустить содержимое области через команду командного процессора & \kbd{C-u M-|} \\
356запустить командный процессор в окне \kbd{*shell*} & \kbd{M-x shell} \\
357\end{tabular}
358
359\section{Прямоугольные области}
360
361\begin{tabular}{p{\ColWidth}l}
362скопировать прямоугольную область в регистр & \kbd{C-x r r} \\
363удалить прямоугольную область & \kbd{C-x r k} \\
364вставить последную уничтоженную прямоугольную область & \kbd{C-x r y} \\
365открыть прямоугольную область, сдвигая текст вправо & \kbd{C-x r o} \\
366очистить прямоугольную область & \kbd{C-x r c} \\
367предварить каждую строку строкой текста & \kbd{C-x r t} \\
368\end{tabular}
369
370\section{Сокращения}
371
372\begin{tabular}{p{\ColWidth}l}
373добавить глобальное сокращение & \kbd{C-x a g} \\
374добавить локальное для режима сокращение & \kbd{C-x a l} \\
375добавить глобальное значение для данного сокращения & \kbd{C-x a i g} \\
376добавить специфическое для режима значение данного сокращения & \kbd{C-x a i l} \\
377явно вставить значение для сокращения & \kbd{C-x a e} \\
378
379динамически дополнить предыдущее слово & \kbd{M-/} \\
380\end{tabular}
381
382\section{Регулярные выражения}
383
384\begin{tabular}{p{\ColWidth}l}
385любой одиночный символ (за исключением символа новой строки) & \kbd{. {\rm(dot)}} \\
386ноль или более повторений & \kbd{*} \\
387одно или более повторений & \kbd{+} \\
388ноль или одно повторение & \kbd{?} \\
389экранировать специальный символ {\it c\/} & \kbd{$\backslash${\it c}} \\
390выбор между альтернативами (``или'') & \kbd{$\backslash|$} \\
391группировка & \kbd{$\backslash$( {\rm$\ldots$} $\backslash$)} \\
392текст в {\it n\/}-й группе & \kbd{$\backslash${\it n}} \\
393граница слова & \kbd{$\backslash$b} \\
394не граница слова & \kbd{$\backslash$B} \\
395\end{tabular}
396
397\begin{tabular}{p{\ColWidth}p{\ColThreeWidth}p{\ColThreeWidth}}
398{\bf объект} & {\bf начало соответствия} & {\bf конец соответствия} \\
399строка & \kbd{\^} & \kbd{\$} \\
400слово & \kbd{$\backslash$<} & \kbd{$\backslash$>} \\
401буфер & \kbd{$\backslash$`} & \kbd{$\backslash$'} \\
402\end{tabular}
403
404\begin{tabular}{p{\ColWidth}p{\ColThreeWidth}p{\ColThreeWidth}}
405{\bf класс символов} & {\bf соответ\-ствует им} & {\bf соответ\-ствует другим} \\
406явный набор & \kbd{[ {\rm$\ldots$} ]} & \kbd{[\^ {\rm$\ldots$} ]} \\
407символ-буква & \kbd{$\backslash$w} & \kbd{$\backslash$W} \\
408символ с синтаксисом {\it c} & \kbd{$\backslash$s{\it c}} & \kbd{$\backslash$S{\it c}} \\
409\end{tabular}
410
411\section{Международные наборы символов}
412
413\begin{tabular}{p{\ColWidth}l}
414выбрать язык & \kbd{C-x RET l} \\
415показать все возможные методы ввода & \kbd{M-x list-input-methods} \\
416разрешить или запретить метод ввода & \kbd{C-$\backslash$} \\
417установить систему кодирования для следующей команды & \kbd{C-x RET c} \\
418показать список всех систем кодирования & \kbd{M-x list-coding-systems} \\
419выбрать предпочтительную систему кодирования & \kbd{M-x prefer-coding-system} \\
420\end{tabular}
421
422\section{Информация (система Info)}
423
424\begin{tabular}{p{\ColWidth}l}
425запустить систему доступа к документации & \kbd{C-h i} \\
426найти указанную функцию или переменную в документации & \kbd{C-h S} \\
427\end{tabular}
428
429Перемещение внутри узла (нодами):
430
431\begin{tabular}{p{\ColWidth}l}
432прокрутка вперед & \kbd{SPC} \\
433прокрутка назад & \kbd{DEL} \\
434перейти к началу узла & \kbd{. {\rm (dot)}} \\
435\end{tabular}
436
437Перемещение между узлами:
438
439\begin{tabular}{p{\ColWidth}l}
440{\bf следующий} узел & \kbd{n} \\
441{\bf предыдущий} узел & \kbd{p} \\
442перейти к {\bf верхнему} узлу & \kbd{u} \\
443выбрать пункт меню по имени & \kbd{m} \\
444выбрать {\it n\/}-й пункт меню по номеру (1--9) & \kbd{{\it n}} \\
445перейти по ссылке (возврат с помощью \kbd{l}) & \kbd{f} \\
446возвратится к последнему просмотренному узлу & \kbd{l} \\
447возвратится к узлу-каталогу & \kbd{d} \\
448Перейти к верхему узлу файла & \kbd{t} \\
449перейти к узлу, заданному именем & \kbd{g} \\
450\end{tabular}
451
452Другие команды:
453
454\begin{tabular}{p{\ColWidth}l}
455запустить {\bf учебник} по системе документации & \kbd{h} \\
456поиск темы в индексе & \kbd{i} \\
457поиск в узлах с помощью регулярных выражений & \kbd{s} \\
458{\bf прекратить работу} с документацией & \kbd{q} \\
459\end{tabular}
460
461\section{Регистры}
462
463\begin{tabular}{p{\ColWidth}l}
464сохранить область в регистре & \kbd{C-x r s} \\
465вставить содержимое регистра в буфер & \kbd{C-x r i} \\
466
467сохранить положение курсора в регистре & \kbd{C-x r SPC} \\
468перейти к положению курсора, сохраненному в регистре & \kbd{C-x r j} \\
469\end{tabular}
470
471\section{Клавиатурные макросы}
472
473\begin{tabular}{p{\ColWidth}l}
474{\bf начать} определение клавиатурного макроса & \kbd{C-x (} \\
475{\bf закончить} определение клавиатурного макроса & \kbd{C-x )} \\
476{\bf выполнить} последний определенный макрос & \kbd{C-x e} \\
477дополнить последний определенный макрос & \kbd{C-u C-x (} \\
478задать имя для последнего определенного макроса & \kbd{M-x name-last-kbd-macro} \\
479вставить в буфер определение макроса на языке Lisp & \kbd{M-x insert-kbd-macro} \\
480\end{tabular}
481
482\section{Команды, связанные с Emacs Lisp}
483
484\begin{tabular}{p{\ColWidth}l}
485вычислить {\bf выражение} перед курсором & \kbd{C-x C-e} \\
486вычислить текущую функцию {\bf defun} & \kbd{C-M-x} \\
487вычислить {\bf область} как выражение & \kbd{M-x eval-region} \\
488считать и вычислить выражение из минибуфера & \kbd{M-:} \\
489загрузить из стандартного системного каталога & \kbd{M-x load-library} \\
490\end{tabular}
491
492\section{Простая настройка}
493
494\begin{tabular}{p{\ColWidth}l}
495настроить переменные и оформление (faces) & \kbd{M-x customize} \\
496\end{tabular}
497
498% The intended audience here is the person who wants to make simple
499% customizations and knows Lisp syntax.
500
501Создание глобальных привязок клавиш (ключей) на Emacs Lisp (примеры):
502
503\begin{verbatim}
504(global-set-key "\C-cg" 'goto-line)
505(global-set-key "\M-#" 'query-replace-regexp)
506\end{verbatim}
507
508\section{Написание команд}
509
510\begin{verbatim}
511(defun <command-name> (<args>)
512  "<documentation>" (interactive "<template>")
513  <body>)
514\end{verbatim}
515
516Пример:
517
518\begin{verbatim}
519(defun this-line-to-top-of-window (line)
520  "Reposition line point is on to top of window.
521With ARG, put point on line ARG."
522  (interactive "P")
523  (recenter (if (null line)
524                0
525              (prefix-numeric-value line))))
526\end{verbatim}
527
528Спецификация \kbd{interactive} сообщает о том, что аргумент надо считывать
529интерактивно. Для дополнительной информации наберите \kbd{C-h f interactive}.
530
531\copyrightnotice
532
533%\end{multicols}
534
535\end{document}
536
537% Local variables:
538% compile-command: "pdflatex ru-refcard"
539% coding: utf-8
540% End:
541