Emacs-lispに関する基礎知識

設定を変更したのに反映されない

mew-vars.el などにある設定をそのまま ~/.emacs~/.mew にコピーして設定を変更しても,その変更は反映されません.

defvar は変数の宣言と共にその変数の値を初期化します. ある変数に対して 2 回 defvar しても,1 回目の値のみが有効で,2 回目の値は代入されません. 一方,setq はどのような場合にも変数に値を代入します(もし,setq した変数が宣言されていない場合には,同時に変数を宣言します).

したがって,mew-vars.el などで defvar している変数の値を ~/.emacs~/.mew.el で変更する場合には,setq を使ってください.

例えば,mew-vars.el にある mew-smtp-server の値を localhost から mailhost に変更するには,~/.emacs~/.mew.el

(defvar mew-smtp-server "mailhost"
  "*The SMTP server name. If you want to use a remote SMTP server,
  set an appropriate value.")

とするのではなく,

(setq mew-smtp-server "mailhost")

としてください.


【Mew FAQ】