Строка документации записывается с использованием синтаксиса строк Лиспа, с символами двойных кавычек, окружающими текст. Фактически, это настоящая строка Лиспа. Когда строка появляется в соответствующем месте в определении функции или переменной, она служит документацией для этой функции или переменной.
В определении функции (форма lambda или defun) строка
документации указывается после списка аргументов и обычно сохраняется
непосредственно в объекте функции. См. Строки документации функций. Вы также можете поместить документацию функции в
свойство function-documentation имени функции
(см. Доступ к строкам документации).
В определении переменной (форма defvar) строка документации
указывается после начального значения. См. Определение глобальных переменных. Строка сохраняется в свойстве переменной
variable-documentation.
Иногда Emacs не хранит строки документации в памяти.
Существуют два таких обстоятельства. Во-первых, для экономии памяти
документация для примитивных функций (см. Что такое функция?) и
встроенных переменных хранится в файле с именем DOC в каталоге,
заданном doc-directory (см. Доступ к строкам документации). Во-вторых, когда функция или переменная загружается из
байт-скомпилированного файла, Emacs избегает загрузки её строки документации
(см. Строки документации и компиляция). В обоих случаях Emacs ищет
строку документации в файле только тогда, когда это необходимо, например,
когда пользователь вызывает C-h f (describe-function) для функции.
Строки документации могут содержать специальные последовательности замены ключей, ссылающиеся на привязки клавиш, которые ищутся только тогда, когда пользователь просматривает документацию. Это позволяет командам справки отображать правильные клавиши, даже если пользователь переназначает стандартные привязки клавиш. См. Подстановка привязок клавиш в документации.
В строке документации автозагружаемой команды (см. Автозагрузка) эти последовательности замены ключей имеют дополнительный особый эффект: они заставляют C-h f на этой команде инициировать автозагрузку. (Это необходимо для правильной настройки гиперссылок в буфере *Help*.)