Anything から Helm に移行した(ので、そろそろみんな移行すべき)。

最近の話ではないのですが、半月ほど前、何となく重い腰を上げて、Anything から Helm へと移行しました。
まぁ、開発ツール徹底攻略の記事中でも今後はAnythingよりHelmですって書きましたしね。

そもそも、Helm のインストール自体は、Helm が誕生したときから、Git リポジトリで clone しておいて、後は (require 'helm-config) するだけ状態だったのですが、どうも (set-file-name-coding-system 'utf-8-hfs) などの設定をしていると固まる現象があり、使うことができない状態が続いていたのですが、最近試してみると、普通に固まらなくなっていたので、めでたく移行できるようになりました。
インストール自体も、バージョンアップを楽にするため、packege.el から行なうことにしました。
現在、僕がとりあえずインストールしているパッケージは以下になっています。

  • helm
  • helm-ag
  • helm-c-moccur
  • helm-descbinds
  • helm-gtags
  • helm-migemo
  • wgrep-helm

設定は以下のような感じ。

;;; package.el
(when (require 'package nil t)
  ;; パッケージリポジトリにMarmaladeを追加
  (add-to-list 'package-archives '("marmalade" . "http://marmalade-repo.org/packages/"))
  (add-to-list 'package-archives '("melpa" . "http://melpa.milkbox.net/packages/"))
  (add-to-list 'package-archives '("ELPA" . "http://tromey.com/elpa/"))
  ;; インストールしたパッケージにロードパスを通してロードする
  (package-initialize))

;;; helm
(require 'helm-config)
(helm-descbinds-mode)
(require 'helm-migemo)
(setq helm-use-migemo t)

;;; 特に個人的な設定
;; Command+f で helm-for-files
(define-key global-map (kbd "s-f") 'helm-for-files)
;; C-x b で helm-for-files
(define-key global-map (kbd "C-x b") 'helm-for-files)
;; Command+y で anything-show-kill-ring
(define-key global-map (kbd "s-y") 'helm-show-kill-ring)
;; Command+r で anything-resume
(define-key global-map (kbd "s-r") 'helm-resume)

現在、Anything で普段使っていたものが、ほぼほぼ Helm でも使えるようになっている上、helm-ag など Anything になかった拡張も出てきているので、もうそろそろ、みんな移行してもよいのではないかと思いました。
ちなみに、両方インストールした状態でも特に衝突とか起きる心配ないので、とりあえず、Helm が気になる人はインストールだけでもしてみると良いでしょう。で、問題なく移行が完了したら、Anything の設定をコメントアウトする感じで。