eshellでMerucurialのコマンドを補完するpcmpl-hg.elを書いた


このところ、eshellがいろいろとブームです。あのるびきちさんは「eshell無敵化計画」なるものを始動させたそうです。

これから、新プロジェクト「eshell無敵化計画」を立ち上げる!既成概念を徹底的に叩き壊し、あらゆるところから便利なアイデアやelispを取り込み、eshellを最強化する。Windowsでも動き、すべてがelispでコントロールできる至高のシェルになる資格がある。#EmacsWed Feb 23 23:56:49 via twmode

他にもここ数日で著名(オレ基準)な方々がeshellについて書かれています。

おれの eshell の設定 – 刺身☆ブーメランのはてなダイアリー
eshell と直前のバッファを行き来するコマンド 改造版 – わからん
vallog: eshell のプロンプトに git のブランチを表示
vallog: eshell を使ってみることに
kiyoka.2011_02_22 – 自分的に超重要な eshell 用設定

この流れに乗っからずにはおらいでか!

ということで、まだいろいろと問題点ありますがタイトルどおりのものを書いてみました。

myuhe/pcmpl-hg.el – GitHub

.emacsとかで(require ‘pcmpl-hg)と書けばeshell上でMercurialのサブコマンド、ショートオプション、ロングオプションが補完できるようになります。MQのコマンドにも対応しています。

中身見てもらうとわかりますが、補完データがショボショボハードコードです。実はるびきちさんが、補完関数を自動で生成するスクリプトを書かれていて、あーかっこいいなーと思いいろいろ試行していたのですが、うまくコマンドが抜けませんでした。。。ここんとこはどうかしたいです。

それと、ブランチ名とかの補完はできません。個人的な使い方としてはあまりブチブチブランチきらないのでそこまでしなくても良いかも、などと思っています。気がむいたら書いてみます。

というわけで、まだいろいろと直したいところがあるものの、こういったフィーバーでeshellとMercurialユーザが増えるといーなーと思い、書いてみました。実際に、これを使っているのですがリポジトリ操作はzshよりもすこぶる快適になりました。

gitの補完もできたら良いなーとか思いましたが、gitなので多分どなたかが書いてくれると思います。