このへんがよく分かっていない。
anything-command-map-prefix-key
を設定しようとして、起動時の設定ファイルで
(require 'anything-config) (setq anything-command-map-prefix-key "C-z")
のように設定しても、この変数は確かに設定されるのだけど、実際に設定されているキーバインドは
<f5> a anything-command-map
となっていて、変更されていない。
このあたりの定義はanything-config.el
で
(defun anything-set-anything-command-map-prefix-key (var key) (declare (special anything-command-map-prefix-key)) (when (boundp 'anything-command-map-prefix-key) (global-unset-key (read-kbd-macro anything-command-map-prefix-key))) (setq anything-command-map-prefix-key key) (global-set-key (read-kbd-macro anything-command-map-prefix-key) 'anything-command-map)) (defcustom anything-command-map-prefix-key "<f5> a" :type 'string :set 'anything-set-anything-command-map-prefix-key :group 'anything-config)
というかんじになっている。これはもう読み込まれた時点でデフォルト値"anything-command-map-prefix-key
を変更しても意味が無い、ということだろうか。
一方、customizeを使って変数を設定したときに生成される
(require 'anything-config) (custom-set-variables '(anything-command-map-prefix-key "C-z"))
というのを設定しておくと、ちゃんと
C-z anything-command-map
と設定される。custom-set-variablesの場合は設定後でもすべて上書きしてくれる、ということなのかな…?
変数の設定は基本的にcustom-set-variablesを使った方が良いのだろうか。もしくはsetq-default
?
正しい変数設定の仕方とは。。。