Spec-Zone.ru › Elisp

Аргументы командной строки

Вы можете использовать аргументы командной строки, чтобы запросить различные действия при запуске 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API