yaotti's diary

QiitaやKobito、Qiita:Teamを作っています。Software is Eating the World

anythingでプロジェクト間を移動するelisp

複数プロジェクトのディレクトリ間を移動するのが相当面倒になってきたので書いた.
yaotti/anything-switch-project.el · GitHub

git clone git://github.com/yaotti/anything-switch-project.el.git

.emacsとかに

(require 'anything-switch-project)
(global-set-key (kbd "C-c f") 'anything-switch-project)

と書けば, C-c fで自分のプロジェクト全てをリストアップしてanything絞り込みし,選択すれば移動できる.今対応しているのはgit管理されているもののみ.
linuxのlocateやgnuのglocateで正規表現を使えばsvnとか,色々対応できるんだけど,プロジェクトリストの取得にかなり時間がかかる+自分がgit以外のvcs使わないのでgit決め打ちで書いている.
git管理されていないディレクトリも追加したいときは

(setq asp:my-projects
      '("~/sshfs/external-server/project/"
        "~/project/root/controlled/by/svn/"))

とか書けばよい.