elisp: Output Variables

 
 18.6 Variables Affecting Output
 ===============================
 
  -- Variable: standard-output
      The value of this variable is the default output stream—the stream
      that print functions use when the STREAM argument is ‘nil’.  The
      default is ‘t’, meaning display in the echo area.
 
  -- Variable: print-quoted
      If this is non-‘nil’, that means to print quoted forms using
      abbreviated reader syntax, e.g., ‘(quote foo)’ prints as ‘'foo’,
      and ‘(function foo)’ as ‘#'foo’.
 
  -- Variable: print-escape-newlines
      If this variable is non-‘nil’, then newline characters in strings
      are printed as ‘\n’ and formfeeds are printed as ‘\f’.  Normally
      these characters are printed as actual newlines and formfeeds.
 
      This variable affects the print functions ‘prin1’ and ‘print’ that
      print with quoting.  It does not affect ‘princ’.  Here is an
      example using ‘prin1’:
 
           (prin1 "a\nb")
                ⊣ "a
                ⊣ b"
                ⇒ "a
           b"
 
           (let ((print-escape-newlines t))
             (prin1 "a\nb"))
                ⊣ "a\nb"
                ⇒ "a
           b"
 
      In the second expression, the local binding of
      ‘print-escape-newlines’ is in effect during the call to ‘prin1’,
      but not during the printing of the result.
 
  -- Variable: print-escape-nonascii
      If this variable is non-‘nil’, then unibyte non-ASCII characters in
      strings are unconditionally printed as backslash sequences by the
      print functions ‘prin1’ and ‘print’ that print with quoting.
 
      Those functions also use backslash sequences for unibyte non-ASCII
      characters, regardless of the value of this variable, when the
      output stream is a multibyte buffer or a marker pointing into one.
 
  -- Variable: print-escape-multibyte
      If this variable is non-‘nil’, then multibyte non-ASCII characters
      in strings are unconditionally printed as backslash sequences by
      the print functions ‘prin1’ and ‘print’ that print with quoting.
 
      Those functions also use backslash sequences for multibyte
      non-ASCII characters, regardless of the value of this variable,
      when the output stream is a unibyte buffer or a marker pointing
      into one.
 
  -- Variable: print-length
      The value of this variable is the maximum number of elements to
      print in any list, vector or bool-vector.  If an object being
      printed has more than this many elements, it is abbreviated with an
      ellipsis.
 
      If the value is ‘nil’ (the default), then there is no limit.
 
           (setq print-length 2)
                ⇒ 2
           (print '(1 2 3 4 5))
                ⊣ (1 2 ...)
                ⇒ (1 2 ...)
 
  -- Variable: print-level
      The value of this variable is the maximum depth of nesting of
      parentheses and brackets when printed.  Any list or vector at a
      depth exceeding this limit is abbreviated with an ellipsis.  A
      value of ‘nil’ (which is the default) means no limit.
 
  -- User Option: eval-expression-print-length
  -- User Option: eval-expression-print-level
      These are the values for ‘print-length’ and ‘print-level’ used by
      ‘eval-expression’, and thus, indirectly, by many interactive
      evaluation commands (SeeEvaluating Emacs-Lisp Expressions
      (emacs)Lisp Eval.).
 
    These variables are used for detecting and reporting circular and
 shared structure:
 
  -- Variable: print-circle
      If non-‘nil’, this variable enables detection of circular and
      shared structure in printing.  SeeCircular Objects.
 
  -- Variable: print-gensym
      If non-‘nil’, this variable enables detection of uninterned symbols
      (SeeCreating Symbols) in printing.  When this is enabled,
      uninterned symbols print with the prefix ‘#:’, which tells the Lisp
      reader to produce an uninterned symbol.
 
  -- Variable: print-continuous-numbering
      If non-‘nil’, that means number continuously across print calls.
      This affects the numbers printed for ‘#N=’ labels and ‘#M#’
      references.  Don’t set this variable with ‘setq’; you should only
      bind it temporarily to ‘t’ with ‘let’.  When you do that, you
      should also bind ‘print-number-table’ to ‘nil’.
 
  -- Variable: print-number-table
      This variable holds a vector used internally by printing to
      implement the ‘print-circle’ feature.  You should not use it except
      to bind it to ‘nil’ when you bind ‘print-continuous-numbering’.
 
  -- Variable: float-output-format
      This variable specifies how to print floating-point numbers.  The
      default is ‘nil’, meaning use the shortest output that represents
      the number without losing information.
 
      To control output format more precisely, you can put a string in
      this variable.  The string should hold a ‘%’-specification to be
      used in the C function ‘sprintf’.  For further restrictions on what
      you can use, see the variable’s documentation string.