前節(出力に影響する変数を参照)では、Emacs
Lispプリンターが出力用のデータをどのようにフォーマットするかを制御する数多くの変数を挙げています。これらは通常、ユーザーが変更可能ですが、デフォルトの形式でデータを出力したい場合や、別の方法でユーザー設定を上書きしたい場合もあります。例えば、Emacs
Lispデータをファイルに保存する場合、print-length設定によってデータが短縮されることは避けたいはずです。
したがって、prin1 および prin1-to-string 関数にはオプションの overrides 引数があります。この引数には、t(すべての印刷変数をデフォルト値にリセットすることを意味する)か、一部の変数に対する設定リストのいずれかを指定できます。リストの各要素は、t(「デフォルトにリセット」を意味し、通常はリストの最初の要素となります)か、あるいは car が出力変数を表すシンボルで、cdr
がその変数の値であるペアのいずれかとなります。
例えば、これはデフォルト設定のみで出力します:
(prin1 object nil t)
これは現在の印刷設定を用いて object を出力しますが、print-length の値を 5 に上書きします:
(prin1 object nil '((length . 5)))
そして最後に、こちらはデフォルト設定のみで object を出力しますが、print-length は 5 にバインドされています:
(prin1 object nil '(t (length . 5)))
以下に、使用可能なシンボルと、それがどの変数に対応しているかの一覧を示します。
lengthこれは print-length を上書きします。
levelこれは print-level を上書きします。
circleこれは print-circle を上書きします。
quotedこれは print-quoted を上書きします。
escape-newlinesこれは print-escape-newlines を上書きします。
escape-control-charactersこれは print-escape-control-characters を上書きします。
escape-nonasciiこれは print-escape-nonascii を上書きします。
escape-multibyteこれは print-escape-multibyte を上書きします。
charset-text-propertyこれは print-charset-text-property を上書きします。
unreadable-functionこれは print-unreadable-function を上書きします。
gensymこれは print-gensym を上書きします。
continuous-numberingこれは print-continuous-numbering を上書きします。
number-tableこれは print-number-table を上書きします。
float-formatこれは float-output-format を上書きします。
integers-as-charactersこれは print-integers-as-characters を上書きします。
symbols-bareこれは print-symbols-bare を上書きします。
将来的には、変数に直接マッピングされず、このパラメータ経由でのみ使用可能なオーバーライドがさらに提供される可能性があります。