emacs の grep モード
なんで今まで使っていなかったのか.
grep してマッチしたファイルの該当行を開くということができる. もちろん syntax highlight も. 開発環境ならばもう ack はいらないかもしれない
使い方
- デフォルトでは 
M-x grepでミニバッファに grep コマンドがでるので入力, 実行すると新しいバッファに結果が出る.- grep コマンドの任意のオプションをその場でつけることもできる. grep コマンドそのものなのでわかりやすい
 
 - 見たいファイルにカーソルを合わせて Return でそのファイルの該当行を別バッファで開く
 M-g nで次の候補,M-g pで前の候補に移動
カスタマイズ
デフォルトでは grep -nh -e というオプションがついているが, -r もつけたい. またキーバインドも設定したい.
Emacs実践入門 - おすすめEmacs設定2012 - ククログ(2012-03-20)
こちらのクリアコードさんの記事を参考に以下を設定しました.
;;; grep
(define-key global-map (kbd "C-x g") 'grep)
(require 'grep)
(setq grep-command-before-query "grep -nH -r -e ")
(defun grep-default-command ()
  (if current-prefix-arg
      (let ((grep-command-before-target
             (concat grep-command-before-query
                     (shell-quote-argument (grep-tag-default)))))
        (cons (if buffer-file-name
                  (concat grep-command-before-target
                          " *."
                          (file-name-extension buffer-file-name))
                (concat grep-command-before-target " ."))
              (+ (length grep-command-before-target) 1)))
    (car grep-command)))
(setq grep-command (cons (concat grep-command-before-query " .")
                         (+ (length grep-command-before-query) 1)))