Next: , Previous: , Up: Easy Customization   [Contents][Index]


49.1.3 Changing a Variable

以下は変数またはユーザーオプションが、カスタマイズバッファーではどのように表示されるかの例です:

[Hide] Kill Ring Max: 60
   [State]: STANDARD.
   Maximum length of kill ring before oldest elements are thrown away.

最初の行には、この変数の名前がkill-ring-maxであることが、見やすいよう‘Kill Ring Max’のようにフォーマットされてに表示されています。この変数の値は‘60’です。‘[Hide]’というラベルのボタンは、アクティブにした場合は、この変数の値とステートを隠します。これは、変数がもし非常に長い値をもつ場合、カスタマイズバッファーが見にくくなるのを避けるために便利です(この理由により、非常に長い値をもつ変数は、最初は隠されています)。‘[Hide]’ボタンを使用すると、ボタンは‘[Show Value]’に変化し、これをアクティブにすると値とステートが表示されます。グラフィカルなディスプレーでは、‘[Hide]’と‘[Show Value]’ボタンは、下向きまたは右向きのグラフィカルな三角形で置き換えられます。

変数名の次の行は、変数のカスタマイズ状態(customization state)を示します。この例では‘STANDARD’で、これは変数を変更していないので、値はデフォルトのままだということを意味します。‘[State]’ボタンは、変数をカスタマイズするためのオペレーションメニューを提供します。

カスタマイズのステートの下は、変数のドキュメントです。これはC-h vコマンド(Examiningを参照してください)で表示されるのと同じドキュメントです。ドキュメントが複数行の場合、1行だけが表示されます。この場合、その行の最後に‘[More]’ボタンが表示されるので、これをアクティブにすれば完全なドキュメントを表示できます。

Kill Ring Max’に新しい値を入力するには、値にポイントを移動してそれを編集するだけです。たとえばM-dとタイプして‘60’を削除して、別の値をタイプします。テキストの変更を開始すると、‘[State]’行が変化します:

[State]: EDITED, shown value does not take effect until you
         set or save it.

値を編集してもすぐに変更は反映されません。変更を反映するには、‘[State]’をアクティブにして、‘Set for Current Session’を選択することにより、変数をセット(set)しなければなりません。すると変数のステートは以下のようになります:

[State]: SET for current session only.

無効な値を指定してしまうことを心配する必要はありません。‘Set for Current Session’オペレーションは正当性をチェックして、不当な値はインストールしません。

ファイル名、ディレクトリー名、Emacsコマンドのようなタイプの値を編集するときは、C-M-i (widget-complete)、または等価なキーM-TABESC TABで補完を行なうことができます。これはミニバッファーでの補完と同じように振る舞います(Completionを参照してください)。

編集可能な値フィールドでRETとタイプすることにより、TABのように、次のフィールドまたはボタンに移動できます。したがってフィールドの編集を終えたらRETとタイプして、次のボタンまたはフィールドに移動できます。編集可能なフィールドに改行を挿入するには、C-oまたはC-q C-jを使用します。

あらかじめ決められた値しかセットできず、値を直接編集することができない変数もいくつかあります。そのような変数の値の前には、かわりに‘[Value Menu]’ボタンが表示されます。このボタンをアクティブにすると、値の選択肢が表示されます。“onかoff”のブーリーン値にたいしては、‘[Toggle]’ボタンが表示され、このボタンにより値のオンとオフを切り替えることができます。‘[Value Menu]’ボタンや‘[Toggle]’ボタンを使用した後は、変数をセットして、選択した値を反映するために、再度値をセットしなければなりません。

複雑な構造の値をもつ変数もいくつか存在します。たとえば、minibuffer-frame-alistの値は連想配列(association list、alist)です。これはカスタマイズバッファーでは、以下のように表示されます:

[Hide] Minibuffer Frame Alist:
[INS] [DEL] Parameter: width
            Value: 80
[INS] [DEL] Parameter: height
            Value: 2
[INS]
   [ State ]: STANDARD.
   Alist of parameters for the initial minibuffer frame. [Hide]
   […more lines of documentation…]

この場合、リストの各association要素は2つのアイテムからなり、1つは‘Parameter’というラベルがつき、もう1つは‘Value’というラベルがつき、両方とも編集可能フィールドです。となりにある‘[DEL]’ボタンでリストからassociationを削除できます。associationを追加するには、挿入したい位置の‘[INS]’ボタンを使用します。一番最後の‘[INS]’ボタンはリストの最後に挿入します。

変数をセットした場合、新しい値はカレントEmacsセッションでだけ効果があります。将来のセッションのために値を保存(save)するには、‘[State]’ボタンを使用して、‘Save for Future Sessions’オペレーションを選択します。Saving Customizationsを参照してください。

[State]’ボタンを使用して‘Erase Customization’オペレーションを選択することにより、変数の値をその変数の標準値に復元することもできます。実際には4つのリセットオペレーションがあります:

Undo Edits

値を変更したが、まだ変数をセットしていない場合は、実際の値にマッチするようにバッファーのテキストを復元します。

Revert This Session's Customizations

これは、変更された変数がある場合は、変数の値を最後に保存された値に復元し、それ以外は標準の値に復元します。テキストも復元された変数に合わせて更新します。

Erase Customization

これは変数をその変数の標準値にセットします。保存した値も削除します。

Set to Backup Value

これはこのセッションでカスタマイズバッファーでセットされる前の値に、変数をリセットします。変数をカスタマイズしてからリセットすると、これはカスタマイズした値を破棄するので、このオペレーションにより、破棄した値に戻すことができます。

特定のカスタマイズにたいして、コメントを記録できれば便利なこともあります。コメントを入力するフィールドを作成するには、‘[State]’メニューの‘Add Comment’アイテムを使用します。

カスタマイズバッファーの上部には2行のボタン行があります:

 Operate on all settings in this buffer:
 [Revert...] [Apply] [Apply and Save]

[Revert...]’ボタンは、上述で説明したうち、最初の3つのリセット操作をドロップダウンします。‘[Apply]’ボタンは、カレントセッションにセッティングを適用します。‘[Apply and Save]’ボタンはセッティングを適用して、将来のセッションのためにそれらのセッティングを保存します。このボタンは、Emacsが-qまたは-Qのオプションで開始された場合は表示されません(Initial Optionsを参照)。

コマンドC-c C-c (Custom-set)は、‘[Set for Current Session]’ボタンを使用するのと等価です。コマンドC-x C-s (Custom-save)は、‘[Save for Future Sessions]’ボタンを使用するのと同様です。

[Exit]’ボタンはカスタマイズバッファーを、バッファーリストの最後のバッファーに隠し(bury)ます。カスタマイズバッファーをkillさせるようにするには、変数custom-buffer-done-killtに変更します。