1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
|
% Copyright (C) 1997, 2002-2014 Free Software Foundation, Inc.
% Author: Stephen Gildea <gildea@stop.mail-abuse.org>
% Russian translation: Alex Ott <alexott@gmail.com>
\documentclass[10pt]{article}
\usepackage{multicol,tabularx}
\usepackage[a4paper,hmargin={2cm,2cm},vmargin={2cm,2cm},nohead,twoside]{geometry}
\usepackage[T2A]{fontenc}
\usepackage[utf8]{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{\versionemacs}[0]{24} % version of Emacs this is for
\newcommand{\cyear}[0]{2014} % copyright year
\newcommand\shortcopyrightnotice[0]{\vskip 1ex plus 2 fill
\centerline{\footnotesize \copyright\ \cyear\ Free Software Foundation, Inc.
Permissions on back.}}
\newcommand\copyrightnotice[0]{
\vskip 1ex plus 2 fill\begingroup\footnotesize
\centerline{Copyright \copyright\ \cyear\ Free Software Foundation, Inc.}
\centerline{For GNU Emacs version \versionemacs}
\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, see:
{\tt http://www.gnu.org/software/emacs/\#Manuals}
\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{(для версии \versionemacs)}
\section{Запуск Emacs}
Для запуска GNU Emacs \versionemacs, просто наберите имя программы: \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: "pdflatex ru-refcard"
% coding: utf-8
% End:
|