バッファローカル変数とは、バッファごとに値がことなる変数である。
バッファ固有の値を格納する場合に使われる。
setqしているのに別のバッファから見たら別の値になっているというのはままある話で、
バッファローカル変数の作り方を覚えておく。
- 常にバッファローカル変数と宣言する
- 通常はデフォルト値を使い、特定のバッファのみにローカルにする
(defvar lvar1 'global) (defvar lvar2 nil) (make-variable-buffer-local 'lvar2) ;; 変数を自動的にバッファローカル変数にする (setq-default lvar2 'automatically-local) ;; 変数のデフォルト値を設定する (with-temp-buffer (set (make-local-variable 'lvar1) 'local1) ;; 変数をバッファローカル変数にし、初期値を設定する lvar1 ; => local1 (default-value 'lvar1) ; => global lvar2 ; => automatically-local (setq lvar2 1) lvar2 ; => 1 (setq-default lvar2 'automatically-local-modified) lvar2 ; => 1 (default-value 'lvar2) ; => automatically-local-modified ) lvar1 ; => global lvar2 ; => automatically-local-modified (with-temp-buffer lvar1 ; => global lvar2 ; => automatically-local-modified (setq lvar2 2) lvar2 ; => 2 ) lvar1 ; => global lvar2 ; => automatically-local-modified
P102
- 作者: るびきち
- 出版社/メーカー: 技術評論社
- 発売日: 2011/11/26
- メディア: 単行本(ソフトカバー)
- 購入: 5人 クリック: 220回
- この商品を含むブログを見る