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