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