switch-buffer-functions 20160702.2157(in MELPA)
Hook run when current buffer changed

概要

switch-buffer-functions.elは同名のhookを提供する超短いelispです。
window-configuration-change-hook というウィンドウ構成が変更されたときに実行されるフックは用意されているものの、なぜかカレントバッファを変更したときに実行されるフックは用意されていません。
そこで、このパッケージをインストールすると switch-buffer-functions というフックによってカレントバッファの変更を追跡できます。
インストールした時点でフックが使えるようになっているので、requireは不要です。

以下のように使用します。

(add-hook 'switch-buffer-functions
          (lambda (prev cur) (message "%S -> %S" prev cur)))

フックの関数は2引数関数となっていて、直前のバッファとカレントバッファを引数にとります。

上記の設定ならば

#<buffer *eshell*> -> #<buffer README.adoc>

などとエコーエリアに表示されます。

なお、このelisp自体が各コマンド実行後に実行されるフック post-command-hook を用いた簡単な例になっているので、興味ある方は読んでみてください。

インストール

パッケージシステムを初めて使う人は
以下の設定を ~/.emacs.d/init.el の
先頭に加えてください。

(package-initialize)
(setq package-archives
      '(("gnu" . "http://elpa.gnu.org/packages/")
        ("melpa" . "http://melpa.org/packages/")
        ("org" . "http://orgmode.org/elpa/")))

初めてswitch-buffer-functionsを使う方は
以下のコマンドを実行します。

M-x package-install switch-buffer-functions

アップグレードする方は、
以下のコマンドでアップグレードしてください。
そのためにはpackage-utilsパッケージが必要です。

M-x package-install package-utils (初めてアップグレードする場合のみ)
M-x package-utils-upgrade-by-name switch-buffer-functions


本日もお読みいただき、ありがとうございました。参考になれば嬉しいです。