Emacs Lispを基礎から学ぶ (4): バッファオブジェクト/バッファローカル変数

バッファの作成/選択/削除/ファイル読込/出力

やっとバッファの概念が入ってEmacsらしくなってきた。バッファオブジェクトを扱う関数/コマンドはたくさんあるので使いそうなものを列挙:

バッファローカル変数

ちょっとこれだけややこしかったのでメモ。
elispにはバッファ固有の変数(特定のバッファで値を変更しても他のバッファに影響を及ぼさない変数)というものがある。バッファ毎に異なるmajor-modeとかbuffer-file-nameとかがその例。

このバッファローカル変数を扱う際には、

  1. 常にバッファローカル変数にバッファ固有の値を設定する
  2. グローバルな変数を特定のバッファでバッファローカル変数として設定し直す

という2つの方法がある。

論より実例: