Spec-Zone.ru › Elisp

Режим пакетной обработки

Команда командной строки ‘-batch’ приводит к запуску Emacs в неинтерактивном режиме. В этом режиме Emacs не читает команды с терминала, не изменяет режимы терминала и не ожидает вывода на стираемый экран. Идея состоит в том, чтобы вы указывали Lisp-программы для выполнения; по завершении их выполнения Emacs должен выйти. Для указания программ, которые нужно выполнить, используется ‘-l file’, который загружает библиотеку с именем file, или ‘-f function’, который вызывает function без аргументов, или ‘--eval=form’.

Любой вывод Lisp-программы, который обычно направляется в область эха, либо с использованием message, или с использованием prin1, и т.д., с t в качестве потока (см. Потоки вывода), вместо этого направляется в стандартные дескрипторы Emacs в режиме пакетной обработки: message записывает в стандартный дескриптор ошибки, а prin1 и другие функции вывода записывают в стандартный вывод. Аналогично, ввод, который обычно поступает из минибуфера, считывается со стандартного дескриптора ввода. Таким образом, Emacs ведет себя как обычная неинтерактивная прикладная программа. (Вывод области эха, который Emacs обычно генерирует сам, например, вывод команд, полностью подавляется.)

Текст, не соответствующий кодировке ASCII, записываемый в стандартные дескрипторы вывода или ошибок, по умолчанию кодируется с использованием locale-coding-system (см. Локали), если он не nil; это можно переопределить, привязав coding-system-for-write к кодировке по вашему выбору (см. Явное кодирование).

Переменная: noninteractive

Эта переменная имеет значение «не-nil», когда Emacs работает в режиме пакетной обработки.

Если Emacs завершается из-за сигнализации об ошибке в режиме пакетной обработки, код завершения команды Emacs не равен нулю:

$ emacs -Q --batch --eval '(error "foo")'; echo $?
foo
255

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/Batch-Mode.html

Spec-Zone.ru

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