Emacs предоставляет широкие возможности предоставления справки, которые доступны через один знак, C-h. C-h -- это префиксный ключ, который используется только для команд печати документации. Знаки, которые вы можете набрать после C-h, называются параметрами справки. Одним из них является C-h; c его помощью вы запрашиваете информацию об использовании C-h. Функциональная клавиша F1 служит эквивалентом C-h.
C-h C-h (help-for-help
) печатает список всех возможных параметров справки с кратким описанием каждого из них. До набора параметра справки вы можете пролистать этот список с помощью SPC или DEL.
C-h или F1 означает "помощь" также и во многих других контекстах. Например, в процессе работы query-replace
они описывают доступные возможные действия над текущим найденным совпадением. После префиксного ключа они выводят перечень вариантов, которые могут следовать за этим префиксным ключом. (Некоторые префиксные ключи не поддерживают C-h, потому что они определяют для него другие значения; но все они поддерживают F1).
Большинство справочных буферов используют специальный основной режим, режим Help, который позволяет вам удобно делать прокрутку с помощью SPC и DEL.
Ниже приведен обзор всех определенных команд для получения справки.
- C-h a regexpRET
- Показать список команд, чьи имена соответствуют регулярному выражению regexp (
apropos-command
). - C-h b
- Показать таблицу всех привязок ключей, действующих на данный момент в следующем порядке: привязки текущих второстепенных режимов, привязки основного режима и глобальные привязки (
describe-bindings
). - C-h c ключ
- Напечатать имя команды, которую запускает на выполнение заданный ключ (
describe-key-briefly
). Здесь c означает `character' (`знак'). Для получения более подробной информации о ключе, используйте C-h k. - C-h f функцияRET
- Показать документацию на лисповскую функцию с именем функция (
describe-function
). Так как команды являются лисповскими функциями, вы можете использовать имя команды. - C-h h
- Вывести файл `hello', который показывает примеры различных наборов знаков.
- C-h i
- Запустить Info, программу для просмотра файлов документации (
info
). Полное руководство по Emacs существует как диалоговый файл в Info. - C-h k ключ
- Показать имя и описание команды, которую запускает ключ (
describe-key
). - C-h l
- Показать описание последних 100 набранных вами знаков (
view-lossage
). - C-h m
- Показать описание текущего основного режима (
describe-mode
). - C-h n
- Показать описание изменений в Emacs, первым самое последнее (
view-emacs-news
). - C-h p
- Найти пакет по ключевому слову (
finder-by-keyword
). - C-h s
- Показать текущее содержимое синтаксической таблицы и объяснить, что оно означает (
describe-syntax
). See section Синтаксическая таблица. - C-h t
- Войти в интерактивный самоучитель по Emacs (
help-with-tutorial
). - C-h v перRET
- Показать описание лисповской переменной пер (
describe-variable
). - C-h w командаRET
- Напечатать, какие ключи запускают на выполнение команду с именем команда (
where-is
). - C-h C кодировкаRET
- Вывести описание системы кодирования с именем кодировка (
describe-coding-system
). - C-h C RET
- Описать используемую в данный момент систему кодирования.
- C-h I методRET
- Описать метод ввода (
describe-input-method
). - C-h L языковая-средаRET
- Показать сведения о наборах знаков, системах кодирования и методах ввода, используемых в языковой-среде (
describe-language-environment
). - C-h C-c
- Показать условия копирования GNU Emacs.
- C-h C-d
- Показать информацию о получении новых версий GNU Emacs.
- C-h C-f функцияRET
- Войти в Info и перейти к ноде, описывающей функцию Emacs с именем функция (
Info-goto-emacs-command-node
). - C-h C-k ключ
- Войти в Info и перейти к ноде, описывающей заданную последовательность ключей (
Info-goto-emacs-key-command-node
). - C-h C-p
- Показать информацию о Проекте GNU.
- C-h TABязыковой-символRET
- Показать документацию Info на языковой-символ в соответствии с языком программирования, на котором вы пишите (
info-lookup-symbol
).
Описания для ключей
Основными параметрами для C-h являются C-h c (describe-key-briefly
) и C-h k (describe-key
). C-h c ключ печатает в эхо-области имя команды, к которой привязан ключ. Например, C-h c C-f печатает `forward-char'. Поскольку имена команд выбираются так, чтобы они описывали действие команды, это удобный способ получить очень короткое описание того, что делает ключ.
C-h k ключ похожа на предыдущую, но дает больше информации. Она показывает строку документации команды, а также ее имя. Это слишком много для эхо-области, поэтому для показа используется окно.
C-h c и C-h k работают для любых видов ключей, включая функциональные клавиши и события от мыши.
Справка по имени команды или переменной
C-h f (describe-function
) читает имя функции Лиспа, используя минибуфер, затем показывает строку документации этой функции в окне. Так как команды -- это лисповские функции, вы можете пользоваться этим для получения описания команды, известной по имени. Например,
C-h f auto-fill-mode RET
выдает документацию для auto-fil-mode
. Это единственный способ увидеть документацию команды, которая не привязана к какому-нибудь ключу (одной из тех, которых вы обычно вызываете при помощи M-x).
C-h f также полезна для лисповских функций, которые вы планируете использовать в программе на Лиспе. Например, если вы просто написали выражение (make-vector len)
и хотите быть уверенными в том, что вы верно использовали make-vector
, наберите C-h f make-vector RET. Так как C-h f воспринимает имена всех функций, а не только имена команд, то вы можете обнаружить, что некоторые из ваших любимых сокращений, которые работают в M-x, не работают в C-h f. Сокращения могут быть уникальными среди имен команд и уже не быть уникальными, когда рассматриваются также и имена других функций.
Имя функции для C-h f имеет значение по умолчанию, которое используется, если вы наберете RET, оставляя минибуфер пустым. По умолчанию это будет функция, вызванная самым глубоким лисповским выражением в буфере в районе точки, при условии, что это правильное, определенное имя функции Лиспа. Например, если точка расположена вслед за текстом `(make-vector (car x)', то самый глубокий список, содержащий точку, это тот, что начинается с `(make-vector'; таким образом, по умолчанию будет описана функция make-vector
.
C-h f часто полезна просто для проверки правильности написания имени функции с точки зрения орфографии. Если C-h f упоминает в подсказке значение по умолчанию, то вы набрали имя определенной лисповской функции. Если это все, что вы хотели узнать, просто наберите C-g, чтобы отменить команду C-h f и продолжить редактирование.
C-h w командаRET сообщает вам, какие ключи привязаны к команде. Она печатает список ключей в эхо-области. Если она говорит, что команда не привязана ни к одному ключу, вы должны использовать для вызова этой команды M-x. C-h w запускает команду where-is
.
C-h v (describe-variable
) похожа на C-h f, но описывает переменные Лиспа, а на функции. Ее значение по умолчанию --- это лисповский символ поблизости или перед точкой, но только если это имя известной лисповской переменной. See section Переменные.
Поиск по контексту
Более сложный вид запросов -- это вопросы вроде "Какие команды используются для работы с файлами?" Чтобы задать такой вопрос, наберите C-h a file RET, которая покажет список всех имен команд, которые содержат `file', такие как copy-file
, find-file
и так далее. Вместе с именем команды показывается краткое описание того, как ее использовать, и какие ключи ее запускают. Например, вам сообщат, что вы можете запустить find-file
, набрав C-x C-f. Здесь а в C-h -- это сокращение для `Apropos', C-h a запускает на выполнение функцию command-apropos
. Эта команда проверяет только команды (интерактивные функции); если вы зададите префиксный аргумент, она просмотрит также и неинтерактивные функции.
Так как C-h a ищет только функции, чьи имена содержат заданную вами строку, вы должны быть изобретательны в выборе строк. Если вы ищете команды для уничтожения в обратном направлении, и C-h a kill-backward RET ничего не показывает, не отчаивайтесь. Попробуйте просто kill, или просто backward или просто back. Будьте настойчивы. Притворитесь, что вы играете в Adventure. Также отметим, что для большей гибкости вы можете использовать в качестве аргумента регулярное выражение (see section Синтаксис регулярных выражений).
Здесь представлен набор аргументов для передачи в C-h a, который охватывает множество классов команд, так как существуют строгие соглашения для имен стандартных команд Emacs. Давая вам почувствовать принятые соглашения об именовании, этот набор также должен служить вам помощью в совершенствовании технических приемов для подбора строк apropos
.
char, line, word, sentence, paragraph, region, page, sexp, list, defun, rect, buffer, frame, window, face, file, dir, register, mode, beginning, end, forward, backward, next, previous, up, down, search, goto, kill, delete, mark, insert, yank, fill, indent, case, change, set, what, list, find, view, describe, default.
Для получения перечня всех пользовательских переменных, которые соответствуют регулярному выражению, используйте команду M-x apropos-variable. Эта команда показывает по умолчанию только пользовательские переменные; если вы зададите префиксный аргумент, она просмотрит все переменные.
Чтобы перечислить все лисповские символы, которые содержат совпадение с регулярным выражением, а не только те, которые определены в качестве команд, используйте команду M-x apropos, а не C-h a. По умолчанию эта команда не проверяет привязки ключей; если вы хотите узнать их, задайте этой команде префиксный аргумент.
Команда apropos-documentation
похожа на apropos
, но производит поиск совпадений с регулярным выражением не только в именах символов, но и в строках описания.
Команда apropos-value
действует как apropos
, за исключением того, что ищет совпадения с регулярным выражением в значениях символов. Эта команда по умолчанию не проверяет определения функций или списки свойств; задайте ей числовой аргумент, если вы хотите проверить и их.
Если переменная apropos-do-all
не равна nil
, то все описанные выше команды ведут себя так, как-будто им задан префиксный аргумент.
Если вы хотите получить больше информации об определении функции, о переменной или о свойствах символа, перечисленных в буфере Apropos, вы можете щелкнуть на них Mouse-2 или переместиться туда и нажать RET.
Поиск в библиотеках Лиспа по ключевым словам
Команда C-h p позволяет вам производить поиск в стандартных библиотеках Emacs Lisp по тематическим ключевым словам. Вот неполный перечень ключевых слов, которые вы можете использовать:
abbrev --- управление сокращениями, быстрые клавиши, макросы.
bib --- поддержка обработчика библиографий bib
.
c --- поддержка языков Си и Си++.
calendar --- поддержка календаря и операций со временем.
comm --- коммуникации, сети, удаленный доступ к файлам.
data --- поддержка редактирования файлов с данными.
docs --- поддержка документации Emacs.
emulations --- эмуляция других редакторов.
extensions --- расширения языка Emacs Lisp.
faces --- поддержка разных начертаний (шрифтов и цветов).
frames --- поддержка фреймов и оконных систем.
games --- игры, шутки и развлечения.
hardware --- поддержка интерфейсов с экзотической аппаратурой.
help --- поддержка интерактивных справочных систем.
hypermedia --- поддержка для ссылок внутри текста.
i18n --- поддержка разных языков и алфавитов.
internal --- внутренний код Emacs, сборка, значения по умолчанию.
languages --- специализированные режимы для редактирования кода.
lisp --- поддержка использования Лиспа (включая Emacs Lisp).
local --- библиотеки, локальные для вашей системы.
maint --- средства поддержки для группы разработчиков Emacs.
mail --- режимы для работы с электронной почтой.
matching --- поисковые программы.
news --- поддержка чтения и отправки сетевых новостей.
non-text --- поддержка для редактирования нетекстовых файлов.
oop --- поддержка объектно-ориентированного программирования.
outlines --- просмотр иерархической структуры текста.
processes --- процессы, оболочка, компиляция и управление задачами.
terminals --- поддержка разных типов терминалов.
tex --- поддержка для программы компьютерного набора TeX.
tools --- утилиты для программирования.
unix --- интерфейсы или эмуляторы возможностей Unix.
vms --- поддержка VMS.
wp --- обработка текста.
Справка о поддержке различных языков
Для получения справки о поддержке определенной языковой среды используйте команду C-h L (describe-language-environment
). See section Языковые среды. Эта команда говорит вам, для каких языков полезна данная языковая среда, и перечисляет наборы знаков, системы кодирования и методы ввода, которые используются в этой среде. Она также показывает образец текста для демонстрации его внешнего вида.
Команда C-h h (view-hello-file
) отображает файл `etc/HELLO', который показывает, как сказать "Здравствуйте" на разных языках.
Команда C-h I (describe-input-method
) описывает метод ввода, либо заданный явно, либо, по умолчанию, используемый в данный момент. See section Методы ввода.
Команда C-h C (describe-coding-system
) описывает систему кодирования, либо заданную явно, либо, по умолчанию, используемые в данный момент. See section Системы кодирования.
Команды режима Help
Справочные буферы предоставляют команды режима View (see section Разнообразные действия над файлами) плюс несколько собственных особых команд.
- SPC
- Прокручивает вперед.
- DEL
- Прокручивает назад.
- RET
- Переходит по перекрестной ссылке в точке.
- TAB
- Перемещает вперед к следующей перекрестной ссылке.
- S-TAB
- Перемещает назад к предыдущей перекрестной ссылке.
- Mouse-2
- Переходит по перекрестной ссылке, на которой вы щелкнули.
Когда в описании появляется имя команды (see section Запуск команд по имени) или имя переменной (see section Переменные), оно обычно показывается в парных одиночных кавычках. Вы можете щелкнуть на имени с помощью Mouse-2 или передвинуть к нему точку и нажать RET, чтобы просмотреть документацию на эту команду или переменную. Используйте C-c C-b для возврата.
Есть удобные команды для перемещения точки к перекрестным ссылкам в тексте справки. TAB (help-next-ref
) передвигает точку вперед к следующей перекрестной ссылке. Чтобы переместить точку к предыдущей ссылке, используйте S-TAB (help-previous-ref
).
Другие команды для получения справки
C-h i (info
) запускает на выполнение программу Info, которая используется для просмотра структурированных файлов документации. Внутри Info имеется полное руководство по Emacs. В конце концов там будет доступна вся документация по системе GNU. Чтобы запустить самоучитель по использованию Info, наберите h после входа в Info.
Если вы зададите числовой аргумент, C-h i запросит имя файла документации. Таким образом вы сможете просмотреть файл, для которого нет вхождения в меню Info верхнего уровня. Это также удобно, когда вам нужно получить документацию быстро, и вы знаете точное имя этого файла.
Существуют две специальные справочные команды для получения документации по Emacs через Info. C-h C-f функцияRET входит в Info и переходит непосредственно к описанию функции Emacs с именем функция. C-h C-k ключ входит в Info и переходит к описанию ключа. Эти ключи запускают команды Info-goto-emacs-command-node
и Info-goto-emacs-key-command-node
.
При редактировании программы, если у вас есть Info-версия руководства для этого языка программирования, вы можете использовать команду C-h C-i для просмотра описания символа (ключевого слова, функции или переменной). Детали работы этой программы зависят от основного режима.
Если происходит что-то странное, и вы не уверены, какую команду вы набрали, используйте C-h l (view-lossage
). C-h l печатает последние 100 набранных вами командных знаков. Если вы увидели команды, которые вам не знакомы, вы можете использовать C-h c, чтобы отыскать информацию о том, что они делают.
Emacs имеет множество основных режимов, каждый из которых переопределяет несколько ключей и делает некоторые другие изменения в работе редактора. C-h m (describe-mode
) печатает документацию о текущем основном режиме, в которой обычно описаны все команды, измененные в этом режиме.
C-h b (describe-bindings
) и C-h s (describe-syntax
) предоставляют другую информацию о текущем режиме Emacs. C-h b показывает список всех привязанных ключей, действующих в данный момент; сначала идут локальные привязки текущих второстепенных режимов, за ними локальные привязки текущего основного режима и, наконец, глобальные привязки (see section Настройка привязок ключей). C-h s показывает содержимое синтаксической таблицы с объяснением синтаксиса каждого знака (see section Синтаксическая таблица).
Вы можете получить подобный перечень для конкретного префиксного ключа, набрав после него C-h. (Есть несколько префиксных ключей, для которых это не работает -- они придают свои привязки для C-h. Один из них -- это ESC, потому что ESC C-h на самом деле эквивалентен C-M-h, который помечает определение функции).
Другие параметры C-h показывают разнообразные файлы с полезной информацией. C-h C-w показывает подробности об отсутствии гарантий для GNU Emacs. С-h n (view-emacs-news
) показывает файл `emacs/etc/NEWS', который содержит описание изменений в Emacs, сортированное в хронологическом порядке. C-h F (view-emacs-FAQ
) выводит список часто отвечаемых вопросов о Emacs. C-h t (help-with-tutorial
) показывает обучающее руководство по Emacs. C-h C-c (describe-copying
) показывает файл `emacs/etc/COPYING', который объясняет условия, которые вы должны выполнить при распространении копий Emacs. C-h C-d (describe-distribution
) показывает файл `emacs/etc/DISTRIB', в котором рассказывается, как вы можете заказать копию последней версии Emacs. C-h C-p (describe-project
) выводит общую информацию о Проекте GNU.