anything-c-moccurにパターンを元にquery-replace-regexpを起動するコマンドを追加

いつもコピーしてC-M-%打っていたのでコマンドにしてみました。
デフォルトだとanything-c-moccur-occur-by-moccur起動中にC-M-%にバインドされます。

あと、パターン入力中に使われるsyntax-tableをanything-current-bufferのsyntax-tableに変更しました。

anything-c-moccurのquery-replace-regexpのコードはこんな感じです。

(defun anything-c-moccur-query-replace-regexp ()
  (interactive)
  (lexical-let ((input-re (minibuffer-contents))
                (cur-point (first anything-current-position)))
    (setq anything-saved-action (lambda (dummy)
                                  (let ((to-string (read-from-minibuffer "to: " input-re)))
                                    (unwind-protect
                                        (perform-replace input-re to-string t t nil nil nil (point-min) (point-max))
                                      (goto-char cur-point)))))
    (anything-exit-minibuffer)))

やっぱりクロージャレキシカルスコープって便利っすね。

2008/09/08 追記

クロージャー -> レキシカルスコープ