朝寝して宵寝するまで昼寝して時々起きて居眠りをする
タイトルの通りです。以前書いた記事(howm の検索に Hyper Estraier を使ってさらに速度改善 on xyzzy、HE-grep を使って howm のデータを検索する on xyzzy)のリンク先が NotFound のため、 howm-init.l に追記すれば良いであろう部分を抜き出しました。
現在検証環境がないので未検証です。またコードについても私が書いたものではないので引用ということで。
;;;;;;;;;;;;;;;;;;
;; ■ howm-wrap でキーワードサーチに Hyper Estraier を利用する
(defvar *howm-view-HE-grep-command* "estcmd search -ic CP932 -vh -gs -max -1 -ord @title")
(defvar *howm-view-HE-grep-index-dir* "C:/bin/xyzzy/.estraier-mode/casket") ;インデックスの保存されているディレクトリを指定
(defun howm-view-grep (str file-list &optional fixed-p)
(when (stringp file-list)
(setq file-list (list file-list)))
(when *howm-view-force-case-fold-search*
(setq str (downcase str)))
(cond (fixed-p
(howm-view-HE-grep str))
(howm-view-use-grep
(howm-view-real-grep str file-list fixed-p))
(t
(howm-view-fake-grep str file-list fixed-p))))
(defun howm-view-HE-grep-initialize-buffer (buffer)
(set-buffer buffer)
(erase-buffer buffer)
(set-buffer-fold-width nil)
(setq need-not-save t)
(setq kept-undo-information nil)
(setq auto-save nil))
(defun howm-view-HE-grep (str)
(let ((search-backward-f #'search-backward)
(file-list (ed::read-HE-recent-save-files howm-directory))
tmpbuf no-dup f)
(save-excursion
(setq tmpbuf (get-buffer-create "*howm-view-HE-grep-temp*"))
(howm-view-HE-grep-initialize-buffer tmpbuf)
(execute-shell-command (ed::format nil "‾A ‾A ‾A" *howm-view-HE-grep-command*
(map-slash-to-backslash *howm-view-HE-grep-index-dir*) str) nil tmpbuf)
(set-buffer tmpbuf)
(goto-char (point-min))
(while (scan-buffer (compile-regexp "^URI: file:///¥¥(.+$¥¥)")
:no-dup no-dup)
(setq no-dup t)
(setq f (si::www-url-decode (match-string 1)))
(setq f (substitute-string f "|/" ":/"))
(when (file-exist-p f)
(pushnew f file-list :test #'equal)))
(delete-buffer tmpbuf))
(mapcan (lambda (file)
(howm-view-fake-grep-file str file search-backward-f))
file-list)))