English | 日本語
Migemo を使うと、インクリメンタルサーチでローマ字を入力するだけで日本語の名前を見つけられます。IME は必要ありません。kensaku と入力すると 検索、けんさく、ケンサク、ケンサク、kensaku にもマッチし、mudai と入力すると 無題.png が、daunro-do と入力すると ダウンロード が見つかります(ひらがなとして入力した読みでカタカナも見つかります)。既定で有効で、モードやスイッチは不要です。通常のマッチングは常に行われたままで、Migemo はマッチを追加するだけです。
Migemo はすべてのインクリメンタルサーチで使えます。
isearch)— スペースで区切ったトークンごとに、部分文字列または Migemo でマッチします。そのため tenki yohou で 天気予報.csv が見つかります。isearch)— マッチした行がハイライトされます。ローマ字のパターンがマッチした日本語のテキストもハイライトされます。isearch のキーはキーマッププリセットによって異なります。キーマッププリセットを参照してください。
kensaku、TenkiYohou、KENSAKU)は、部分文字列と Migemo の両方でマッチします。大文字・小文字は問いません。キャメルケースは単語の区切りとして扱われるので、TenkiYohou で 天気予報 が見つかります。*、?、[ のいずれかを含むもの)は、ワイルドカードとしての厳密な動作を保ち、Migemo はまったく使われません。*.py は .py ファイルにだけマッチします。AZIK(母音の下の段のキーを 2 打目に打つと、そのかなに「ん」を付けた音になる拡張ローマ字入力)で日本語を入力している場合は、次のように設定します。
MIGEMO_ROMAJI_TABLE = 'azik'
すると検索でも、AZIK で指が覚えた綴りが通じるようになります。
| 入力 | 結果 | 規則 |
|---|---|---|
kz kk kj kd kl |
かん きん くん けん こん | 撥音拡張(あ段では sn で さん) |
kq kh kw kp |
かい くう けい こう | 二重母音拡張 |
xa ca |
しゃ ちゃ | シャ行・チャ行互換キー |
kga kgp |
きゃ きょう | 拗音のY互換キー |
; : q |
っ ー ん | |
kf nf |
き ぬ | 同指打鍵互換キー |
kt mn ds |
こと もの です | 特殊拡張 |
つまり kdsaku で 検索 が、kzxa で 感謝 が、se;kw で 設計 が見つかります。
AZIK は通常のローマ字に加えて使われ、置き換えることはありません。両者で綴りの異なる少数のキー(ca は通常のローマ字では か、AZIK では ちゃ)はどちらの読みでもマッチするので、これを有効にしても、今使っている検索が使えなくなることはありません。
# In ~/.xefm/config.py
MIGEMO_SEARCH = True # Add Migemo (romaji -> Japanese) matches to incremental search
MIGEMO_MIN_LENGTH = 3 # Shortest pattern handed to Migemo
MIGEMO_ROMAJI_TABLE = 'default' # 'default' or 'azik'
MIGEMO_SEARCH = False にするとこの機能が無効になり、検索は以前とまったく同じ動作になります。MIGEMO_MIN_LENGTH を上げ下げすると、Migemo が働き始める長さを変えられます(1 にすると 1 文字でも Migemo を通します。最初のキー入力で目に見える待ち時間が出ると考えてください)。
この長さは、何にもマッチしない文字をインクリメンタルサーチがどれだけ早く拒否するかにも関わります。ローマ字の読みで日本語が見つかるのは MIGEMO_MIN_LENGTH に達してからなので、それより短いパターンが行き止まりとして扱われることはありません。ただし、ディレクトリに日本語の名前が 1 つもない場合は Migemo が見つけるものがないので、ほかの場合と同じく最初にマッチしなかった時点で検索が止まります。
Migemo は pymigemo パッケージを使います。これは XeFM と一緒に自動でインストールされます(辞書は同梱されていて約 1.4 MB、初めて使うときに読み込まれます)。パッケージがない場合、検索は何も言わずに通常のマッチングに戻ります。何かが壊れることはありません。