Emacs の Windows版って言われても、そもそも Emacs ってなに?という人もいるでしょう。
簡単に言えば「エディタ」ですが、単なる「エディタ」にとどまらず、メールを読んだり、ファイル操作をしたりと、その奥行きの深さを知ると、まず抜けきれません。
だったら、Unix にすれば、と言われちゃいそうですが、会社じゃ何とかの一つ覚えで Exe* や Wor*が幅を効かせているので、使わない訳にもいきません。
てなことで、Windows を捨てきれない私は Meadow に感謝・感謝なのです。
Emacs は Ctrl キーを多用するので、日本語 106(109) キーボードを 使っている人は、Caps と Ctrl キーを入れ換えないと不便でしょう。
Windows 95, 98, Me 上でキーを入れ換えるためには、 The Windows 95 Kernel PowerToys の Windows 95 Keyboard Remap を インストールします。
まず、w95krnltoys.exe を実行してできる KEYREMAP.INF をエクスプローラーの右クリックで「インストール」します。
すると、「コントロールパネル」の 「キーボード」で、「Remap」 ができるので、そこで Caps と Ctrl キー を入れ換えることができます。
Windows NT, 2000, XP の場合は
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout
に Scancode Map を作成します。 これを実行すると、レジストリに書き込まれます。
C:\ にある autoexec.bat を設定します。(MS-DOS以来久しぶり (゚o゚))
reboot しないと設定は反映されません。 WindowsNT 系では autoexec.bat で設定する代わりに「マイコンピュータ」->「プロパティ」 ->「詳細」タブ内にある環境変数内で設定します。
SET PATH=C:\MEADOW\1.13b1\bin;\%PATH% ---パスの追加 SET HOME=C:\home ---ホームディレクトリ SET TMP=C:\tmp ---テンポラリディレクトリ SET TZ=JST-9 ---タイムゾーンタイムゾーン以外は自分の環境に合わせてください。
(set-language-environment "Japanese") (mw32-ime-initialize) (setq default-input-method "MW32-IME")
http://www.NetLaputa.ne.jp/~kose/Emacs/
小関さんのページ
http://www.boreas.dti.ne.jp/~miyoshi/Meadow/
三好さんのページ
http://www.ymzk.org/~yama/
山尾さんのページ
を参考にしました。
英字フォントを Windows の TrueType Courier にすると、画面に汚いゴミが残るので、注意してください。
私は BDF フォントがお気に入りなのですが、Windows 特有のローマ数字や○の中に数字の入ったような機種依存文字を読む場合は、フォントを Windowsのものに切り替えましょう。最近、教えてもらうまで、気付きませんでした。
もらってきた BDF フォントを全部 c:\usr\local\font\bdf にコピーして、下記を ~/.emacs に記述します。
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; フォント設定用の補助関数
(defun my-define-font (prefix font-param logfont-charset-list)
(let (charset-font-list logfont-list charset-alist)
(while logfont-charset-list
(setq logfont-list (nth 0 (car logfont-charset-list)))
(setq charset-alist (nth 1 (car logfont-charset-list)))
(while charset-alist
(let* ((charset (caar charset-alist))
(encoding (cdar charset-alist))
(font-name (concat prefix (symbol-name charset))))
(create-font-from-logfont-list font-name
logfont-list encoding font-param)
(setq charset-font-list
(cons (cons charset font-name) charset-font-list)))
(setq charset-alist (cdr charset-alist)))
(setq logfont-charset-list (cdr logfont-charset-list)))
charset-font-list))
;;; bdf フォントのパス
(let ((bdf-dir "c:/usr/local/font/bdf/")
charset-font-list logfont-charset-list font-param)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; TrueType16 フォントの設定
(setq font-param
'((overhang . 0)
(base . 14)
(height . 16)
(width . 8)))
;; 論理フォントと、対応する文字集合のリスト
(setq logfont-charset-list
`((((bdf-font ,(concat bdf-dir "lt1-16-etl.bdf"))
(bdf-font ,(concat bdf-dir "lt1-16b-etl.bdf"))
(bdf-font ,(concat bdf-dir "lt1-16i-etl.bdf"))
(bdf-font ,(concat bdf-dir "lt1-16bi-etl.bdf")))
;; 文字集合と、フォントのコーディング方法の連想リスト
((ascii . 0)
(latin-iso8859-1 . 1)))
;; 日本語フォント
(((w32-logfont "MSゴシック" 0 -16 400 0 nil nil nil 128 1 3 49)
(w32-logfont "MSゴシック" 0 -16 700 0 nil nil nil 128 1 3 49)
(w32-logfont "MSゴシック" 0 -16 400 0 t nil nil 128 1 3 49)
(w32-logfont "MSゴシック" 0 -16 700 0 t nil nil 128 1 3 49))
((latin-jisx0201 . 0)
(katakana-jisx0201 . 4)
(japanese-jisx0208 . 4)))))
;; フォントの作成(結果は文字集合と、作成したフォントの連想リスト)
(setq charset-font-list
(my-define-font "w16-" font-param logfont-charset-list))
;; ビットマップフォントの作成(x-face, Gnus 用)
(let ((font-file (expand-file-name "bmp16-etl.bdf" bdf-dir)))
(when (and (locate-library "bitmap") (file-exists-p font-file))
(require 'bitmap)
(setq logfont-charset-list
`((((bdf-font ,font-file))
((bitmap . 0)))))
(setq charset-font-list
(append (my-define-font "bdf16-" font-param logfont-charset-list)
charset-font-list))))
;; フォントセットの作成
(new-fontset "w16-fontset" charset-font-list)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; 山尾さんの設定
(setq font-param
'((overhang . 0)
(base . 14)
(height . 17)
(width . 8)))
;; 英字フォントと、対応する文字集合のリスト
(setq logfont-charset-list
`((((bdf-font ,(concat bdf-dir "lt1-16-etl.bdf"))
(bdf-font ,(concat bdf-dir "lt1-16b-etl.bdf"))
(bdf-font ,(concat bdf-dir "lt1-16i-etl.bdf"))
(bdf-font ,(concat bdf-dir "lt1-16bi-etl.bdf")))
;; 文字集合と、フォントのコーディング方法の連想リスト
((ascii . 0)
(latin-jisx0201 . 0)))
;; 日本語フォントと、対応する文字集合のリスト
(((w32-logfont "MSP ゴシック" 0 -14 400 0 nil nil nil 128 1 3 49)
(w32-logfont "MSP ゴシック" 0 -14 700 0 nil nil nil 128 1 3 49)
(w32-logfont "MSP 明朝" 0 -14 400 0 nil nil nil 128 1 3 17)
(w32-logfont "MSP 明朝" 0 -14 700 0 nil nil nil 128 1 3 17))
;; 文字集合と、フォントのコーディング方法の連想リスト
((latin-iso8859-1 . 1)
(katakana-jisx0201 . 4)
(japanese-jisx0208 . 4)))))
;; フォントの作成(結果は文字集合と、作成したフォントの連想リスト)
(setq charset-font-list
(my-define-font "yamao-" font-param logfont-charset-list))
;; ビットマップフォントの作成(x-face, Gnus 用)
(let ((font "bdf16-bitmap"))
(if (member font (w32-font-list))
(setq charset-font-list
(cons (cons 'bitmap font) charset-font-list))))
;; fontset の作成
(new-fontset "yamao-fontset" charset-font-list)
;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; BDF フォントの設定
(setq font-param
'((overhang . 0)
(base . 14)
(height . 16)
(width . 8)))
(setq logfont-charset-list
`((((bdf-font ,(concat bdf-dir "lt1-16-etl.bdf"))
(bdf-font ,(concat bdf-dir "lt1-16b-etl.bdf"))
(bdf-font ,(concat bdf-dir "lt1-16i-etl.bdf"))
(bdf-font ,(concat bdf-dir "lt1-16bi-etl.bdf")))
((ascii . 0)
(latin-iso8859-1 . 1)))
(((bdf-font ,(concat bdf-dir "8x16rk.bdf")))
((latin-jisx0201 . 0)
(katakana-jisx0201 . 1)))
(((bdf-font ,(concat bdf-dir "jiskan16.bdf")))
((japanese-jisx0208 . 0)))))
;; フォントの作成(結果は文字集合と、作成したフォントの連想リスト)
(setq charset-font-list
(my-define-font "bdf16-" font-param logfont-charset-list))
;; ビットマップフォントの作成(x-face, Gnus 用)
(let ((font "bdf16-bitmap"))
(if (member font (w32-font-list))
(setq charset-font-list
(cons (cons 'bitmap font) charset-font-list))))
;; fontset の作成
(new-fontset "bdf-fontset" charset-font-list)
;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; BDF Line-Space フォントの設定
(setq font-param
'((overhang . 0)
(base . 14)
(height . 16)
(width . 8)))
(setq logfont-charset-list
`((((bdf-font ,(concat bdf-dir "lt1-16-etl.bdf"))
(bdf-font ,(concat bdf-dir "lt1-16b-etl.bdf"))
(bdf-font ,(concat bdf-dir "lt1-16i-etl.bdf"))
(bdf-font ,(concat bdf-dir "lt1-16bi-etl.bdf")))
((ascii . 0)
(latin-iso8859-1 . 1)))
(((bdf-font ,(concat bdf-dir "8x16rk.bdf")))
((latin-jisx0201 . 0)
(katakana-jisx0201 . 1)))
(((bdf-font ,(concat bdf-dir "jiskan16.bdf")))
((japanese-jisx0208 . 0)))))
;; フォントの作成(結果は文字集合と、作成したフォントの連想リスト)
(setq charset-font-list
(my-define-font "bdf16-linespace-" font-param logfont-charset-list))
;; ビットマップフォントの作成(x-face, Gnus 用)
(let ((font "bdf16-bitmap"))
(if (member font (w32-font-list))
(setq charset-font-list
(cons (cons 'bitmap font) charset-font-list))))
;; fontset の作成
(new-fontset "bdf-linespace" charset-font-list))
;;; フレームの設定
(setq default-frame-alist
(append
'((foreground-color . "snow") ; 前景色
(background-color . "black") ; 背景色
(cursor-color . "red") ; カーソル色
(width . 80) ; フレーム幅(文字数)
(height . 30) ; フレーム高(文字数)
(top . 30) ; フレームの Y 位置(ピクセル数)
(left . 250) ; フレームの X 位置(ピクセル数)
(cursor-type . box) ; カーソルタイプ 1.13b2-test, 1.14 用
; box bar caret から選ぶ
; SKK を使う場合、box でないと
; カーソルの色が変わらない。
(ime-font . "w16-japanese-jisx0208") ; IME 用のフォント
;; (vertical-scroll-bars . nil) ;スクロールバーを表示しない
(font . "bdf-fontset"));デフォルトのフォントセット
default-frame-alist))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; change line-space
(let* ((fontset "bdf-linespace")
(info (fontset-info fontset))
(font (nth 1 (assq 'ascii (aref info 2))))
(alis (w32-get-font-info font))
(old-height (aref info 1)))
(setcdr (assq 'height alis) 18) ; 行間を広げる height + 広げる dot 数
; 16 + 2 => 18
(w32-change-font-attribute font alis)
(set-fontset-font fontset 'ascii font))
フォントの切り替えは、シフトを押しながら、左マウスで、Fontset というメニューが出るので、それを選択します。
上記では、行間を 2dots 広げた fontset を bdf-linespace としています。
[meadow-users-jp: 3352]
と [meadow-users-jp: 3524] を参考にしています。
矢木さんと小関さんに感謝感謝。
別の方法として、8x16.bdf をいじるものもあります。
まず、小関さんのページから、intlfonts.el
をもらってきます。
これには、marumoji.font など、16dot.tar.gz
にはないフォントの設定がありますので、適宜、削除します。
小関さんは、上記の bdf-linespace
の方法に変えているそうですが、intlfonts.el 自体は、多言語フォントを表示するのに有用なので、もらっておいた方がいいでしょう。
そこで、8x16.bdf の 44行目あたりの
FONT_DESCENT 2 FONT_ASCENT 14を
FONT_DESCENT 3 FONT_ASCENT 15に変えた 8x18.bdf を作れば出来上がりです。
Ctrl-x (コントロールキーを押しながら x キーを押す) RET f iso-2022-jp として指定するか、.emacs
の1行目に
;;; -*- coding: iso-2022-jp -*-
として、JISで保存しないと、モードライン行の [あ] が化けます。
IME は Ctrl-\ で切り替えます。
;;; -*- coding: iso-2022-jp -*-
(mw32-ime-initialize)
(setq default-input-method "MW32-IME")
(add-hook 'mw32-ime-on-hook
(lambda () (set-cursor-color "blue1")))
(add-hook 'mw32-ime-off-hook
(lambda () (set-cursor-color "red")))
(setq mw32-ime-mode-line-state-indicator "[--]")
(setq mw32-ime-mode-line-state-indicator-list '("--" "[あ]" "[--]"))
設定例
(setq load-path
(append '("c:/usr/local/share/emacs/site-lisp/dir1"
"c:/usr/local/share/emacs/site-lisp/dir2"
)
load-path))
Meadow-1.14 のリリースに伴い、小関さんのページから Meaow-1.13b1++ は消えています。
インストールは、Meadow-1.13b1 の 1.1.2 インストール と同じです。
Emacs21 をベースにした Meadow2 の Beta version です。
画像の Inline 表示が可能です。
Emacs21 をベースにした Meadow2 の Beta version です。
画像の Inline 表示が可能です。
Emacs21.3 をベースにした Meadow2 です。