Переменные, влияющие на вывод
- Переменная: standard-output
Значение этой переменной — поток вывода по умолчанию, то есть поток, используемый функциями печати, когда аргумент stream равен
nil. Значение по умолчанию —t, что означает вывод в область эха.
- Переменная: print-quoted
Если значение этой переменной не равно
nil, формы с цитированием выводятся с использованием сокращённого синтаксиса чтения: например,(quote foo)выводится как'foo, а(function foo)— как#'foo. Значение по умолчанию —t.
- Переменная: print-escape-newlines
-
Если значение этой переменной не равно
nil, символы перевода строки в строках выводятся как ‘\n’, а символы перевода страницы — как ‘\f’. Обычно эти символы выводятся как настоящие переводы строк и переводы страниц.Эта переменная влияет на функции печати
prin1иprint, которые выводят данные с цитированием. Она не влияет наprinc. Вот пример использованияprin1:(prin1 "a\nb") -| "a -| b" ⇒ "a b"(let ((print-escape-newlines t)) (prin1 "a\nb")) -| "a\nb" ⇒ "a b"Во втором выражении локальная привязка
print-escape-newlinesдействует во время вызоваprin1, но не во время вывода результата.
- Переменная: print-escape-control-characters
Если значение этой переменной не равно
nil, управляющие символы в строках выводятся как последовательности с обратной косой чертой функциями печатиprin1иprint, которые выводят данные с цитированием. Если значения этой переменной иprint-escape-newlinesне равныnil, последняя имеет приоритет для символов перевода строки и перевода страницы.
- Переменная: print-escape-nonascii
-
Если значение этой переменной не равно
nil, однобайтовые символы, не относящиеся к ASCII, в строках безусловно выводятся как последовательности с обратной косой чертой функциями печатиprin1иprint, которые выводят данные с цитированием.Эти функции также используют последовательности с обратной косой чертой для однобайтовых символов, не относящихся к ASCII, независимо от значения этой переменной, если потоком вывода является многобайтовый буфер или маркер, указывающий на него.
- Переменная: print-escape-multibyte
-
Если значение этой переменной не равно
nil, многобайтовые символы, не относящиеся к ASCII, в строках безусловно выводятся как последовательности с обратной косой чертой функциями печатиprin1иprint, которые выводят данные с цитированием.Эти функции также используют последовательности с обратной косой чертой для многобайтовых символов, не относящихся к ASCII, независимо от значения этой переменной, если потоком вывода является однобайтовый буфер или маркер, указывающий на него.
- Переменная: print-charset-text-property
-
Эта переменная управляет выводом текстового свойства ‘charset’ при печати строки. Значение должно быть
nil,tилиdefault.Если значение равно
nil, текстовые свойстваcharsetникогда не выводятся. Если значение равноt, они выводятся всегда.Если значение равно
default, текстовые свойстваcharsetвыводятся только при наличии «неожиданного» свойстваcharset. Для символов ASCII все наборы символов считаются «ожидаемыми». В противном случае ожидаемое свойствоcharsetсимвола задаётся функциейchar-charset.
- Переменная: print-length
-
Значение этой переменной — максимальное количество элементов, выводимых в любом списке, векторе или булевом векторе. Если в выводимом объекте элементов больше этого числа, он сокращается с помощью многоточия.
Если значение равно
nil(значение по умолчанию), ограничение отсутствует.(setq print-length 2) ⇒ 2(print '(1 2 3 4 5)) -| (1 2 ...) ⇒ (1 2 ...)
- Переменная: print-level
Значение этой переменной — максимальная глубина вложенности круглых и квадратных скобок при выводе. Любой список или вектор, глубина вложенности которого превышает это ограничение, сокращается с помощью многоточия. Значение
nil(используемое по умолчанию) означает отсутствие ограничения.
- Пользовательская опция: eval-expression-print-length
- Пользовательская опция: eval-expression-print-level
Это значения для
print-lengthиprint-level, используемые функциейeval-expressionи, следовательно, косвенно — многими интерактивными командами вычисления (см. Вычисление выражений Emacs Lisp в Руководстве GNU Emacs).
Эти переменные используются для обнаружения и отображения циклических и совместно используемых структур:
- Переменная: print-circle
Если значение этой переменной не равно
nil, она включает обнаружение циклических и совместно используемых структур при выводе. См. Синтаксис чтения циклических объектов.
- Переменная: print-unreadable-function
-
По умолчанию Emacs выводит нечитаемые объекты как ‘#<...>"’. Например:
(prin1-to-string (make-marker)) ⇒ "#<marker in no buffer>"Если значение этой переменной не равно
nil, оно должно быть функцией, вызываемой для обработки вывода таких объектов. Функция вызывается с двумя аргументами: объектом и флагом noescape, используемым функциями вывода (см. Функции вывода).Функция должна возвращать либо
nil(вывести объект обычным образом), либо строку (которая будет выведена), либо любой другой объект (не выводить объект). Например:(let ((print-unreadable-function (lambda (object escape) "hello"))) (prin1-to-string (make-marker))) ⇒ "hello"
- Переменная: print-gensym
Если значение этой переменной не равно
nil, она включает обнаружение неинтернированных символов (см. Создание и интернирование символов) при выводе. При включённой настройке неинтернированные символы выводятся с префиксом ‘#:’, который указывает считывателю Lisp создать неинтернированный символ.
- Переменная: print-continuous-numbering
Если значение этой переменной не равно
nil, нумерация продолжается между вызовами печати. Это влияет на номера, выводимые для меток ‘#n=’ и ссылок ‘#m#’. Не задавайте эту переменную с помощьюsetq; её следует только временно привязывать кtс помощьюlet. При этом также следует привязатьprint-number-tableкnil.
- Переменная: print-number-table
Эта переменная содержит вектор, используемый внутренними механизмами печати для реализации функции
print-circle. Не используйте её, за исключением привязки кnilпри привязкеprint-continuous-numbering.
- Переменная: float-output-format
-
Эта переменная задаёт способ вывода чисел с плавающей точкой. Значение по умолчанию —
nil, то есть используется кратчайшее представление числа, не приводящее к потере информации.Чтобы точнее управлять форматом вывода, можно поместить в эту переменную строку. Строка должна содержать спецификацию ‘%’, которая будет использоваться в функции C
sprintf. Дополнительные ограничения на допустимые значения см. в строке документации переменной.
- Переменная: print-integers-as-characters
-
Если значение этой переменной не равно
nil, целые числа, представляющие графические базовые символы, выводятся с использованием синтаксиса символов Lisp (см. Основной синтаксис символов). Остальные числа выводятся обычным образом. Например, список(4 65 -1 10)будет выведен как ‘(4 ?A -1 ?\n)’.Точнее, в синтаксисе символов выводятся значения, представляющие символы категорий Unicode: буква, число, знак препинания, символ и частная область использования (см. Свойства символов), а также управляющие символы с собственной escape-последовательностью, например перевод строки.
- Пользовательская опция: pp-default-function
Эта пользовательская переменная задаёт функцию, которую
ppиспользует для форматирования вывода. По умолчанию используетсяpp-fill, которая стремится найти баланс между скоростью и созданием естественно выглядящего вывода, помещающегося вfill-column. Ранее по умолчанию использоваласьpp-28; она обычно работает быстрее, но создаёт менее естественный и менее компактный вывод.
Copyright © 1990-1996, 1998-2026 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Output-Variables.html