Динамическое связывание — это мощная функция, поскольку она позволяет программам обращаться к переменным, которые не определены в их локальной текстовой области видимости. Однако, если использовать его без ограничений, это также может затруднить понимание программ.
Во-первых, выберите имя переменной, чтобы избежать конфликтов имен (см. Соглашения по кодированию Emacs Lisp).
defvar без начального значения, и никогда
не присваивайте ей значение, если она еще не связана. Таким образом, любая попытка
обратиться к переменной, когда она не связана, приведет к ошибке
void-variable.
defvar, defconst
(см. Определение глобальных переменных) или defcustom (см. Определение переменных настройки). Обычно определение должно находиться на верхнем уровне в файле Emacs Lisp. Насколько это возможно, оно должно включать
строку документации, объясняющую значение и назначение переменной.
Затем вы можете привязать переменную в любой части программы, зная, какой эффект это будет иметь. Везде, где вы встретите эту переменную, будет легко сослаться на ее определение, например, с помощью команды C-h v (при условии, что определение переменной было загружено в Emacs). См. Name Help в Руководстве GNU Emacs.
Например, часто используются локальные привязки для настраиваемых
переменных, таких как case-fold-search:
(defun search-for-abc ()
"Поиск строки "abc", игнорируя различия в регистре."
(let ((case-fold-search t))
(re-search-forward "abc")))