Emacsのoccurもどき,または,現在のファイルのみgrep

自分の .xyzzy から一掴み。(ちょっと古いけど)

;; へなちょこemacs-like occur (by yoshi/2001)
(defun yoshi-occur (regexp &optional arg)
  (interactive "soccur: \np")
  (editor::grep1 (compile-regexp regexp *case-fold-search*) 1))
(global-set-key '(#\C-c #\s)	'yoshi-occur)		; Emacs(yoshi)標準

これで M-x yoshi-occur 正規表現 [RET]すると,別バッファが開いてgrep結果が出るようになる。

あとは普通に*compilation*バッファの機能を使って,grepでヒットした行にジャンプしたりできる。

F10
カーソルのあるgrep結果行へジャンプ
F11
次のgrep結果行へジャンプ


ちなみにF11のためには以下が必要。

;; http://sugi.pobox.ne.jp/xyzzy/#SEC8
;; コンパイルエラーやgrep結果の行にジャンプ(F11)
(defun emacs-next-error (&optional arg)
  (interactive "p")
  (if (not editor::*error-list*)
      (progn
        (goto-char (point-min))
        (first-error arg nil))
    (next-error arg)))
(global-set-key #\F11 'emacs-next-error)