Spec-Zone.ru › Elisp

Переменные, влияющие на вывод

Переменная: standard-output

Значение этой переменной — это поток вывода по умолчанию — поток, который используют функции print, когда аргумент stream равен nil. По умолчанию это t, что означает вывод в области эха.

Переменная: print-quoted

Если это значение не nil, то это означает вывод в кавычках с использованием сокращенного синтаксиса читателя, например, (quote foo) выводится как 'foo, а (function foo) как #'foo. По умолчанию это t.

Переменная: print-escape-newlines

Если значение этой переменной не nil, то символы новой строки в строках выводятся как ‘\n’, а символы перевода страницы — как ‘\f’. Обычно эти символы выводятся как фактические символы новой строки и перевода страницы.

Эта переменная влияет на функции print 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, управляющие символы в строках выводятся функциями print prin1 и print, которые выводят с кавычками, в виде последовательностей с обратным слешем. Если эта переменная и print-escape-newlines оба не равны nil, то последняя имеет приоритет для символов новой строки и перевода страницы.

Переменная: print-escape-nonascii

Если значение этой переменной не nil, то символы с однобайтовыми кодировками, не являющиеся ASCII, в строках безусловно выводятся функциями print prin1 и print, которые выводят с кавычками, в виде последовательностей с обратным слешем.

Эти функции также используют последовательности с обратным слешем для однобайтовых символов, не являющихся ASCII, независимо от значения этой переменной, когда поток вывода является многобайтовым буфером или маркером, указывающим на него.

Переменная: print-escape-multibyte

Если значение этой переменной не nil, то многобайтовые символы, не являющиеся ASCII, в строках безусловно выводятся функциями print 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-gensym

Если значение не nil, эта переменная включает обнаружение неинтернированных символов (см. Создание символов) при выводе. При включении этой функции неинтернированные символы выводятся с префиксом ‘#:’, который сообщает читателю Lisp о создании неинтернированного символа.

Переменная: print-continuous-numbering

Если значение не nil, это означает непрерывный вывод номеров при вызове print. Это влияет на числа, выводимые для меток ‘#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 «Буква», «Число», «Знак препинания», «Символ» и «Зарезервированные» (см. Свойства символов), а также управляющие символы, имеющие собственный синтаксис эскейпа, например, символ новой строки.

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/Output-Variables.html

Spec-Zone.ru

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