※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

xyzzy + estraier.l


Hyper Estraier Mode on xyzzy

[2008-02-06] MyWiki より転記・修正
[2006-02-08]
デスクトップ検索を xyzzy から

Hyper Estraier

インデックスを使った全文検索システム

Windows版バイナリパッケージ(hyperestraier-1.x.x-win32.zip)を展開後、その
フォルダにpathを通す。(HE-grep 導入時に設定済みなら、そのままで OK。)

estraier.l v0.0.1


▼導入
1. estraier.l を ~/site-lisp/ にコピー、必要ならバイトコンパイル
2.~/.xyzzy か ~/site-lisp/sitlint.l に
(require "estraier")

  * estraier-help.html(Hyper Estraier Mode マニュアル)には
   site-lispフォルダに estraier.l を置き、(require "estraier/estraier")
   となっていますが、それでは”ファイルがありません”と怒られます。
   (require "estraier/estraier") にするなら estraier フォルダごと
   ~/site-lisp/ に置きます。
3.xyzzy を再起動
  メニューバーに「Estraier」ボタンと ~/xyzzy/.estraier-mode/ フォルダが
  作成される。

▼準備
1.インデックスを保存する場所を決める(デフォルト以外)
M-x est::est-add-casket-dir Enter
Folder : E:/HTML/casket Enter
Title : WEBソース Enter

  「indexフォルダとして登録する?」と聞かれるので、「はい」

2.インデックス作成
  [メニュー]→[index作成、追加、削除]をクリック、または
M-x est::est-add-index

  ・表示された *Estraier-Add-Index* バッファに、インデックスを作成したい
   フォルダを D&D、 g でインデックス化開始、
  ・ダイアログでファイルタイプ、文字コードなどを設定、確認後 OK
  ・終了したら q でインデックスモードを抜ける。

HE-grep 導入済みの場合は、1の作業のみで検索・最適化の対象として
認識されるが、index 削除の対象にはならないので注意。

3.検索
M-x est::estsearch

  表示されたダイアログで index を選択、検索語を入力
AND検索:空白区切り
NOT検索:!
OR検索:| 区切り
検索語に空白を含む場合は "" "" で囲む

  検索結果のファイルパス上で Enter で、関連付け実行

4.ファイルの更新や追加があったときに index に差分を書き直す
  [メニュー]→[フォルダ情報の更新] または
M-x est::est-sync
  対象フォルダパスの上で s

5.ファイルを削除した時の index への反映
  [メニュー]→[削除したファイルの反映] または
M-x est::est-purge

6.インデックスファイルの最適化
  [メニュー]→[dbファイルの最適化] または
M-x est::est-optimize

7.indexの削除
  [メニュー]→[index作成、追加、削除]をクリック、または
M-x est::est-add-index
  対象フォルダパスの上で d

Lisp の修正


■検索対象パスに空白が含まれると怒られる
estraier.l の 283行目、casketdir " " を書き換える
(xyzzyの使い方が分からぬやし 励ましあえ その8 127)(未検証)

"\"" casketdir "\"" " "
 * \は、バックスラッシュです。

■日本語の検索ができない
文字コードの選択肢を増やす(estcmd の オプションを xdoc2txt の出力に合わせる)
202行目
(encoding-data-list '("自動判別" "Shift_JIS" "ISO-2022-JP(メール)"
  "UTF-8" "EUC-JP" "CP932"))
261行目
(cmdlist '("estcmd search -sf -ic CP932 -vh -max -1 " 
  "estcmd search -ic CP932 -vh -max -1 "))
307行目
(encoding-data-list '("自動判別" "Shift_JIS" "ISO-2022-JP(メール)"
  "UTF-8" "EUC-JP" "CP932"))
397,398行目
"-ic EUC-JP "
"-ic CP932 -pc CP932"))

PDFやDOCのインデックス化時に [CP932] を指定します。
とりあえず、これで行けてます。



-