日本語入力可能な GNU Emacs のインストール (Windows)

今回は Windows IME を使った日本語入力が可能な GNU Emacs (ver. 24.2) のインストールと設定についての記事です

2015-06-15 追記
Emacs バージョンが上がって少しインストール方法が変わったので、記事を書き直しました。
Emacs 24

Emacs の日本語入力の問題

GNU Emacs のままでも日本語入力ができないわけではありません。 Emacs 独自の日本語入力機能をもっていて、そっちを使えということらしいです。
ただ、 Windows の IME と比べると、かしこさが全然違います。 やっぱり Windows であれば IME を使いたいところです。

Windows IME を使うとすると対応は 2 つです。
  • GNU Emacs にパッチをあてる
  • Meadow
パッチをあてた GNU Emacs も gnupack で公開されています。
しかし、 Windows Vista + Microsot IME では正常に動作しますが、 Windows 7 + Microsoft Office IME 2007 では上手く入力ができません。
emacs_msime.png
Meadow の方はというと、開発が終了したらしく、 古いバージョン(Emacs 21 相当) で止まったままになっています。

Meadow を使い続けていたのですが、 最近ちょっと限界を感じて来て、 GNU Emacs を動かす方法を調べてみました。
そんな大層なものでもないですが、解決方法が見つかったので、 その方法と GNU Emacs のインストール方法について書いてみたいと思います。

他の IME の使用

Windows 7 がダメだったのか Microsoft Office IME がダメだったのかわかりませんが、 IME を他の IME にしたら、 Emacs でも日本語入力できるようになりました。

試したのは無料で使える Goole IME, Baidu IME の 2 つです。
どちらも変換機能は MS-IME と比べてそれほど遜色ありません

インストールは、各リンク先からインストーラーをダウンロードして、 実行すれば OK です。
Google IME
Google が作成した IME です。 Google IME
Baidu IME
Baidu IME は中国発の検索サイト Baidu(百度) が出している IME です 。 emacs_baidu.png
追記
IME の比較記事を書きました。 お勧めは Google IME です。

追記 2013-01-25
Office IME を 2007 から 2010 にアップデートしたら、 Windows 7 でも日本語入力できるようになりました。
Office 2010 をもっていなくても、過去の Office 製品のライセンスがあれば、 Microsoft のサイトから無料でダウンロードすることができます。 IME の比較記事も更新しました。 今度のお勧めは Office IME 2010 です。

gnupack(emacs+cygwin) のインストール

Windows IME 用のパッチをあてた GNU Emacs は以下からダウンロードできます。 Cygwin と emacs がセットになった gnupack の方であれば、 ダウンロードして、実行すれば、解凍されてすぐに使えます。
develop とついているのは開発版なので、 gnupack_basic-XX.XX.exe の方がいいでしょう。

起動する場合は、展開フォルダー内に emacs.exe があるので、こちらを実行します。

gnupack の設定

gnupack では基本的にそのまま使えるのですが、やっておいた方がいいかなと思われる設定です。

スクロール時のフリーズ防止

なぜかマウスのホイールでスクロールすると emacs がよくかたまります。

