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 です。