ireplace また更新

non-incremental-search を切っておかないと、空の文字列を置換文字列に指定できない。

(defun my-isearch-query-replace-regexp (prefix)
  (interactive "P")
  (if prefix
      (query-replace)
    (let ((search-whitespace-regexp nil)
          (my-ireplace-user-quit-search-p nil)
          (isearch-mode-end-hook (cons (lambda ()
                                         (setq my-ireplace-user-quit-search-p
                                               isearch-mode-end-hook-quit))
                                       isearch-mode-end-hook))
          (search-nonincremental-instead nil))
      (isearch-forward-regexp)
      (unless my-ireplace-user-quit-search-p
        (isearch-query-replace-regexp)))))