Вы можете использовать аргументы командной строки для запроса различных действий при запуске Emacs. Обратите внимание, что рекомендуемый способ использования Emacs — запускать его только один раз после входа в систему, а затем выполнять всю редактирование в одной сессии Emacs (см. Вход в Emacs в Руководство GNU Emacs). По этой причине вы можете не использовать аргументы командной строки очень часто; тем не менее, они могут быть полезны при вызове Emacs из скриптов сессий или при отладке Emacs. В этом разделе описывается, как Emacs обрабатывает аргументы командной строки.
Эта функция парсит командную строку, с которой был вызван Emacs, обрабатывает ее и (среди прочего) загружает файл инициализации пользователя и отображает сообщения о запуске.
Значение этой переменной равно t после того, как
командная строка была обработана.
Если вы пересобираете Emacs, вызвав dump-emacs (см. Сборка Emacs),
вы можете захотеть сначала установить эту переменную в nil, чтобы
побудить новый пересобранный Emacs обработать свои новые аргументы командной
строки.
Эта переменная представляет собой alist пользовательских опций командной строки и соответствующих функций-обработчиков. По умолчанию она пуста, но вы можете добавить элементы, если хотите.
Опция командной строки — это аргумент в командной строке, имеющий вид:
-option
Элементы command-switch-alist выглядят так:
(option . handler-function)
CAR, option, — это строка, имя опции командной строки (включая начальный дефис). handler-function вызывается для обработки option и принимает имя опции в качестве единственного аргумента.
В некоторых случаях опция в командной строке сопровождается аргументом. В
таких случаях handler-function может найти все оставшиеся
аргументы командной строки в переменной
command-line-args-left (см. ниже). (Весь список
аргументов командной строки находится в command-line-args.)
Обратите внимание, что обработка command-switch-alist не
обрабатывает знаки равенства в option как особые. То есть, если
в командной строке есть опция вида --name=value, то только
член command-switch-alist, чей car буквально
равен --name=value, будет соответствовать этой опции. Если вы
хотите разобрать такие опции, вам нужно использовать command-line-functions
вместо этого (см. ниже).
Аргументы командной строки разбираются функцией command-line-1
в файле startup.el. См. также Аргументы командной строки для вызова Emacs в Руководство GNU Emacs.
Значение этой переменной — это список аргументов командной строки, переданных Emacs.
Значение этой переменной — это список аргументов командной строки, которые еще не были обработаны.
Значение этой переменной — это список функций для обработки
неопознанного аргумента командной строки. Каждый раз, когда следующий
аргумент для обработки не имеет специального значения, вызываются функции в
этом списке в порядке их появления, пока одна из них не вернет не-nil
значение.
Эти функции вызываются без аргументов. Они могут получить доступ к
рассматриваемому аргументу командной строки через переменную
argi, которая временно привязывается в этот момент. Оставшиеся
аргументы (включая текущий) находятся в переменной
command-line-args-left.
Когда функция распознает и обработает аргумент в argi,
она должна вернуть не-nil значение, чтобы сообщить, что она
обрахнула этот аргумент. Если она также обработала некоторые последующие
аргументы, она может указать на это, удаляя их из command-line-args-left.
Если все эти функции возвращают nil, то аргумент рассматривается
как имя файла для посещения.