私はこれを私のinit.elに追加しました:
(defun recursive-load-dir-settings (currentfile)
(let ((lds-dir (locate-dominating-file currentfile "settings.el")))
(when lds-dir
(progn
(load-file (concat lds-dir "settings.el"))
(recursive-load-dir-settings (file-truename(concat lds-dir "..")))))))
(defun load-dir-settings()
(interactive)
(when buffer-file-name
(recursive-load-dir-settings buffer-file-name)))
(add-hook 'find-file-hook 'load-dir-settings)
これsettings.el
により、現在のファイルのディレクトリにファイルが読み込まれます。次にsettings.el
、(。dir-locals.elのように)そのようなファイルが見つからなくなるまで、ディレクトリツリーで上方向に検索を続けます。
これにより、セキュリティプロンプトなしで設定ファイルが読み込まれて実行されるため、そのようなファイルをディレクトリツリーに配置できるのは自分だけであることを確認する必要があります。それでもプロンプトが必要な場合は、もちろん、カスタマイズメカニズムを使用せずにプロンプトを追加init.el
できるため、クリーンな状態を保つことができます。
の例は次のsettings.el
ようになります。
(make-local-variable 'my-pw)
(setq my-pw "passw0rd A")
(message "Loaded super-secret password for project A")