オリジナルは, 三好さん の IME-Patch です.Meadow2で修正されているbugも若干取り入れています. また,拙作のマウスカーソルパッチも本家にマージされています.
Buildの方法は,広松さん, 三好さんのページを参考にして下さい.
;;; -*- Mode: Emacs-Lisp ; coding: iso-2022-jp-unix -*-;;;
;;; Language
(set-language-environment "Japanese")
;;; IME
(when (fboundp 'mw32-ime-initialize)
(setq default-input-method "MW32-IME")
(setq-default mw32-ime-mode-line-state-indicator "[--]")
(setq mw32-ime-mode-line-state-indicator-list '("[--]" "[あ]" "[--]"))
(mw32-ime-initialize)
(wrap-function-to-control-ime 'y-or-n-p nil nil)
(wrap-function-to-control-ime 'yes-or-no-p nil nil)
(wrap-function-to-control-ime 'universal-argument t nil)
(wrap-function-to-control-ime 'read-string nil nil)
(wrap-function-to-control-ime 'read-from-minibuffer nil nil)
(wrap-function-to-control-ime 'read-key-sequence nil nil)
(wrap-function-to-control-ime 'map-y-or-n-p nil nil)
(wrap-function-to-control-ime 'read-passwd t t) ; don't work as we expect.
(add-hook 'mw32-ime-on-hook
(function (lambda () (set-cursor-color "blue"))))
(add-hook 'mw32-ime-off-hook
(function (lambda () (set-cursor-color "black"))))
(add-hook 'minibuffer-setup-hook
(function (lambda ()
(if (fep-get-mode)
(set-cursor-color "blue")
(set-cursor-color "black"))))))
;;; TrueType-font
(setq w32-use-w32-font-dialog nil)
(setq scalable-fonts-allowed t)
(setq w32-enable-synthesized-fonts t)
(create-fontset-from-fontset-spec
"-*-Courier New-normal-r-*-*-12-*-*-*-c-*-fontset-TTG12c,
japanese-jisx0208:-*-MS ゴシック-*-*-*-*-*-*-*-*-*-*-jisx0208-sjis,
latin-jisx0201:-*-MS ゴシック-*-*-*-*-*-*-*-*-*-*-jisx0208-sjis,
katakana-jisx0201:-*-MS ゴシック-*-*-*-*-*-*-*-*-*-*-jisx0208-sjis,
mule-unicode-e000-ffff:-*-MS ゴシック-*-*-*-*-*-*-*-*-*-*-iso10646-1" t)
;;; Frame parameters
(setq default-frame-alist
(append '((foreground-color . "black")
(background-color . "white")
(mouse-color . "white")
(cursor-color . "black")
(scroll-bar-width . 14)
(width . 90)
(height . 45)
(left . 350)
(ime-font . "-*-MS ゴシック-*-*-*-*-12-*-*-*-*-*-jisx0208-sjis")
(font . "fontset-TTG12c")
(vertical-scroll-bars . right)
(line-spacing . 0)
(cursor-type . box))
default-frame-alist))
(setq initial-frame-alist default-frame-alist)
;;; Change the current frame size.
(setq w32-frame-maximum nil)
(defun w32-maximize-frame ()
"Maximize the current frame"
(w32-send-sys-command 61488)
(setq w32-frame-maximum t))
(defun w32-restore-frame ()
"Restore the current frame"
(w32-send-sys-command 61728)
(setq w32-frame-maximum nil))
(defun toggle-frame-size ()
"Toggle frame size."
(interactive)
(if w32-frame-maximum
(w32-restore-frame)
(w32-maximize-frame)))
;; (iconify-or-deiconify-frame)はC-zとC-S-zが
;; 重複してるので勝手に割り当て
(global-set-key [?\C-\S-z] 'toggle-frame-size)
;;; フォント名の'-'を'_'に置換して指定する ;;; 例:HG正楷書体-PRO (create-fontset-from-fontset-spec "-*-Courier New-normal-r-*-*-12-*-*-*-c-*-fontset-test, japanese-jisx0208:-*-HG正楷書体_PRO-*-*-*-*-*-*-*-*-*-*-jisx0208-sjis" t))
インストール先をc:/usr/emacs/currentとした場合 /src/emacs/nt$ ./configure.bat --with-gcc --no-cygwin --prefix \ > c:/usr/emacs/current --cflags -DIME_CONTROL --cflags -DRECONVERSION \ > --cflags -DCLIENTEDGE --cflags -I/usr/local/include /src/emacs/nt$ make bootstrap SHELL=bash /src/emacs/nt$ make install
(when (fboundp 'mw32-ime-initialize)
(mw32-ime-initialize)
(setq default-input-method "MW32-IME")
(setq-default mw32-ime-mode-line-state-indicator "[--]")
(setq mw32-ime-mode-line-state-indicator-list '("[--]" "[あ]" "[--]"))
(wrap-function-to-control-ime 'y-or-n-p nil nil)
(wrap-function-to-control-ime 'yes-or-no-p nil nil)
(wrap-function-to-control-ime 'universal-argument t nil)
(wrap-function-to-control-ime 'read-string nil nil)
(wrap-function-to-control-ime 'read-from-minibuffer nil nil)
(wrap-function-to-control-ime 'read-key-sequence nil nil)
(wrap-function-to-control-ime 'map-y-or-n-p nil nil)
(wrap-function-to-control-ime 'read-passwd t t) ; don't work as we expect.
(add-hook 'mw32-ime-on-hook
(function (lambda () (set-cursor-color "blue"))))
(add-hook 'mw32-ime-off-hook
(function (lambda () (set-cursor-color "black"))))
(add-hook 'minibuffer-setup-hook
(function (lambda ()
(and (setq minibuffer-ime-status-store (fep-get-mode))
(fep-force-off t)))))
(add-hook 'minibuffer-exit-hook
(function (lambda ()
(and minibuffer-ime-status-store
(fep-force-on t))))))
と設定しました.
$ make bootstrap-clean SHELL=bash $ ./configure.bat --with-gcc --no-cygwin --prefix /usr/emacs/ime \ > --cflags -DUSE_W32_IMM --cflags -DRECONVERSION \ > --cflags -I/usr/local/include --cflags -D_UNICODE $ make bootstrap SHELL=bash
(or (featurep 'w32-ime)
(require 'mw32-alias))
などとして下さい.
(keyboard-translate ?\177 ?\^h) (keyboard-translate ?\^h ?\177)