NTEmacs 21.3 に、
Meadow のソースの一部をマージして、Windows の IME (Input Method Editor) を、
利用できるようにしてみました。
これ以外にも、便利だと思うものを取り込みました。
(画面例1(ウインドウ立体枠無し)、
画面例2(ウインドウ立体枠有り)、
スケーラブルフォントの表示例)。
パッチを公開しますので、興味のある方は試してください。
0. お知らせ
CVS HEAD
の NTEmacs に対する patch を小林さんが公開されています。
最新の NTEmacs で IME を使いたい場合にはぜひ試してみてください。
また、この patch を使った
ビルドの仕方を広松さんが公開されてますので、参考にしてください。
現在 Emacs-21.1 をベースにした Meadow2
がベータテスト中です。
私は、 Meadow2 へ完全に移行してしまったため、今後
このページで公開している patch を更新する予定はありません。
この patch を利用されてる方は、
適宜 Meadow2 へ移行して頂くようにお願いします。
1. パッチの変更履歴
- 2003/08/22 新しい patch (emacs-21.3-IME-03.patch)を公開しました。
- VC5 でビルドできるようになります
- Cygwin でも正常に実行できます(今までではまともに動いてませんでした)
- 2003/08/22 ファイル名がマルチバイト文字(日本語等)の場合でも正しく取り扱えるようにした patch (emacs-21.3-IME-02.patch)を公開しました。 これは、 emacs21-users-ja ML で報告された不具合に対する対策です。
- 2003/05/30 Emacs-21.3 用の patch (emacs-21.3-IME-01.patch)を公開しました。
- 2003/02/13 最新の Cygwin でもビルドできるように修正しました。 ちゃんとテストしてないので、問題がありましたら連絡ください。
- 2002/04/07 patch に revision 番号を付けるようにしました。
- 2002/04/07 Emacs-21.2 用の patch を公開しました。
このパッチは、
クリフォードカウィリさんに提供して頂きました。また、
この patch では、Mingw 以外に MSVC でもビルドできるようになりました。
感謝です。
A meadow-ntemacs patch for Emacs-21.2, which was contributed by Clifford Caoile san, was released. I greatly appreciate his contribution. - 2002/03/07 某所から入手可能な Emacs-21.2.50 用の
パッチ
を実験的に公開しました。
本パッチは、KOBAYASHI Yasuhiro さんに提供して頂きました。感謝です。
- 2002/03/06 日本語入力中にカーソル位置が一瞬おかしくなる不具合を解消する 山田さんの patch を取り込みました。
- 2002/03/06 インストール時にディレクトリの作成に失敗しないように makefile を修正しました。
- 2002/01/23 本パッチが Windows95 でも稼動することを杉山武信さんに確認して頂きました。 感謝です。この情報に合わせて制限事項・注意事項 を修正しました。
- 2002/01/04 メニューバーから Cut/Copy/Paste が利用できるように ntemacs-meadow.el を修正しました。 Katsuhisa Higuchi さんに指摘・対策して頂きました。感謝です。
- (過去の履歴)
2. ダウンロード
最新のパッチ(どちらかをダウンロードして下さい)
- emacs-21.3-IME-03.patch.gz : 21.3用パッチです。サイズが小さく、 emacs のバージョンが多少異なっても適用できる可能性があります。 反面、コンパイル手順が少々面倒であり、 emacs のソースに対して本パッチを複数回適用することもできません。
- emacs-21.3-IME-03.tar.bz2 : 21.3用 tarball です。変更したファイルだけを固めたものです。 コンパイル手順は簡単であり、 すでに展開済みの emacs のソースに上書きすることができます。 反面、サイズが大きく、 要求される emacs のバージョン以外には適用できません。
- emacs-21.3-IME-02.patch.gz : 古い版の21.3用パッチです。
- emacs-21.2-IME-02.patch.gz : 21.2用パッチです。
3. このパッチで可能になること
- カーソル位置で、日本語変換ができるようになります。本変更前は、 カーソル位置に関係なく、フレーム左上でしか変換できませんでした。
- IME が有効なときでも、 複数ストロークのコマンドが入力できるようになります。 例えば、`C-x d' を入力するときに、 本変更前は、`C-x'の後の`d'が IME に奪われていました。
- 関数 wrap-function-to-control-ime を使って、 elisp から IME をトグルできるようになります。y-or-n-p, yes-or-no-p による問い合わせ時に、IME を強制的にオフにすることも可能です。
- 日本語変換中のフォントを指定できるようになります。 本変更前は、指定できませんでした。
- CLIENTEDGE(クライアント領域の立体枠)表示により、画面が少しだけリッ チになります。
- shell, perl, ruby 等のスクリプトが emacs から直接起動できるようになります。
4. 制限事項・注意事項
- コンパイルに、Cygwin 環境、または、Microsoft VC++ (MSVC) が必要です。
- 日本語変換の場所が、 一瞬おかしくなる場合があります。許してください。 この問題は解決済みです。
- Windows2000, NT4 で問題なく動くと思います。 Windows9x については、Windows95 で動くことが確認されていますが、 98/ME については未確認です。
- 一時的に、(featurep 'meadow-ntemacs) => t となるようにしています。
- Mew を起動すると Emacs が固まってしまいます。解決方法は、 [emacs21-user-jp: 239] を参照してください。
5. 使い方
使い方は簡単です。Emacs 上で、漢字キーを入力して IME をトグルさせて、
文字を入力してください。デフォルトで、`C-\ でも' トグル可能です。
IME のオン・オフは、関数 toggle-input-method を使って、
お好みのキーに割り当てることができます。下記の設定を参照してください。
6. コンパイル手順
Emacs21 のコンパイルには、Cygwin環境、
または、Microsoft VC++ (MSVC) を利用することが可能です。
どちらかお好みの方をご利用ください。
ここでは、それぞれの場合のコンパイル手順について順に示します。
6.1 Cygwin 環境を利用する場合
(1)事前準備
Cygwin を使えるようにしておきます。
Cygwin に詳しくない方は、 すべてのパッケージをインストールしてください。
インストーラを使うとデフォルトですべてインストールされます。
次に、
ftp://ftp.iij.ad.jp/pub/GNU/emacs/や
ftp://ftp.m17n.org/pub/mule
から Emacs 21.3 のソース一式(emacs-21.3.tar.gz)を入手します。
それから、
emacs-21.3-IME-03.patch.gz
(または
emacs-21.3-IME-03.tar.bz2)
を入手しておきます。
(2)コンパイル & インストール
emacs を /usr/local/emacs にインストールする場合の例を示します。
emacs-21.3.tar.gz と emacs-21.3-IME-03.patch.gz
(または emacs-21.3-IME-03.tar.bz2)がカレントディレクト
リにあるものとします。`#' 以降はコメントですので、入力は不要です。
emacs-21.3-IME-03.patch.gz を利用する場合
$ tar zxvf emacs-21.3.tar.gz $ cd emacs-21.3 $ zcat ../emacs-21.3-IME-03.patch.gz | patch -p1 # patch をあてる $ cd nt $ ./configure.bat --with-gcc --no-cygwin --prefix /usr/local/emacs/21.3 $ make all-meadow-ntemacs SHELL=bash # ビルドする $ make install SHELL=bash # インストール $ mkdir /usr/local/emacs/site-lisp # site-lisp ディレクトリを手動で作る
emacs-21.3-IME-03.tar.bz2 を利用する場合
$ tar zxvf emacs-21.3.tar.gz $ tar jxvf emacs-21.3-IME-03.tar.bz2 $ cd emacs-21.3/nt $ ./configure.bat --with-gcc --no-cygwin --prefix /usr/local/emacs/21.3 $ make meadow-ntemacs SHELL=bash # ビルドする $ make install SHELL=bash # インストール $ mkdir /usr/local/emacs/site-lisp # site-lisp ディレクトリを手動で作る
6.2 MSVC を利用する場合
(1)事前準備
まず、MSVC を利用できるようにしておきます。
また、tar, patch/gzip/gunzip 等のツールも別途必要ですので、
Cygwin 等をインストールしておいてください。
以下は、Cgywin のツールを利用する場合の手順を示します。
次に、
ftp://ftp.iij.ad.jp/pub/GNU/emacs/や
ftp://ftp.m17n.org/pub/mule
から Emacs 21.3 のソース一式(emacs-21.3.tar.gz)を入手します。
それから、
emacs-21.3-IME-03.patch.gz
(または
emacs-21.3-IME-03.tar.bz2)
を入手しておきます。
(2)コンパイル & インストール
emacs を /usr/local/emacs にインストールする場合の例を示します。
emacs-21.3.tar.gz と emacs-21.3-IME-03.patch.gz
(または emacs-21.3-IME-03.tar.bz2)がカレントディレクト
リにあるものとします。`#' 以降はコメントですので、入力は不要です。
emacs-21.3-IME-03.patch.gz を利用する場合
(Windows のコマンドプロンプト上で) $ tar zxvf emacs-21.3.tar.gz $ cd emacs-21.3 $ bash # こうしないと zcat が使えない??? $ zcat ../emacs-21.3-IME-03.patch.gz | patch -p1 # patch をあてる $ exit # bash を終了する $ cd nt $ .\configure.bat --with-msvc --prefix \usr\local\emacs\21.3 $ nmake all-meadow-ntemacs SHELL=bash # ビルドする $ nmake install SHELL=bash # インストール $ mkdir \usr\local\emacs\site-lisp # site-lisp ディレクトリを手動で作る
emacs-21.3-IME-03.tar.bz2 を利用する場合
(Windows のコマンドプロンプト上で) $ tar zxvf emacs-21.3.tar.gz $ tar jxvf emacs-21.3-IME-03.tar.bz2 $ cd emacs-21.3\nt $ .\configure.bat --with-msvc --prefix \usr\local\emacs\21.3 $ nmake meadow-ntemacs SHELL=bash # ビルドする $ nmake install SHELL=bash # インストール $ mkdir \usr\local\emacs\site-lisp # site-lisp ディレクトリを手動で作る
7. Emacs の設定
基本的に Meadow の設定と同じです。私の設定例を下記に示します。
;; 日本語環境の設定
(set-language-environment "Japanese")
;; IME の設定
(mw32-ime-initialize)
(setq default-input-method "MW32-IME")
;; IME インジケータの設定
(setq-default mw32-ime-mode-line-state-indicator "[--]")
(setq mw32-ime-mode-line-state-indicator-list '("[--]" "[あ]" "[--]"))
;; デフォルトの coding-system を Meadow と同じにしました。特に理由がない
;; 限り coding-system の設定は不要です。うまく機能していない場合には、
;; 次の設定をしておくといいでしょう。
;(set-default-coding-systems 'japanese-shift-jis-dos)
;(set-w32-system-coding-system 'japanese-shift-jis-dos)
;(set-clipboard-coding-system 'japanese-shift-jis-dos)
;(set-keyboard-coding-system 'japanese-shift-jis-dos)
;; `C-o' で IME をトグルするための設定
;; デフォルトで `M-\' または`漢字'キー(<kanji>)でもトグルできる
(global-set-key "\C-o" 'toggle-input-method)
;; y/n, yes/no の問い合わせ時に IME をオフにする
(wrap-function-to-control-ime 'y-or-n-p nil nil)
(wrap-function-to-control-ime 'yes-or-no-p nil nil)
;; スクリプトを emacs から実行するための設定
(require 'mw32script)
(mw32script-init)
;; フォント設定例(TrueType を使う場合)
;; 注)ascii や latin-jisx0201 に TrueType を使うと bitmap の行間に隙間が空く
;; 回避するには、BDF フォントを指定する
;; 詳しくは下記参照
;; http://www.egroups.co.jp/message/emacs21-users-ja/262
(setq scalable-fonts-allowed t)
(let ((jfont "-*-MS ゴシック-*-*-*-*-*-*-*-*-*-*-jisx0208-sjis")
(specs '(latin-jisx0201 katakana-jisx0201 japanese-jisx0208)))
(create-fontset-from-fontset-spec
(concat "-*-Courier New-*-*-*-*-14-*-*-*-*-*-fontset-std,"
(mapconcat (lambda (x) (format "%s:%s" x jfont)) specs ",")))
(while specs
(set-fontset-font "fontset-std" (make-char (car specs))
'("MS ゴシック" . "jisx0208-sjis"))
(setq specs (cdr specs))))
(setq default-frame-alist
(append '(
;; 設定した fontset-std を利用する。
(font . "fontset-std")
;; 日本語変換中のフォントの設定
;; TrueType フォントの動作しか確認していない
(ime-font . "-*-MS ゴシック-*-*-*-*-16-*-*-*-*-*-jisx0208-sjis"))
default-frame-alist))
8. 使ってみた感想
Windows の Emacs21 は、 メールの読み書き、日本語文書の作成、 ちょっとしたプログラムの作成などに使っている限りにおいて、 大きな問題もなく安定して使えています。 また、私が常用している elisp ライブラリは、すべて利用できています。
ただし、Emacs21 の特徴である、画像のインライン表示やツールバーが、 まだサポートされていないので、少々悲しいものがあります。 また、次にあげるような小さな問題があります。 うまく設定できていないだけだと思います。
- process-coding-system に undecied を指定した場合に、文字化けする。
- TrueType フォントを使って、日本語フォントを拡大表示できない。 無理に設定すると、右に90度回転してしまう (縦書き用フォントを利用してしまう)。上記の設定のように回避策が見つかりました。
- TrueType フォントと bitmap-mule の組み合わせで、 行間に隙間が空いてしまう。