Meadow3.00-dev の設定

Meadow(メドゥ) http://www.meadowy.org/meadow/WindowsEmacsを日本語向けに修正したものです。Meadow 3.00-dev はEmacs22.1とほぼ同じで、IMEサポートとフォント設定が変更されています。開発者と使用者の多くが日本人なので、日本語使う上で情報を得やすいです。 現在は開発は停滞しているようですが、問題なく動作しています。


UTF-8


Emacs22が前バージョンから改良された点は、Unicodeサポートが一番大きいです。 しかしまだ中途半端なものです。開発中のEmacs23では、より完全なUnicodeサポートが入るようです。
私はとりあえず以下の設定で使っています。

;;; 文字コード/地域の設定
;;;
(set-language-environment "Japanese")
(prefer-coding-system 'cp932-dos)
(set-keyboard-coding-system 'cp932-dos)
(set-clipboard-coding-system 'cp932-dos)
;; U+0080 - U+2E7F の文字を CJKにデコード http://web.archive.org/web/20060620002245/nijino.homelinux.net/emacs/utf-cjk.html
(utf-translate-cjk-set-unicode-range
   '((#x00a2 . #x00a3) ; ¢, £
     (#x00a7 . #x00a8) ; §, ¨
     (#x00ac . #x00ac) ; ¬
     (#x00b0 . #x00b1) ; °, ±
     (#x00b4 . #x00b4) ; ´
     (#x00b6 . #x00b6) ; ¶
     (#x00d7 . #x00d7) ; ×
     (#X00f7 . #x00f7) ; ÷
     (#x0370 . #x03ff) ; Greek and Coptic
     (#x0400 . #x04FF) ; Cyrillic
     (#x2000 . #x206F) ; General Punctuation
     (#x2100 . #x214F) ; Letterlike Symbols
     (#x2190 . #x21FF) ; Arrows
     (#x2200 . #x22FF) ; Mathematical Operators
     (#x2300 . #x23FF) ; Miscellaneous Technical
     (#x2500 . #x257F) ; Box Drawing
     (#x25A0 . #x25FF) ; Geometric Shapes
     (#x2600 . #x26FF) ; Miscellaneous Symbols
     (#x2e80 . #xd7a3)
     (#xff00 . #xffef)
))
;; IMEの設定
(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 '("[--]" "[あ]" "[--]"))
;; IMEのモードごとにカーソル色を変える
(add-hook 'mw32-ime-on-hook
          (function
           (lambda () (set-cursor-height 2) (set-cursor-color "green"))
           ))
(add-hook 'mw32-ime-off-hook
          (function
           (lambda () (set-cursor-height 4) (set-cursor-color "yellow"))
           ))

これでほとんど問題ないのですが、Unicodeで ~ が化ける問題があります。MeadowUTF-8で保存すると U+301C で保存されます。MacLinuxUnicode規格上はこれで正しいのですが、Windowsの場合 U+FF5E で保存しないとうまく表示されません。


どううまく表示されないかというと、Meadowで入力した ~ をUTF-8で保存すると、InternetExplororやメモ帳では波の向きが逆になったちょっと不自然なフォントで表示されます。Windowsのメモ帳(notepad)で入力して保存したUTF-8文書を Meadowで開くと 豆腐文字で表示されます。


この問題は以下のサイトで論じられています。


まとめると、一時期Unicode規格書がまちがっていて、Windowsはその規格書を元に Unicode変換表やフォントを作ってしまったので、 Unicode規格書が修正されても Windows側では直さないことにしたというお話のようです。


どうすればいいんでしょうね……このままでは WindowsUTF-8と そのほかのUTF-8が違うものになってしまいます。 「そのほかのUTF-8」のほうが規格上は正しいんだけど、現在 大多数の人が使っているのは Windows……。


私は一時期 Windowsに合わせようとして、Meadow使うのをやめて xyzzyを使ってみたり、Meadowlisp/international/subst-jis.el を書き換えたりしましたが、 どうもわざわざ規格を外れるのもおかしいな、と思うようになりました。


あと、UTF-8(BOMあり) と UTF-8N(BOMなし) の区別も Meadow3ではできません。 google: BOM Unicode BOM があるときは、ファイル先頭に豆腐文字として表示されます。BOMつきUTF-8を扱えるxyzzyに比べて情けない……と以前は思っていましたが、BOMのあるなしが一目瞭然なので逆にコーディングするときは便利かも……、と思った。


フォント設定


MeadowNTEmacsと比べて勝っているのは、このフォントの設定。


NTEmacs22.xはフォント名に「-」が入っているとそのフォントが使えないなど、 フォント設定がかなりダメ。 それに比べて Meadowはフォントに関してかなり自由。


わたしが最近ハマっているのは、プロポーショナルフォントを使うこと。xyzzyプロポーショナルフォントを使えないので、しばらく使っていた xyzzyから Meadowに戻ってきました。コーディングもこの設定でやっていますよ! ソースコードっていっても、行頭のインデントだけわかれば、あとは等幅である必要はないんだよね。 「_」が連続したときとかは困るかもしれないけど、今のところ私には関係ないです。


矩形編集とかメール書きなどで どうしても等幅にしたいときだけ、[Shift + 右クリック] で等幅フォントに一時的に変えています。


コーディングに使うフォントは、アンチエイリアスのかかっていない、 くっきりしたビットマップがいいなあと最近は思っています。
フォントとして “BDF M+” http://www.kaoriya.net/#FONTDATA を使っています。

;; フォント設定
(w32-add-font
"Verdana12"
'((spec
   ((:char-spec ascii :height any)
    strict
    (w32-logfont "Verdana" 0 -12 400 0 nil nil nil 1 1 3 1))
   ((:char-spec ascii :height any :weight bold)
    strict
    (w32-logfont "Verdana" 0 -12 400 0 nil nil nil 1 1 3 1))
   ((:char-spec ascii :height any :slant italic)
    strict
    (w32-logfont "Verdana" 0 -12 400 0 nil nil nil 1 1 3 1))
   ((:char-spec ascii :height any :weight bold :slant italic)
    strict
    (w32-logfont "Verdana" 0 -12 400 0 nil nil nil 1 1 3 1))
   ((:char-spec japanese-jisx0208 :height any)
    strict
    (w32-logfont "BDF M+" 0 -12 400 0 nil nil nil 128 1 3 1))
   ((:char-spec japanese-jisx0208 :height any :weight bold)
    strict
    (w32-logfont "BDF M+" 0 -12 400 0 nil nil nil 128 1 3 1))
   ((:char-spec japanese-jisx0208 :height any :slant italic)
    strict
    (w32-logfont "BDF M+" 0 -12 400 0 nil nil nil 128 1 3 1))
   ((:char-spec japanese-jisx0208 :height any :weight bold :slant italic)
    strict
    (w32-logfont "BDF M+" 0 -12 400 0 nil nil nil 128 1 3 1)
    ((spacing . -1)))
)))
;;; フレームの設定
(setq default-frame-alist
      (append (list
               ;; サイズ・位置
               '(width . 160)  ; 横幅(文字数)
               '(height . 67) ; 高さ(行数)
               '(top . 0)    ; フレーム左上角 y 座標
               '(left . 0)   ; フレーム左上角 x 座標
               '(font . "Verdana12")
               '(ime-font . (w32-logfont "BDF M+" 0 -12 400 0 nil nil nil 128 1 3 1))
               )
              default-frame-alist))

Mew 5.1


Mew5.1では、Emacs立ち上げたあと最初の1回はメール取得のためのパスワードを要求されてイヤです。 ThunderbirdOutlookではこんなパスワードは入力せずにメールを扱えるのに……。 そこで、パスワード入力回避ハックです。


~/.emacs にパスワード文字列を設定します。

(setq my-mew-password "Pa55w0rd")


NetInsall で Mew-5.1 をインストールしたあと、 C:\usr\meadow\packages\lisp\mew にある、mew-pop.elc を削除します。 mew-pop.el を以下のように修正します。これで終わりです。

@@ -589,17 +589,18 @@
     (concat user "@" server ":" port)))

 (defun mew-pop-input-passwd (prompt pnm)
-  (let ((directive (mew-pop-get-directive pnm))
-       (pro (mew-pop-get-process pnm))
-       (tag (mew-pop-passtag pnm))
-       pass)
-    (if (eq directive 'biff)
-       (or (mew-pop-get-passwd pnm)       ;; mew-pop-biff
-           (mew-input-passwd prompt tag)) ;; mew-pop-check
-      (setq pass (mew-input-passwd prompt tag))
-      (unless (and (processp pro) (eq (process-status pro) 'open))
-       (mew-passwd-set-passwd tag nil))
-      pass)))
+  my-mew-password)

 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;;


次は、テンプレート挿入。


仕事のメールだと、どのメールでも同じ書き出し・署名を使うので、 Mewで以下の設定をしておけば、メールを引用するとき、自動的に以下のメッセージが入ります。 メール新規作成のときにメッセージ入れる方法はわかりませんでした。

(setq mew-cite-fields '("From:" "Subject:" "Date:"))
(setq mew-cite-format "もんもん部 itouhiroです。\n\n\n\n以上\nよろしくお願いします。\n-- \nitouhiro@もんもん部\n\n\n\nFrom: %s\nSubject: %s\nDate: %s\n\n")


Mewはメールを「書く」にはとても便利です。To: とかテキストエディタなので好きに書き換えられるし。 ファイル添付もドラッグ&ドロップで できるようになってますね。


でも到着したメールをただ読むならそれなりにこなせますが、メールを分類するのは絶望的です。 Thunderbirdで2秒で終わることを、30分かかっても終わりません。 仕事場では Thunderbird と使い分けてます。