应该尽量使用setq还是setq-default?

setqsetq-default 作用不一样,不存在「应该尽量用哪个」这种情况,需要用哪个就用哪个。

普通的变量只要一个值,setq-default 没有意义,应该直接用 setq

对于 buffer local 变量,这样的变量每一个 Buffer 都有一个独立的值,因为不是每一个 buffer 都主动会设置它,所以需要有一个「初始值」或者「默认值」或者「全局值」,创建新 buffer 会自动继承这个值,如果需要修改这个「默认值」就只能用 setq-default;如果需要修改这个变量在当前 buffer的值就只能用 setq。所以当使用 (setq-default foo ...) 时,你确认

  1. foo 是个 buffer-local 变量
  2. 你想修改 foo 的「默认值」
1 个赞