前記事で、Emacs(macOS)での migemo の設定ついて紹介したが、msys2(Windows環境)のEmacsで、migemoインクリメンタル検索を使えるようにしたので備忘録を残す。
migemo はローマ字のまま日本語を検索するためのツール。
cmigemoをmsys2にインストール
migemo は元々 Ruby で書かれていたようですが,最近の Ruby では動かないので C 言語で再実装された cmigemo を使うのが一般的のよう。
msys2のパッケージ(pacman)には、cmigemoは準備されていないようなので、ソースからビルドする。nkfコマンドも必要なようなので、先にビルドする。
nkfのビルド
任意フォルダで、下記URLから nkf
のソースを取得し展開する。
https://ja.osdn.net/projects/nkf/downloads/64158/nkf-2.1.4.tar.gz/
$ wget https://ja.osdn.net/projects/nkf/downloads/64158/nkf-2.1.4.tar.gz
$ tar xvf nkf-2.1.4.tar.gz
展開したフォルダに移動し、コンパイル&インストール
$ cd nkf-2.1.4/
$ make
$ make install
実行確認
$ nkf --help
cmigemoのビルド
任意のフォルダに、GitHubから cmigemo
のソースを取得
$ git clone https://github.com/koron/cmigemo
取得したフォルダに移動し、コンパイル&インストール
$ cd cmigemo
$ ./configure --prefix=/usr/local
$ make mingw-install
インストール完了したら、下記コマンドで実行できる事を確認
$ cmigemo --help
Emacsに migemo.el をインストール
パッケージ化されているので、Emacsで下記を実行。
M-x package-install<RET>
migemo
Emacsの設定
下記を初期設定に追加。
尚、私はinit-loaderを利用しており、~/.emacs.d/inits/windows-03_migemo.el
ファイルを作成。
;;
;; migemo.elの設定 (for msys2)
;;
(when (and (executable-find "cmigemo")
(require 'migemo nil t))
(setq migemo-command "cmigemo")
(setq migemo-options '("-q" "--emacs"))
;; Set your installed path (msys2では~からの相対で書かないとダメ)
(setq migemo-dictionary
(file-truename "~/../../usr/local/share/migemo/utf-8/migemo-dict"))
(setq migemo-user-dictionary nil)
(setq migemo-regex-dictionary nil)
(setq migemo-coding-system 'utf-8-unix)
(load-library "migemo")
(migemo-init)
)
インクリメンタル検索してみる
C-s
キー押すと、下記画面のように [MIGEMO]
と表示される。
ここで tokyo
とローマ字入力すると 東京
の日本語文字を検索する。便利便利!!
補足
cmigemo
の辞書ファイルは、/usr/local/share/migemo/utf-8/migemo-dict
にインストールされる。- 最初は、macOS/msys2/Linuxで共通の設定ファイルにしようとしたが、辞書ファイルの位置や動きが異なるところがあったので、機種別の設定ファイルにした。
コメント