quick-buffer-switch 20151007.1508(in MELPA)
Quick switch to file or dir buffers.

概要

quick-buffer-switch.el は、特定の条件を満たす
ファイルやディレクトリを容易に開くことのできるパッケージです。

たとえばdiredだけ、emacs-lisp-modeだけ、
org-modeだけといった具合です。

ただ、単体では正直使いやすくありません。

なぜなら、候補選択は通常の completing-read が使われているため、
ミニバッファで補完という原始的なインターフェースだからです。

幸いなことにcompleting-readのインターフェースは
別なものにすりかえることができます。

現時点ではhelmが良いでしょう。

helmもインストールして

(helm-mode 1)

を加えればhelmのインターフェースで選択できます。

インストール

パッケージシステムを初めて使う人は
以下の設定を ~/.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/")))

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

M-x package-install quick-buffer-switch

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

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

helm推奨です。
M-x package-install helm

設定 141213035150.quick-buffer-switch.1.el(以下のコードと同一)

(require 'quick-buffer-switch)
(setq qbs-prefix-key "C-x C-c") ;プレフィクスキー、C-x C-cは潰していいよね
(qbs-init)
(helm-mode 1)                      ;helmなどを入れないと使いづらい
(qbs-add-predicates                ;カスタマイズするときに囲む必要ある
 ;; M-x qbs-ruby-modeを定義
 (make-qbs:predicate
    :name 'ruby-mode   ;名前
    :shortcut "r"      ;C-x C-c rに割り当て
    ;; enh-ruby-modeかruby-modeかつファイルバッファ
    :test '(and (memq major-mode '(enh-ruby-mode ruby-mode))
                qbs:buffer-file-name)))

実行方法

$ wget http://rubikitch.com/f/141213035150.quick-buffer-switch.1.el
$ emacs -Q -f package-initialize -l 141213035150.quick-buffer-switch.1.el

最初に使えるコマンド

このようにいろいろな条件が予め定義されています。

けれどもこれらは覚える必要はなく、
使うものを適宜キーに割り当てたり
自分で定義した方がよいでしょう。

C-x C-c C-h 隠しバッファ M-x qbs-hidden-buffer
C-x C-c C-/ 正規表現で絞り込み M-x qbs-matching-regexp
C-x C-c C-d dired M-x qbs-directory
C-x C-c C-f ファイル M-x qbs-file-name
C-x C-c f ファイル M-x qbs-file-buffer
C-x C-c C-c ファイルかディレクトリ M-x qbs-file-or-directory
C-x C-c C-o org-mode M-x qbs-org-mode
C-x C-c C-e ERC M-x qbs-erc
C-x C-c C-g Magit M-x qbs-magit
C-x C-c C-v vcsh M-x qbs-vcsh
C-x C-c C-l emacs-lisp-mode M-x qbs-emacs-lisp-mode
C-x C-c C-i HelpかInfo M-x qbs-help-buffer
C-x C-c C-b ファイル・ディレクトリ以外 M-x qbs-not-file-nor-directory
C-x C-c C-p プロセスバッファ M-x qbs-with-process
C-x C-c C-v shell-mode/term-mode M-x qbs-terminal
C-x C-c C-r リモートファイル M-x qbs-remote

本設定ではqbs-ruby-modeをC-x C-c rに割り当てる例を示しました。

20141213043511.png
Fig1: helmインターフェースでRubyのバッファを選択!


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