CAMPHOR-だと少数派のEmacsを使ってる人です。今回はEmacsで割と統合的なプロジェクト管理を実現するProjectileについて、Helmという拡張と一緒に簡単に紹介してみようと思います。Projectileとは?ざっくり言うと汎用的なプロジェクト管理をEmacsで行うための便利機能いっぱいなパッケージです。ちなみに、projectileという単語自体は手元の英和辞書を引いてみますと「砲弾・石などの発射物、あるいはロケットなどの自動推進体」とかあります。公式ページのREADMEを見るとわかるように個別の機能の数は多いのですが、だいたいの所次のようにまとめられると思います。手元のGitリポジトリ下のファイルを開いたとします。Projectileはその時点で自動的にルートディレクトリ等を認識し、そのプロジェクト内のファイルに絞った操作を行えるようになります。そのプロジェクト内で最近開いたファイルを開くとか、プロジェクトのテストを再実行するとか。一度開いたプロジェクトのルートディレクトリは記憶してくれているので、プロジェクト単位での管理もしやすい感じです対応するファイルを簡単に開ける「Hoge.cに対してHoge.hを開きたい」というような場合や「Testコードと実装コードを行き来する」といった、あるファイルと実装上関連があるファイルを開く操作に対して強いです。特段設定の必要なくプロジェクトごとに編集作業ができるので、Projectile単体で十分利用価値があるのですが、さらにHelmという拡張機能と組み合わせるとより使い勝手がまします。Helmとは?Emacsでの操作全般を効率化する非常に強力な拡張です。基本的にはHelmは「操作対象(ファイル、ディレクトリ、コマンド)について、統一された見た目で表示・検索が可能」・「いちいち個別にキーバインド覚えてやらなければならない操作を減らす」という2つの特徴があると私は考えています。Emacsには標準でrecentfという「最近開いたファイルを開く」的拡張があるのですが、これをHelmでラップしたhelm-recentfは以下のように利用できます。rで最近開いたファイルの一覧を表示インクリメンタルに絞込みその後Tabでそのファイル等に対して行える操作を表示ここでは「違うWindowで開く」を選択してファイルを別ウインドウで表示ということを行います。「ファイルを消すときのコマンドとかなんだっけ?」とか考えなくても「とりあえずファイルを選んでTabを押してみる」ということができて効率的かな、と思ってます。ProjectileとHelmで、ようやっと本番です。Projectileでは、標準で主要な機能はHelmから扱えるようになってます。Projectileのインストールまずは、MELPAでProjectileを入れて以下のように設定しましょう。'helm)(helm-projectile-on)3行です。具体的なコマンドあとは参考文献とか読みながら色々試してみると良いと思いますが、具体的にいくつか紹介しておこうと思います。以下、「<操作内容>(<コマンド名>、<デフォルトキーバインド>)」の書式で紹介していきます。f)基本の基本で特に説明することもあんまないはずですが、実はProjectile独自(?)の機能がありまして、複数ファイルを一気に開けるというのがあります。開きたいファイルをC-SPCで選択後、後はRETすると全部開けます。図では2つのファイルを選択しています(緑にハイライトがかかっている)。g)Helmのインターフェイスでプロジェクト内のファイルにGrepかけられます。agとかも使えるようです。ここで実行されるコマンドは変数で設定できます。まとめProjectile(+Helm)の触り部分を紹介しました。すんごいリッチな環境でがっつり開発するんだったらIDE立ち上げればいいと思うんですが、そうでもないときには意外と気軽に試せて使い心地の良い拡張なんじゃないかなぁと思います。Emacs使って開発するようなことがある方はぜひ。ProjectileProjectileをHelmで利用してできることについてかなり具体的な内容がまとまってます。コメントをキャンセルメールアドレスが公開されることはありません。