2013-08-30 12 views
6

Emacsでは、同じ変数をsetqで設定したときにトリガされないM-x customizeによって設定されたときに、いくつかの変数が特別な動作をします。そのような変数を設定して、ユーザーがカスタマイズによって変数を設定したかのように特別な動作がトリガされるようなプログラム的な方法はありますか?Emacs Lispでカスタム変数をプログラムで設定する方法は?

また、プログラムでユーザーのカスタムファイルに値を保存する機能はありますか?私は、ユーザーの追加要素も削除せずに、リストにデフォルトの要素を再追加する機能を実装しようとしています。

+1

をあなたは 'カスタムセットvariables'を探しているでしょうか?これはまさにあなたの '.emacs'ファイルに通常あるものです。 – nickie

答えて

6

customize-set-variableは、あなたが望むもので、custom-set-variables(これは必要ありません)です。

また、一般的には変数(ユーザーオプション)のdefcustomを見て、その:setスロットの内容などを確認することをお勧めします。値をプログラムで設定します。

[email protected]質問への回答はこれも役立つかもしれない: http://lists.gnu.org/archive/html/help-gnu-emacs/2013-08/msg00544.html

+0

これは、私が望んだものです。正確には、 ':set'プロパティを使って変数を設定するからです。 –

+2

後置きのために:カスタム変数をプログラムで設定し、将来のセッションに新しい値を保存する場合は、 'custom-save-variable'が必要な機能です。そのシグネチャは 'custom-set-variable'のシグネチャと同じであり、その振る舞いの唯一の違いは新しい値をユーザのカスタマイズファイルに'カスタムセット変数 '形式として書き込むことです。 –

0

機能default-valueとそれに続くcustom-set-variableを使用することがあります。

関連する問題