emacsのhelmについてインストール以前の話があまりされていないので丁寧な解説をしたいと思う.
helmとはemacsに統一的なある”操作方式”を提供するフレームワークである. helmで提供される操作方式では,ある情報(ファイル名,バッファ名など)に対して,
- インクリメンタルなパターンマッチによる絞り込みを行い,
- 対象の情報を選択し,
- 対象の情報に対してアクション(ファイルを開く,削除する)を行う
の3段階の操作方式を提供する. このフレームワーク上で作られた機能は全て同じ操作方式で機能を利用することができる.
もう少し具体的な話としてファイルを開くhelm-find-filesを紹介しよう. C-x C-f からファイルを開く場合,通常ならポインタがミニバッファに移動し,ファイル名を入力してファイルを開いていた. ファイル名の入力は基本的には記憶に頼る物で,TABによる補完機能も前方一致のみだった. helmではカレントディレクトリのファイルが候補として表示される.
ここで”zsh”と入力することで部分一致によるマッチングが行われ,候補となるファイルが絞り込まれる.
このままファイル名を入力してしまってもいいのだが, C-n や C-p によって対象を選択することができる.
開きたいファイルを選択したらRETで開くことができる.
別の例も紹介しよう.
過去にカット・コピーされた内容を取り出す M-y コマンドは,通常なら M-y を押すたびに表示されるペースト結果を見て一喜一憂しながらペーストをしていた. helmでは先ほどのファイル操作と同様の操作方法でペーストを実行できる.実際に見てみよう. M-y を押すとキルリングの候補と現在のパターンマッチが表示される.
ここで”hoge”と入力することで候補となるテキストが絞り込まれる
そしてRETすれば貼付けられるのだが,TABを押してみよう. TABを押すことでこのテキストに対して行えるアクションが表示される. ここでは張り付け(ヤンク)と削除のアクションが用意されている.
RETでは最も利用されるアクション(この場合は張り付け)がデフォルトとして割り当てられていたが,複数のアクションが用意されていることもある. このアクションの選択画面でも入力による絞り込みや C-n や C-p による移動ができる. ここでは削除を選択してキルリングから削除してしまおう.サヨナラ!
この 絞り込み -> 選択 -> アクション の操作性を様々な機能に提供するのがhelmの本質である.