同じ症状が出る方は、 (インストールフォルダー)/home/.emacs.d/init.el の 300 行付近の @ scroll の ブロックを削除またはコメントアウトしてください。
;; ------------------------------------------------------------------------
;; @ scroll

   ;; バッファの先頭までスクロールアップ
   (defadvice scroll-up (around scroll-up-around)
     (interactive)
     (let* ( (start_num (+ 1 (count-lines (point-min) (point))) ) )
       (goto-char (point-max))
       (let* ( (end_num (+ 1 (count-lines (point-min) (point))) ) )
: :

[漢字] 、 [変換] キーの無効化

IME は [漢字] 、 [変換] キーなどで呼び出しますが、 この時 undefined といったエラーメッセージが発生して邪魔になります。

以下のような記述で何もしない関数(ignore)を割り当てることができます。 これを (インストールフォルダー)/home/.emacs.d/init.el に追加します。
(global-set-key [M-kanji] 'ignore)
(global-set-key [kanji] 'ignore)
日本語入力が Windows の IME に置き換わったと思いきや、 \C-\ で Emacs 自前の IM になりますし、 どうやら、 Emacs のコマンド呼び出しとは別のところで IME の On/Off が行われているようです。

パッケージ管理機能用の設定

Emacs にはパッケージの管理機能がついていて、拡張機能を簡単にインストールできるようになっています。 これはネットから直接パッケージをダウンロードします。 プロキシーを介してネットにアクセスしている場合には上記の記事を参考にプロキシーの設定を行って下さい。

Emacs 単体でのインストール

私の場合はシェルには eshell を使っていますし、 サイズも大きいので、 Cygwin は使っていません。

Emacs 単体でのインストール方法も紹介します。 ちょっと面倒ですが、一回設定すれば、アップグレードした場合も ほとんどそのまま使えます。

ただ、 gnupack の emacs は Cygwin とセットにしているだけでなく、 デフォルトでいろいろな機能を使えるようになっています。 Emacs 単体の場合も gnupack 内の emacs を使うことにします。

最初に gnupack 展開後、 中の app/emacs/emacs フォルダーをインストールしたいところに移動して下さい。

環境変数の設定

環境変数を設定する必要があります。
環境変数 設定値
HOME 好きなフォルダー。
私はマイドキュメントと同じフォルダーにしています。
Path bin フォルダーのパスを追加

grep, diff のインストール

Cygwin は使わないのですが、 grep や diff コマンドは結構使います。
Cygwin をコンパクトにした Gow というのもあるのですが、こちらではなぜか上手く動きません。

これらのコマンドは単体で入れることにします。

各サイトのページからコマンドをダウンロードして Path の通ったフォルダーにおきます。
ダウンロードした zip ファイルには、ドキュメントなどもついています。 実行ファイルだけでもいいのですが、私の場合は d:/usr のフォルダーを作って、 そこに構成ごと入れるようにしています。 ライブラリーも必要になるので、以下の 2 つ dll もパスの通ったフォルダーに置きます。 この 2 つで大丈夫だとは思いますが、足りないとエラーになる場合は 各コマンドの Requirements のリンクから取得して下さい。


なお、 Emacs から grep, diff を利用する方法については以下の記事をご覧ください。
grep
Step by step 正規表現入門 - 英数字とエディターでの検索 | プログラマーズ雑記帳
diff
Emacs のファイル差分表示(ediff, diff)機能の使い方 | プログラマーズ雑記帳

~/.emacs.d/init.el の設定

gnupack と同じ設定になるようにします。

(gnupack)/home/.emacs.d を環境変数で設定した HOME 以下にコピーします。

起動時の el ファイルは ~/.emacs.el から ~/.emacs.d/init.el に変更になったようです。
ただし、 ~/.emacs や ~/.emacs.el がすでにあると そちらが呼ばれて、 ~/.emacs.d/init.el は読み込まれません。 すでにある場合は削除するか別名にしてください。

Cygwin を使わないようにするので、 ~/.emacs.d/init.el の 431 行目付近の @ setup-cygwin, @ shell のブロックをコメントアウトします。
;; ------------------------------------------------------------------------
;; @ setup-cygwin
   (setq cygwin-mount-cygwin-bin-directory
         (concat (getenv "CYGWIN_DIR") "\\bin"))
   (require 'setup-cygwin)
   (file-name-shadow-mode -1)

;; ------------------------------------------------------------------------
;; @ shell
   (require 'shell)
   (setq explicit-shell-file-name "bash.exe")
   (setq shell-command-switch "-c")
: :

migemo の使用

gnupack に入っている migemo はインクリメンタルサーチをする際にローマ字で日本語を検索する機能です。これは便利なので使うことにします。

(gnupack)/cmigemo を適当なフォルダーに移動します。 ここでは d:/usr 以下に移動したとします。

~/.emacs.d/init.el の 431 行目付近の @ migemo/cmigemo ブロック内のコマンドと辞書のパスを移動先のものに変更します。
;; ------------------------------------------------------------------------
;; @ migemo/cmigemo
   (setq migemo-command "D:/usr/cmigemo/cmigemo.exe")
   (setq migemo-options '("-q" "--emacs"))
   (setq migemo-dictionary "D:/usr/cmigemo/dict/utf-8/migemo-dict")
   (setq migemo-user-dictionary nil)
   (setq migemo-regex-dictionary nil)

起動

あとは gnupack の設定の内容も行えば、 設定は完了です。 gnupack の方は削除して構いません。
本当はもっと色々設定しているのですが、 そちらは確認しながら、小出しにしていこうかなと思っています。

起動する場合には bin フォルダー内の runemacs.exe をショートカットを作るなどして実行してください。

追記
小出しにした設定の記事もたまってきたので、そのうち設定関連のまとめの記事を書きたいと思ってますが、 とりあえず、ビープ音を消すのと日本語環境の設定はやっておいた方がいいかなと思います。

関連記事
スポンサーサイト
Prev.    Category    Next 

Facebook コメント


コメント

コメントの投稿

Font & Icon
非公開コメント

このページをシェア
アクセスカウンター
アクセスランキング
[ジャンルランキング]
コンピュータ
35位
アクセスランキングを見る>>

[サブジャンルランキング]
プログラミング
6位
アクセスランキングを見る>>
カレンダー(アーカイブ)
プルダウン 降順 昇順 年別

05月 | 2017年06月 | 07月
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 -


はてな新着記事
はてな人気記事
ブロとも申請フォーム
プロフィール

yohshiy

Author:yohshiy
職業プログラマー。
仕事は主に C++ ですが、軽い言語マニアなので、色々使っています。

はてブ:yohshiy のブックマーク
Twitter:@yohshiy

サイト紹介
プログラミング好きのブログです。プログラミング関連の話題や公開ソフトの開発記などを雑多に書いてます。ただ、たまに英語やネット系の話になることも。