Skip to content

msnoigrs/emacs-on-windows-patches

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Japanese IME patch and others for building with MinGW on Windows

GNU Emacs 30.2(あるいは31.0.50)をWindows向けにMSYS2(UCRT64)でコンパイルして使う人のためのパッチ

Windowsでemacsを自前コンパイルするためのパッチです。ビルド方法はBUILD.orgを参照してください。UCRT64環境でビルドします。 レジストリ登録処理削除パッチと、cmigemoパッチはお好みにより適用してください。その他のパッチは必須です。

自前でビルドしたくない場合は、msys2のパッケージリポジトリにUCRT版が準備されていますので、それをインストールするとよいでしょう。https://packages.msys2.org/package/mingw-w64-ucrt-x86_64-emacs

過去にはIME関係のパッチも置いていましたが、emacsが異常終了してしまう現象が起きるようになったため除きました。日本語入力に関しては、mozc.elからgoogle日本語入力を利用する方法に切り替えました。

02-emacs-30.2-dontusereg.patch, 02-emacs-20260406-dontusereg.patch

addpm.exeの処理において各種パスのレジストリ登録処理を省きます。addpm.exeにはスタートメニューにemacsのショートカットを作成するといった機能があります。

03-emacs-30.2-cmigemo.patch, 03-emacs-20260406-cmigemo.patch

emacs-26.1-rc1-cmigemo.diffと意味的に同じものです。

以下、abount patches and how to build emacs on Windows. (Japanese)からの引用です。

GNU emacs(x64)でダイナミックロード機能が独自に実装される前のcmigemo組み込み部分です。

cmigemoに関するパッチは、以下の情報由来のものです。

about patches and how to build emacs on Windows. (Japanese)
日本語Windows向けのIMEパッチやcmigemoを組み込むためのパッチ情報と、Windows上でemacsをコンパイルして使うための情報が丁寧に記されています。

私はこのcmigemo組み込みパッチを好んで使っていますが、他に同rzl24ozi氏によるdynamic module版を使う方法もあります。

オリジナルのcmigemo組み込みパッチは、 cmigemoコマンドの --nonewline オプション相当の機能が実現できません。このパッチでは cmigemo-open の2つ目の引数で指定できるようにしました。 cmigemo.el についても cmigemo-open を呼び出している箇所を修正しました。 migemo-options 変数に --nonewline-n が含まれている場合に、 cmigemo-open の2つ目の引数が t となります。ちなみにオリジナルパッチでは migemo-options 変数は参照されませんでしたが、この修正によりこの目的でのみ参照します。

--nonewline 機能は、migemoの出力結果を利用してripgrepを呼び出す場合に使います。 --nonewline を指定しない場合、migemoが出力する正規表現にripgrep非互換の表現が含まれてしまいます。この修正をすることで consult-ripgrep をmigemoと組み合わせて利用することができます。

cmigemo.el migemo-isearch-auto-enable.el はこのリポジトリのものを利用してください。

04-emacs-30.2-mingw32-remove-check.patch, 04-emacs-20260406-mingw32-remove-check.patch

configureスクリプトで行われる、imagemagickとlibgccjitに対するチェック処理がWindowsでは正常に行われないため、それらチェック処理を省きます。

001-ucrt-30.2.patch, 001-ucrt-20260406.patch

UCRT版のソースに付属するパッチです。

manifest-utf8.patch

emacsからプロセスを起動すると、UTF-8からCP932に変換されてしまう現象を回避するパッチです。manifestファイルにUTF-8を指定することで解決します。 M-! に続けて echo '日本語' を実行した結果が文字化けする場合には、この対処をすることで回避可能です。msys2で配布されているemacsバイナリでは文字化けしてしまいます。

この辺りの事情は以下のサイトが詳しいです。

ビルド方法

ビルド方法はBUILD.orgを参照してください。

Tree-sitterのモジュールDLLをビルドする

BUILD-tree-sitter-dll.orgを参照してください。

Windows上のemacsを使用するときに、同時に設定しておくと便利かもしれないもの

MISC.orgにまとめました。

About

Japanese IME patch and others for building with MinGW on Windows

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors