defvar とアスタリスク ¶従来、Emacsではdefvarという特殊形式を、ユーザーが変更しないと想定される内部変数と、ユーザーが変更すると想定される変数の両方に使用していました。ユーザーが自由に設定できる変数には引き続きdefvarを使用できますが、カスタマイズコマンドへのパスが提供されるため、代わりにdefcustomを使用してください。(defcustomを用いた変数の指定を参照してください。)
defvar という特殊形式で変数を指定した場合、ドキュメント文字列の第1列にアスタリスク
‘*’
を記述することで、ユーザーが変更したい可能性のある変数を他の変数と区別することができました。例えば:
(defvar shell-command-default-error-buffer nil "*Buffer name for `shell-command' ... error output. ... ")
set-variable コマンドを使用して、shell-command-default-error-buffer
の値を一時的に変更することができました(現在も可能です)。ただし、set-variable
で設定したオプションは、編集セッションの間のみ有効です。新しい値はセッションをまたいで保存されません。Emacs
が起動するたびに元の値が読み込まれます。ただし、.emacs ファイル内で手動で設定するか、あるいは
customize を使用して値を変更した場合はこの限りではありません。.emacs ファイル を参照してください。
私にとって set-variable コマンドの主な用途は、.emacs
ファイルで設定したい変数を提案することです。現在、こうした変数は700を超えており、すぐにすべてを覚えるには到底無理です。幸いなことに、M-x set-variable コマンドを実行した後に TAB
を押せば、変数の一覧を表示できます。(The GNU Emacs Manual の Examining
and Setting Variables を参照してください。)