シンボルを buffer-local にする4つの方法

なんかホッテントリメーカーくせぇ。

make-local-variable: 'symbol

現在のバッファでのみ buffer-local になる。setq とかしなくても local-variable-p が non-nil になる。

make-variable-buffer-local: 'symbol

全てのバッファで buffer-local になる。setq するまでは local-variable-p は nil のまま。

defvar-local: symbol value &optional doc

全てのバッファで buffer-local になる。setq するまでは local-variable-p は nil のまま。
つまり make-variable-buffer-local の初期値(と説明)を指定できる版。

setq-default: symbol value

別に buffer-local にはならない。

4つじゃなくて3つ(あるいは2つ)だった。