■ Windows Subsystem for Linux の Emacs で利用できる設定


【お知らせ】


<2022/11/28 追記>
次の問題が報告されていますので、WSL は Microsoft Store版のものを利用することをお勧めします。

<2021/02/05 追記>
本ページの内容は WSL2 でも動作します。DrvFs や VolFs の記載がある場合には、Windows 側のファイルシステム、WSL2 側のファイルシステムと読み替えてください。

<2020/09/02 追記>
WSL2 では、UNC パスをマウントしているマウントポイント配下がカレントディレクトリの状態で Windows の exe コマンドを実行するとエラー終了するようです。4) の設定にこの対策を行いました。

<2019/07/26 追記>
Windows 10 1903 にバージョンアップしたところ、次の問題が発生しています。
  • DrvFs のフォルダに WSL から利用する exe コマンドを格納し、そのフォルダのシンボリックリンクを WSl の PATH に登録している場合、PATH を検索した exe コマンドの実行ができない。
似たような問題として次の issue が登録されています。
新しいビルドでは直っているようですが、Windows 10 1903 を利用している場合は、DrvFs のフォルダへの実際のパス(シンボリックリンクではないパス)を PATH に登録するようにしてください。この件を 4) のコメントとして追記しました。

<2019/06/24 追記>
Windows 10 1809 以降の Windows で発生する Emacs の shell-mode 等で exe コマンドが実行できない問題が本設定にも影響することがあるようなので、その対策を 4) に実施しました。

【本題】


Windows Subsystem for Linux 上で動かす Emacs の emacs-mozc から、Windows にインストールしている Google日本語入力を利用するための設定です。

1) 次の設定を参考とし、Windows Subsystem for Linux で Emacs を動かす環境を整備する。
※ 上記では Emacs を X Window で利用する方法(推奨)を紹介しています。Emacs をコンソールで利用する場合は X Window に関連する部分を除いて設定してください。
※ Emacs をコンソールで利用する場合は、次のページから Migu 1M のフォントをインストールして「プロパティ」で設定すると多少見やすくなります。

2) 次のサイトから「Google日本語入力」をインストールする。

3) DrvFs ファイルシステム上にフォルダを作成し、そのフォルダのパスを PATH に登録する。そして、そのフォルダに「emacs-mozc を動かすための設定(mozc_emacs_helper コンパイル編)」で準備した mozc_emacs_helper.exe を格納する。

※ すでにコンパイルされたコマンドは、次のリポジトリからダウンロードできます。
※ Windows 10 1903 を利用している場合、PATH に登録するパスは DrvFs のフォルダへの実際のパス(シンボリックリンクではないパス)としてください。シンボリックリンクのパスを PATH に登録すると、exe コマンドが実行できなくなります。

4) mozc_emacs_helper.sh を次の内容で作成し、上記で作成したフォルダに格納する。
#!/bin/sh

cd
mozc_emacs_helper.exe "$@" 2> /dev/null
※ このスクリプトは、VolFs 上にある PATH がとおったフォルダ(~/bin 等)に置いても構いません。
※ Windows 10 1809 以降の Windows では、Emacs の shell-mode 等で exe コマンドが実行できない問題が発生しています。Emacs から直接起動される際には発生しない問題ですが、shell-mode で動作確認する場合には次のようにパイプで cat を通すことで実行が可能となります。
$ mozc_emacs_helper.sh | cat
※ WSL2 では、UNC パスをマウントしているマウントポイント配下がカレントディレクトリの状態で Windows の exe コマンドを実行するとエラー終了するようです。このため、cd でホームディレクトリに移動してから、mozc_emacs_helper.exe を実行しています。

5) 次を参考として emacs-mozc の環境を設定する。((共通)および(「mozc_emacs_helper コンパイル編」利用の場合)の箇所の設定を行ってください。)
※ Emacs をコンソールで利用する場合は、mozc-candidate-style を 'echo-area に設定する方法もあります。
(setq mozc-candidate-style 'echo-area)

6) 次の設定を行い、mozc_emacs_helper.sh の利用を有効にする。
(setq mozc-helper-program-name "mozc_emacs_helper.sh")

7) Emacs で C-o を入力することにより、mozc-emacs-helper が起動し、「Google日本語入力」を間接的に使って漢字が入力できることを確認する。


<変更履歴>
  • 2016/09/13 このページを作成した。
  • 2017/04/11 Windows 10 1703 がリリースされ、WSL から Windows の EXE を実行できる機能が追加されたので、一部説明の見直しを行った。
  • 2017/11/06 mozc_emacs_helper.exe の配置場所の説明を見直した。
  • 2019/06/24 Windows 10 1809 以降の Windows で発生する Emacs の shell-mode 等で exe コマンドが実行できない問題が、本設定にも影響することがあるようなので、その対策を実施した。


最終更新:2022年11月28日 07:34