英辞郎テキスト版を ripgrep で検索する Emacs-Lisp プログラムです。
- ripgrep のインストール
最新版を下記 URL から取得してインストールします。
- 英辞郎テキスト版の入手
最新版を下記 URL から取得します(有料)。
- 辞書の文字エンコーディングを utf-8 に変換
nkf を利用して文字エンコーディグを変更します。
% nkf -w8 -Lu EIJIRO-144x.TXT > ~/etc/eijiro-144x.utf-8
ここでは、改行コードも CRLF -> LF に変換しています。
- eijiro.el のインストール
load-path の通った場所に、eijiro.el を配置します。あるいは、
M-x package-install-file RET
を使ってもいいでしょう。最低限の設定として、変数
eijiro-dictionary
に、英辞郎テキスト 版(utf-8)のパスを指定しておきます。(require 'eijiro) (setq eijiro-dictionary "~/etc/eijiro-144x.utf-8")
- 基本
M-x eijiro-lookup RET
とすると、カーソル付近の語を自動的に拾っ て検索します。アクティブなリージョンがあれば、それを優先します。明示的に検索したい語を入力する場合には、何もない場所にカーソルを 移動してからにしてください。
お好みで、キーをバインドしておいてもいいでしょう。
(global-set-key (kbd "C-c e") 'eijiro-lookup)
- 検索動作のカスタマイズ
前置引数を指定すると、組み込みの検索動作を呼び出すことができます。
前置引数 検索結果 なし “WORD” を含む C-u “WORD” で始まる見出し語に一致 C-u C-u “WORD” に完全一致 M-1 “WORD” の前方一致のみ M-2 “WORD” の中間一致のみ M-3 “WORD” の後方一致のみ デフォルトは何でもヒットするモードなので、もう少し絞りたいという 場合にはこれらを試すといいかもしれません。
ripgrep に詳しい人は、正規表現をそのまま入力してもいいでしょう。
- キーバインド
検索結果ウィンドウでは、以下のキーが使えます。
キー 動作 SPC 上スクロール DEL 下スクロール n 1行前進 j 〃 p 1行後退 k 〃 h 1文字後退 l 1文字前進 q ウィンドウを閉じる
- 変数:
eijiro-rg-arguments
ripgrep の引数を設定できます。
- 変数:
eijiro-rg-max-count
デフォルトの検索モードは幅広くヒットするので、”the” など辞書に頻 出する語を検索すると膨大な数になり、時間もかかってしまいます。
これを回避するために、変数
eijiro-rg-max-count
で検索結果の上限 を設定できます。デフォルトは 500 です。
- 変数:
eijiro-window-height
検索結果ウィンドウの行数を設定できます。今のところ、検索結果ウィ ンドウの位置はフレーム下部に固定されています。
- フェイス:
eijiro-entry-face
見出し語用のフェイスです。
- フェイス:
eijiro-block-face
ブロック(補足や例文など)用のフェイスです。
- フェイス:
eijiro-match-face
検索に一致した語をハイライトするためのフェイスです。
emacs-emojify をインストールしている場合には、検索結果を絵文字で装 飾できます。
例えば、以下の設定をすると、補足の先頭にフクロウを、例文の先頭に鉛 筆を表示できるようになります。
(setq eijiro-annotation-label ":owl:")
(setq eijiro-example-label ":pencil:")
(add-hook 'eijiro-mode-hook 'emojify-mode)
デフォルトの整形は最低限のもので、あまり凝ったことはしていません。
これが気にいらない場合には、変数 eijiro-beautify-functions
を設
定することで自由に整形することができます。
詳細については、関数 eijiro--display-result
を参照してください。