- Title
- defvar-local
- Type
- Macro
- Arguments
- defvar-local NAME INITIAL-VALUE &optional DOC
- Package
- editor
- Section
- 変数と定数
- File
- misc.l
変数NAMEがバッファ毎に異なる値を持つようにします。関連する関数として、
defvar/make-local-variable等がありますが、それぞれ機能が異なります。
defvar-localはdefvarと異なり、スペシャル変数とはならないので注意が必要です。
defvar : スペシャル変数を作る。
defvar-local : 全バッファで変数が独自の値を持つようにする。
make-local-variable : 特定のバッファで変数が独自の値を持つようにする。
また、defvar-localだけではその変数はローカル変数にはならないようです。バ
ッファでsetqをして初めてローカルになる(local-variable-pがtになる)よう
です。
使用例:
;;; defvarとdefvar-localを使ってダイナミックかレキシカルかを確認する。
(defvar var 3)
=> var
(defvar-local var-local 3)
=> var-local
(defun foo () (let ((var 4) (var-local 4)) (bar)))
=> foo
(defun bar () (format nil "var : ~S, var-local : ~S" var var-local))
=> bar
(foo)
=> "var : 4, var-local : 3"
(defvar-local *dabbrevs-case-fold* nil)
- Seealso
- make-local-variable
- setq-default
- local-variable-p
- buffer-local-value
- defvar