Аргументы командной строки
Вы можете использовать аргументы командной строки, чтобы запросить различные действия при запуске Emacs. Обратите внимание, что рекомендуемый способ использования Emacs — запустить его один раз после входа в систему и выполнять все редактирование в одном сеансе Emacs (см. Вход в Emacs в Справочнике GNU Emacs). По этой причине вы, возможно, не будете часто использовать аргументы командной строки; тем не менее, они могут быть полезны при вызове Emacs из скриптов сеанса или при отладке Emacs. В этом разделе описывается, как Emacs обрабатывает аргументы командной строки.
- Функция: command-line
-
Эта функция анализирует командную строку, с которой был вызван Emacs, обрабатывает ее и (среди прочего) загружает файл инициализации пользователя и отображает сообщения о запуске.
- Переменная: command-line-processed
-
Значение этой переменной равно
tпосле обработки командной строки.Если вы пересоздаете Emacs, вызвав
dump-emacs(см. Сборка Emacs), вы можете сначала установить эту переменную в значениеnil, чтобы заставить новый пересозданный Emacs обработать новые аргументы командной строки.
- Переменная: command-switch-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.
- Переменная: command-line-args
Значение этой переменной — список аргументов командной строки, переданных Emacs.
- Переменная: command-line-args-left
-
Значение этой переменной — список аргументов командной строки, которые еще не обработаны.
- Переменная: command-line-functions
-
Значение этой переменной — список функций для обработки нераспознанного аргумента командной строки. Каждый раз, когда следующий обрабатываемый аргумент не имеет специального значения, функции в этом списке вызываются в порядке появления, пока одна из них не вернёт значение, отличное от
nil.Эти функции вызываются без аргументов. Они могут получить доступ к аргументу командной строки для обработки через переменную
argi, которая временно привязана в этот момент. Остальные аргументы (не включая текущий) находятся в переменнойcommand-line-args-left.Когда функция распознаёт и обрабатывает аргумент в
argi, она должна вернуть значение, отличное отnil, чтобы указать, что она обработала этот аргумент. Если она также обработала некоторые следующие аргументы, она может указать это, удалив их изcommand-line-args-left.Если все эти функции возвращают
nil, то аргумент обрабатывается как имя файла для посещения.
Copyright © 1990-1996, 1998-2022 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Command_002dLine-Arguments.html