[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Сейчас мы добрались до конца этого введения. Вы достаточно научились программированию на Emacs Lisp для того чтобы устанавливать значения переменных, создавать простые файлы `.emacs' для себя и своих друзей, а также писать небольшие настройки и расширения к Emacs.
Самое место остановиться. Или если вы хотите, то вы можете идти вперед и учиться самостоятельно.
Вы изучили основные принципы программирования. Но только некоторые. Намного больше тонкостей мы даже не коснулись.
Дорога по которой вы можете отправится прямо сейчас лежит среди исходных текстов GNU Emacs и в section `The GNU Emacs Lisp Reference Manual' in The GNU Emacs Lisp Reference Manual.
Исследование исходных кодов Emacs Lisp --- это приключение. Когда вы читаете программу и обнаруживаете незнакомую функцию или выражение, то вы должны выяснить что она делает.
Обращайтесь к справочному руководству. Это полное, подробное и довольно доступно написаное изложение Emacs Lisp. Оно написано не только для экспертов, но и для таких как вы. (Справочное руководство поставляется в стандартном дистрибутиве GNU Emacs. Как и это введение оно поставляется в виде Texinfo файла, так что вы можете создать интерактивную документацию или распечатать в виде книги).
Не забывайте и о встроенной помощи, которая является частью GNU Emacs.
Существует помощь для всех функций а программа find-tags
позволит вам быстро найти исходный код любой функции.
Вот как я сам начал исследовать исходный код. Из-за того, что его имя
говорит само за себя, я сначала заглянул в файл `simple.el'
--- это было довольно давно. Некоторые функции выглядели достаточно
сложными или по крайней мере так казалось с первого взгляда. Первая
функция выглядит достаточно сложной. Это функция open-line
.
Вы можете медленно изучить работу этой функции, подобно тому как мы
делали это с функцией forward-sentence
.
(See section 12.3 forward-sentence
.)
Или вы захотите пропустить эту функцию и взглянуть на следующую,
например split-line
. Вы же не обязаны читать все функции.
Согласно count-words-in-defun
, функция split-line
содержит всего 27 слов и символов.
Даже такая короткая функция содержит четыре выражения которые мы не
изучали: skip-chars-forward
, indent-to
, insert
, и
`?\n'.
Рассмотрим функцию insert
. (Она уже упоминалась в
12.6 Заключение.)
В Emacs вы можете выяснить больше о функции insert
нажав
C-h f (describe-function
) и задав имя функции. Это
отобразит документацию по данной функции. Вы можете найти исходный
код с помощью функции find-tag
, которая привязана к M-.
(в данном случае это не очень полезно; эта функция является примитивом
написанным на С а не на Lisp). Наконец вы можете узнать, что сообщает
справочник по этому поводу, посетив Info, нажав i
(Info-index
), и затем набрав имя функции или отыскав
insert
в индексе печатного руководства.
Подобным образом вы можете выяснить что значит `?\n'. Вы можете
снова попробовать Info-index
с `?\n'. Окажется, что это
бесполезно; но не отчаивайтесь. Если вы будет искать по `\n' без
`?', то вы попадете прямо в соответствующий раздел руководства.
(See section `Character Type' in The GNU Emacs Lisp Reference Manual. `?\n' означает символ новой строки.)
Вы можете догадаться что делают функции skip-chars-forward
и
indent-to
; или также найти информацию по ним. (Кстати сама
функция describe-function
расположена в файле `help.el'
--- это одна из длинных, но понятных функций. В ее определении
показано как настраивать выражение interactive
без
использования стандартных символьных кодов; а также показано как
создавать временный буфер).
Среди других интересных файлов можно отметить файлы `paragraphs.el', `loaddefs.el' и `loadup.el'. В файле `paragraphs.el' есть как короткие и легко понятные функции, так и достаточно длинные и сложные. Файл `loaddefs.el' содержит много стандартных автозагрузок и много другого. Я никогда не смотрел его полностью, только некоторые его части. `loadup.el' --- это файл в котором загружаются стандартные части Emacs; там можно многое узнать о том, как устроем редактор. (See section `Building Emacs' in The GNU Emacs Lisp Reference Manual, для получения дополнительной информации о сборке редактора).
Как я уже говорил вы изучили только основы; однако и это очень
важно --- мы едва коснулись основных аспектов программирования. Я
ничего не говорил о сортировке информации, кроме использование одной
функции sort
; Я ничего не говорил о том, как сохранять
информацию, кроме использование списков и переменных. Я не также
говорил и о том, как создавать программы, которые сами пишут
программы. Это темы для другой книги, другого курса.
Но мы изучили достаточно для того, чтобы на практике эффективно использовать GNU Emacs. То что мы сделали --- это только начало. А конец этой книги --- это конец начала.
[ << ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |