MacのEmacs環境での日本語入力
本日のお題目と結論
MacでEmacsの設定を行っていて、いろいろとemacsと日本語の設定をしてみました。結論としてはまだまだ模索中です。具体的にはMOZC(モズク)というGoogle日本語入力のフリー版のビルドがうまくいかないので最終版ではないのですが現時点まででまとめておきます。
いろいろなMac用emacsの日本語環境
EMP(Emacs Mac Port)版 + Google日本語入力
もっとも手軽に導入ができる組み合わせ。
良いところはコンパイルなどが一切必要がないので、気軽に使い始めることができる。Codeを作るのが主な作業で日本語はたまにしか使わないのであればこの設定で十分だと思います。
残念なところはEmacsと日本語が連動するわけではないので、emacsのコマンドの前後で日本語のON/OFFの設定が必要になります。これを解決するために mac-auto-ascii-modeが用意されていてコマンド入力までは日本語OFFに切り替えられますが復帰時に日本語モードに戻るためには設定で戻す必要があります。このあたりはどこまでこだわって設定するかによりますが、あまたあるemacsのモード、機能全てに対応するのはなかなか大変ではないかと思います。
EMP版 + MOZC (+mozc_emacs_helper)
Macの一般的な日本語環境は、ことえりとGoogle日本語入力なんじゃないかと思ってたのですが、Webで検索してみると最近ではAppleのほうもずいぶんと力を入れて改善されたようで純正ことえりを勧める書き込みも多くありました。ワタシはことえりの調子が悪い頃にGoogle日本語入力がこれで無料?とびっくりしたころから現在まで使い続けています。
そんなことえりとGoogle日本語入力なのですが、MacOS側のコントロールが強くてあまりうまく連動しません。具体的にはemacsはControlとなにかのキーであったり、Metaキーを押したあとにコマンドを打ち込むことができてこのときには日本語をOFFにする必要があります。そしてコマンドを入力したあとは日本語モードに戻すようなコントロールが必要になるのですが、これがなかなかうまくはいきません。
一方GoogleがOpen Sourceのほうへの貢献として、このGoogle日本語入力をフリーで公開しています。これをMOZC(モズク)といいます。MOZCはフリーで公開されているのでこれをコントロールできるソフトが開発されたりしてMacOSの制約から離れることができるようになっています。
このMOZCはすばらしいですが一つ不便があって自分でビルドする必要があります。Ubuntu版とかはビルドされているのが公開されているので、なにかMacOSでは公開しちゃいけない理由があるんですかね。 で、このビルドをいろいろ調べながら頑張っているのですが、ワタシの力不足でこれがうまくいっていません。
先人の方もずいぶんと苦労されていたようでいろいろな書き込みが公開されています。ソースが公開されいるので具体的にここにパッチを当てれば良いというようありがたいものをあるのですが、それがMOZC本体に取り込まれていたりして情報と現状があっていないということにしばしば当たります。
また直近の書き込みを見ると本家の情報に従えば普通にビルドできるというのも見かけたので本家のインストラクションに忠実にしたがってみてもうまくできなかったりします。これはpythonとかのビルドで呼ばれているツールのバージョンにも依存しているようです。昨日わかったのはPythonはlatestの3.10ではビルドスクリプトの生成が失敗する問題があるので、現状は3.9に戻す必要があったり、その他pythonスクリプトから呼ばれるツールなどのコンパイラのバージョン、ライブラリに依存している部分もありそうです。なのですべて最新にしていたのもアダになりました。このpythonは昨年の11月ごろに切り替わったようなので、他のソフトのビルドスクリプト生成Failの書き込みから見つけることができました。
そんなわけでMacOSのクリーンインストールして再度ためしてみたいのですが、今使っているMacが2015年くらいからUpdateして使っているので一度クリーンインストールをしたりしたいなぁと思いなかなか行動に移れません。あと数日するとM1 MacBookAirが届くのでそれで試してみようと思っています。
現状はVirtualbox上でUbuntuサーバを立ち上げて、そこにあるmozc_emacs_helperをsshで起動させているので見た目はMOZCが動いている体にしています。
Ubuntu20.04 + emacs + MOZC + XQuartz
これはmozc_emacs_helperを動かすためにsshの設定をしていたら簡単にできたものです。MOZCを動かすためにVirtualbox上にサーバを立ち上げておいて、ものはついでにとUbuntu用emacsのインストールをしたところ簡単にMac側から起動することができました。この設定のメリットはX11環境の中でemacsを動かすのでMacOSの制約から離れられることと、デスクトップを複数台で使っている人にとっては単一のemacsのインストールで複数のMacから起動させることができます。 かつemacsなどのソフトもubuntu用だと情報もたくさんあるので設定で困ることは少ないように思います。
不便なところは、Ubuntu側にログインして使うのでファイルはUbuntu上のファイルになりMacOS側のディスクにアクセスするためにはVirtualboxなどの共有設定やSMBでマウントするなりのお手当が必要になります。
まとめ
先日のThinkPad X240からいろいろとソフトウェアの設定にハマっていますが、気分的には楽しめているのでもうちょっと続けていきたいと思います。EMP + MOZCの設定も2022年版としてうまくまとめられたらいいなぁと思っています。