エディタとしての機能の他に, MUA としても利用しています. 私が利用しているパッケージに, 次のようなものがあります.
Emacs 関連のファイルは, 次のような構成になります.
ここで, .folders, .addresses, MAIL 以下, .elmo 以下のファイルは, Wanderlust によって自動的に 作成されるものなので, ここでは残りのものについて書いていきます.
なお, .emacs-env 以下のファイルは,
私がファイル分割をする際に, 整頓のために作ったものなので,
.emacs を読み出すときに, LISP の load コマンドで
一緒に読むようにしています.
詳しくは, Meadow に付属しているドキュメント等をを読みましょう.
なお, Emacs の設定ファイルは,
8bit clean な環境を想定していないので,
日本語で書く場合には,
iso-2022-jp コード (いわゆる JIS コード)
で記述する必要があります.
まずは, 設定ファイルの本体である, .emacs から. 中身の大部分は, Meadow パッケージの中にある, dot.emacs.ja の写しです. Cygwin から呼び出すことを前提に書いていますが, 直接 EXE ファイルを実行しても大丈夫なはずです.
;;;; -*- mode: lisp-interaction; syntax: elisp; coding: iso-2022-7bit -*-
;;;;
;;;; Copyright (C) 2001 The Meadow Team
;; Author: Koichiro Ohba <koichiro@meadowy.org>
;; Kyotaro HORIGUCHI <horiguti@meadowy.org>
;; Hideyuki SHIRAI <shirai@meadowy.org>
;; KOSEKI Yoshinori <kose@meadowy.org>
;; and The Meadow Team.
;;; Mule-UCS の設定
;; ftp://ftp.m17n.org/pub/mule/Mule-UCS/
;; (set-language-environment) の前に設定します
(require 'un-define)
;(require 'jisx0213)
(setq bitmap-alterable-charset 'tibetan-1-column)
(require 'bitmap)
;;; 日本語環境設定
(set-language-environment "Japanese")
;;; 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 '("[--]" "[あ]" "[--]"))
(add-hook 'mw32-ime-on-hook
(function (lambda () (set-cursor-height 2))))
(add-hook 'mw32-ime-off-hook
(function (lambda () (set-cursor-height 4))))
;; インクリメンタルサーチに非ASCII文字を使う
(define-key isearch-mode-map "\C-k" 'isearch-edit-string)
;; ;;; カーソルの設定
;; ;; (set-cursor-type 'box) ; Meadow-1.10互換 (SKK等で色が変る設定)
;; ;; (set-cursor-type 'hairline-caret) ; 縦棒キャレット
;;; マウスカーソルを消す設定
(setq w32-hide-mouse-on-key nil)
(setq w32-hide-mouse-timeout 5000)
;; フォントの設定
(load "~/.emacs-env/.font")
;; ;; X-Face のインライン表示
;; (cond
;; ((locate-library "x-face-mule") ; ライブラリの有無をチェック
;; (require 'x-face-mule)
;; ;; 問い合わせなしでキャッシュファイルをセーブする
;; (setq x-face-mule-force-save-cache-file t)))
;;
;; ;; bold, italic, bold itaric を追加。
;; ;; Bold
;; (w32-change-font-logfont "bdffont16-ascii" 1
;; (list 'bdf-font (expand-file-name "European/lt1-16b-etl.bdf" bdf-font-directory )))
;; ;; italic
;; (w32-change-font-logfont "bdffont16-ascii" 2
;; (list 'bdf-font (expand-file-name "European/lt1-16i-etl.bdf" bdf-font-directory )))
;; ;; Bold itaric
;; (w32-change-font-logfont "bdffont16-ascii" 3
;; (list 'bdf-font (expand-file-name "European/lt1-16bi-etl.bdf" bdf-font-directory )))
;;
;; 行末の改行コード<CR>を^Mと表示するのを防ぐ
(add-hook 'comint-output-filter-functions 'shell-strip-ctrl-m nil t)
;; 初期フレームの設定
(setq default-frame-alist
(append (list '(foreground-color . "black") ; black
'(background-color . "antique white") ; LemonChiffon
;; '(background-color . "gray") ; gray
'(border-color . "white") ; black
'(mouse-color . "cyan") ; white
'(cursor-color . "dark gray") ; black
;; '(ime-font . "Nihongo-12") ; TrueType のみ
;; '(font . "bdf-fontset") ; BDF
;; '(font . "private-fontset"); TrueType
'(width . 80)
'(height . 40)
'(top . 50)
'(left . 100))
default-frame-alist))
;; ビープ音の設定
(set-message-beep 'ok)
;(setq visible-bell nil)
;; 行の表示など
(line-number-mode 1)
(column-number-mode 1)
;; ファイルバックアップの設定
(setq make-backup-files nil)
;; ;;; shell の設定
;;; Cygwin の bash を使う場合
(setq explicit-shell-file-name "bash.exe")
(setq shell-file-name "sh.exe")
(setq shell-command-switch "-c")
;; ;;; Virtually UN*X!にある tcsh.exe を使う場合
;; (setq explicit-shell-file-name "tcsh.exe")
;; (setq shell-file-name "tcsh.exe")
;; (setq shell-command-switch "-c")
;; ;;; WindowsNT に付属の CMD.EXE を使う場合。
;; (setq explicit-shell-file-name "CMD.EXE")
;; (setq shell-file-name "CMD.EXE")
;; (setq shell-command-switch "\\/c")
;; ;;; coding-system の設定
;; (modify-coding-system-alist 'process ".*sh\\.exe" 'undecided-dos)
;;; argument-editing の設定
(require 'mw32script)
(mw32script-init)
;; ;;; browse-url の設定
(setq browse-url-browser-function 'browse-url-msie)
(setq browse-url-msie-program "iexplore")
(defun browse-url-msie (url)
(interactive (browse-url-interactive-arg "URL: "))
(if browse-url-msie-program
(let ((w32-start-process-show-window t))
(start-process (concat browse-url-msie-program url)
nil browse-url-msie-program url))))
;; (require 'browse-url)
;; (global-set-key [S-mouse-2] 'browse-url-at-mouse)
;;; Wanderlust の設定
(require 'mime-setup)
(autoload 'wl "wl" "Wanderlust" t)
(autoload 'wl-draft "wl-draft" "Write draft with Wanderlust." t)
;;; メールのドラフトを Wanderlust のものにする
;(autoload 'wl-user-agent-compose "wl-draft" nil t)
;(if (boundp 'mail-user-agent)
; (setq mail-user-agent 'wl-user-agent))
;(if (fboundp 'define-mail-user-agent)
; (define-mail-user-agent
; 'wl-user-agent
; 'wl-user-agent-compose
; 'wl-draft-send
; 'wl-draft-kill
; 'mail-send-hook))
;;; ここまで
;;; elisp-w3m の設定
(load "~/.emacs-env/.w3m")
;;; yatex の設定
(load "~/.emacs-env/.yatex")
;;; CSS-mode
(autoload 'css-mode "css-mode")
(setq auto-mode-alist
(cons '("\\.css$" . css-mode) auto-mode-alist))
;;; po-mode
(autoload 'po-mode "po-mode")
(setq auto-mode-alist (cons '("\\.po[tx]?\\'\\|\\.po\\." . po-mode)
auto-mode-alist))
;;; cc-mode
;;;
;;; end of file
;;;
次に, フォントの設定ファイル .emacs-env/.font です.
;;; -*- mode:lisp -*-
;;; font-lockの設定
(if window-system
(progn
(setq font-lock-support-mode 'lazy-lock-mode)
(global-font-lock-mode t)))
;;; TrueType フォント設定
(create-fontset-from-request "private-fontset"
'((width . 8)
(height . 16)
(fixed . t)
(italic . nil))
'((family . "MS ゴシック")
(family . "Courier New")))
;; (change-fontset-from-request "private-fontset"
;; '((width . 8)
;; (height . 16)
;; (fixed . t)
;; (weight . 700)
;; (italic . nil))
;; '((family . "MS ゴシック")
;; (family . "Courier New"))
;; 1)
;;; BDF フォント設定
;; intlfonts-1.2.tar.gz が必要です
;; http://www.ring.gr.jp/archives/GNU/intlfonts/intlfonts-1.2.tar.gz
;; http://ring.asahi-net.or.jp/archives/GNU/intlfonts/intlfonts-1.2.tar.gz
;; ftp://ftp.m17n.org/pub/mule/intlfonts-1.2.tar.gz
;; ftp://ftp.gnu.org/pub/gnu/intlfonts/intlfonts-1.2.tar.gz
;; などから入手してください
;; c:/MEADOW/intlfonts-1.2 と展開した場合の設定例となっています。
(defvar bdf-font-directory "f:/MEADOW/fonts/intlfonts")
(defvar bdf-font-name-prefix "bdffont16-")
(defvar bdf-font-file-alist
'((ascii "European/lt1-16-etl.bdf" 0)
(latin-iso8859-1 "European/lt1-16-etl.bdf" 1) ; ISO8859-1
(latin-iso8859-2 "European/lt2-16-etl.bdf" 1) ; ISO8859-2
(latin-iso8859-3 "European/lt3-16-etl.bdf" 1) ; ISO8859-3
(latin-iso8859-4 "European/lt4-16-etl.bdf" 1) ; ISO8859-4
(cyrillic-iso8859-5 "European/cyr16-etl.bdf" 1) ; ISO8859-5
(arabic-iso8859-6 "Misc/arab16-0-etl.bdf" 0) ; ISO8859-6 ???
(greek-iso8859-7 "European/grk16-etl.bdf" 1) ; ISO8859-7
(hebrew-iso8859-8 "Misc/heb16-etl.bdf" 1) ; ISO8859-8
(latin-iso8859-9 "European/lt5-16-etl.bdf" 1) ; ISO8859-9
(thai-tis620 "Asian/thai16.bdf" 1) ; TIS620
(katakana-jisx0201 "japanese.X/8x16rk.bdf" 1) ; JISX0201
(latin-jisx0201 "japanese.X/8x16rk.bdf" 0) ; JISX0201
(japanese-jisx0212 "japanese/jksp16.bdf" 0) ; JISX0212
(japanese-jisx0208-1978 "japanese/j78-16.bdf" 0); JISX0208.1978
(japanese-jisx0208 "japanese.X/jiskan16.bdf" 0) ; JISX0208.1983
(japanese-jisx0213-1 "Japanese.X/jiskan16-2000-1.bdf" 0) ; JISX0213-2000(Plane 1) * Mule-UCS が必要です
(japanese-jisx0213-2 "Japanese.X/jiskan16-2000-2.bdf" 0) ; JISX0213-2000(Plane 2) * Mule-UCS が必要です
(korean-ksc5601 "Korean.X/hanglm16.bdf" 0) ; KSC5601 mincho
;; (korean-ksc5601 "Korean.X/hanglg16.bdf" 0) ; KSC5601 gothic
(chinese-gb2312 "Chinese.X/gb16fs.bdf" 0 ) ; GB2312 ???
(chinese-cns11643-1 "Chinese/cns1-16.bdf" 0) ; CNS11643.1992-1
(chinese-cns11643-2 "Chinese/cns2-16.bdf" 0) ; CNS11643.1992-2
(chinese-cns11643-3 "Chinese/cns3-16.bdf" 0) ; CNS11643.1992-3
(chinese-cns11643-4 "Chinese/cns4-16.bdf" 0) ; CNS11643.1992-4
(chinese-cns11643-5 "Chinese/cns5-16.bdf" 0) ; CNS11643.1992-5
(chinese-cns11643-6 "Chinese/cns6-16.bdf" 0) ; CNS11643.1992-6
(chinese-cns11643-7 "Chinese/cns7-16.bdf" 0) ; CNS11643.1992-7
(chinese-big5-1 "Chinese/taipei16.bdf" encode-big5-font) ; Big5
(chinese-big5-2 "Chinese/taipei16.bdf" encode-big5-font) ; Big5
(chinese-sisheng "Chinese/sish16-etl.bdf" 0) ; sisheng_cwnn ???
(vietnamese-viscii-lower "Asian/visc16-etl.bdf" encode-viscii-font) ; VISCII1.1
(vietnamese-viscii-upper "Asian/visc16-etl.bdf" encode-viscii-font) ; VISCII1.1
(arabic-digit "Misc/arab16-0-etl.bdf" 0) ; MuleArabic-0
(arabic-1-column "Misc/arab16-1-etl.bdf" 0) ; MuleArabic-1
(arabic-2-column "Misc/arab16-2-etl.bdf" 0) ; MuleArabic-2
(ipa "Misc/ipa16-etl.bdf" 1) ; MuleIPA
(ethiopic "Ethiopic/ethio16f-uni.bdf" encode-ethio-font) ; Ethiopic-Unicode
;; (ascii-right-to-left "European/lt1-16-etl.bdf" 0) ; ISO8859-1 ;; ???
(indian-is13194 "Asian/isci16-mule.bdf" 0) ; IS13194-Devanagari
(indian-2-column "Asian/ind16-mule.bdf" 0) ; MuleIndian-2
(indian-1-column "Asian/ind1c16-mule.bdf" 0) ; MuleIndian-1
(lao "Asian/lao16-mule.bdf" 1) ; MuleLao-1
(tibetan "Asian/tib16-mule.bdf" 0) ; MuleTibetan-0
(tibetan-1-column "Asian/tib1c16-mule.bdf" 0) ; MuleTibetan-1
))
次に, meadow 内で使う w3m を設定するためのファイルである, .emacs-env/.w3m の設定です.
;;; elisp-w3m の設定 (autoload 'w3m "w3m" "Interface for w3m on Emacs." t) (autoload 'w3m-find-file "w3m" "w3m interface function for local file." t) (autoload 'w3m-browse-url "w3m" "Ask a WWW browser to show a URL." t) (autoload 'w3m-search "w3m-search" "Search QUERY using SEARCH-ENGINE." t) (autoload 'w3m-weather "w3m-weather" "Display weather report." t) (autoload 'w3m-antenna "w3m-antenna" "Report chenge of WEB sites." t)
次に, YaTeX モード, および, YaHTML モードの設定をするためのファイル, .emacs-env/.yatex の設定です.
;; -*- mode:lisp -*-
;;; yatex の設定
(cond
((locate-library "yatex")
(autoload 'yatex-mode "yatex" "Yet Another LaTeX mode" t)
;; 拡張子が .tex のファイルを開くときに yatex-mode にする
(setq auto-mode-alist (cons '("\\.tex$" . yatex-mode) auto-mode-alist))
;; 漢字コードの指定(1=sjis, 2=jis, 3=euc)
;; (setq YaTeX-kanji-code 1)
(setq YaTeX-kanji-code 3)
;; 外部コマンドの指定(パスが通ってない場合は絶対パスで記述)
;;(setq tex-command "platex")
;;(setq dvi2-command "dviout")
;;(setq bibtex-command "jbibtex")
;;(setq makeindex-command "mendex")
(setq tex-command "platex")
(setq dvi2-command "dviout")
(setq bibtex-command "jbibtex")
(setq makeindex-command "mendex")
(setq YaTeX-nervous nil)
(setq latex-message-kanji-code 3)
;; yatex-mode 初期化時の設定
(add-hook 'yatex-mode-hook
(function
(lambda ()
;; outline-minor-mode の設定(使用しない場合は不要)
(outline-minor-mode t) ; outline-minor-mode を起動
(make-local-variable 'outline-regexp)
(setq outline-regexp ; 見出しの正規表現
(concat "[ \t]*\\\\"
"\\(appendix\\|documentstyle\\|part\\|chapter\\|"
"section\\|subsection\\|subsubsection\\|"
"paragraph\\|subparagraph\\)"
"\\*?[ \t]*[[{]"))
;; font-lock 用の設定(使用しない場合は不要)
(setq YaTeX-use-font-lock t))))))
;; ;;; 印刷の設定
;; ;; この設定で M-x print-buffer RET などでの印刷ができるようになります
;; ;;
;; ;; notepad に与えるパラメータの形式の設定
;; (define-process-argument-editing "notepad"
;; (lambda (x) (general-process-argument-editing-function x nil t)))
;;
;; (defun w32-print-region (start end
;; &optional lpr-prog delete-text buf display
;; &rest rest)
;; (interactive)
;; (let ((tmpfile (expand-file-name (make-temp-name "w32-print-")
;; temporary-file-directory))
;; (coding-system-for-write w32-system-coding-system))
;; (write-region start end tmpfile nil 'nomsg)
;; (call-process "notepad" nil nil nil "/p" tmpfile)
;; (and (file-writable-p tmpfile) (delete-file tmpfile))))
;;
;; (setq print-region-function 'w32-print-region)
;; yahtml の設定
(cond
((locate-library "yahtml")
(autoload 'yahtml-mode "yahtml" "Yet Another html mode" t)
;; 拡張子が .html, .htm のファイルを開くときに yahtml-mode にする
(setq auto-mode-alist (cons '("\\.[sp]?html?$" . yahtml-mode)
auto-mode-alist))
;; 漢字コードの指定(1=sjis, 2=jis, 3=euc)
(setq yahtml-kanji-code 3)
;; 要素名や、属性指定子を小文字にする
(setq yahtml-prefer-upcases nil)
(setq yahtml-prefer-upcase-attributes nil)
;; 無用な区切り文字を挿入しない
(setq yahtml-faithful-to-htmllint t)
;; yahtml モードの起動が遅い場合に次の設定を有効にする
;; アクセス制限ファイル .htaccess を参照しないようにする
;;(setq yahtml-server-type nil)
;; P 要素の終了タグを挿入する
(setq yahtml-always-/p t)
;; 外部コマンドの指定(パスが通ってない場合は絶対パスで記述)
(setq yahtml-www-browser "fiber")
(setq yahtml-lint-program "htmllint -pedantic")
(setq yahtml-lint-buffer "*Another HTML-lint*")
;; yahtml-mode 初期化時の設定
(add-hook 'yahtml-mode-hook
(function
(lambda ()
;; outline-minor-mode の設定(使用しない場合は不要)
(outline-minor-mode t) ; outline-minor-mode を起動
;; 見出しの正規表現
(make-local-variable 'outline-regexp)
(setq outline-regexp "^.*<[Hh][1-6]\\>")
;; 見出し終わりの正規表現
(make-local-variable 'outline-heading-end-regexp)
(setq outline-heading-end-regexp "</[Hh][1-6]>")
;; 見出しレベルの計算式
(make-local-variable 'outline-level)
(setq outline-level
(function (lambda () (char-after (1- (match-end 0))))))
;; META 要素内の date に対する, 更新日の自動更新
(set (make-local-variable 'time-stamp-start)
(concat "<[Mm][Ee][Tt][Aa][ \t\n\r]+"
"\\([Nn][Aa][Mm][Ee]\\|[Hh][Tt][Tt][Pp]-"
"[Ee][Qq][Uu][Ii][Vv]\\)"
"[ \t\n\r]*=[ \t\n\r]*"
"\"\\(date\\|Last-Modified\\)\"[ \t\n\r]+"
"[Cc][Oo][Nn][Tt][Ee][Nn][Tt][ \t\n\r]*"
"=[ \t\n\r]*\""))
(set (make-local-variable 'time-stamp-format)
"%3a, %02d %3b %:y %02H:%02M:%02S %Z") ; rfc1123-date
(set (make-local-variable 'time-stamp-line-limit) 30)
;; auto time-stamp
(add-hook 'local-write-file-hooks 'time-stamp)
(auto-fill-mode)
;; font-lock の設定
(setq YaTeX-use-font-lock t))))))
私が浅学なもので, LISP における CI な正規表現を知らないので, 一部の文が見難くなっています. 各自工夫をして, 簡潔に書いてみましょう.
最後に, .wlの設定です. これはケース・バイ・ケースなので, そのまま写してもダメです. あくまで参考程度にとどめてください. なお, Wanderlust そのものの使い方は, ここでは一切解説しないので, 各自, 調べてください. (私は, Outlook Express に不便を感じたので, Wanderlust に乗り換えました.)
;;; dot.wl -*- emacs-lisp -*-
;; [[ 動作に必要な設定 ]]
;; まず、次の設定を ~/.emacs などに書いてください。
;; ここから
(require 'mime-setup)
(autoload 'wl "wl" "Wanderlust" t)
(autoload 'wl-draft "wl-draft" "Write draft with Wanderlust." t)
;; ここまで
;; アイコンを置くディレクトリ (XEmacs, Emacs21 のみ)
;; XEmacs の package としてインストールされている場合は必要ありません。
;(setq wl-icon-dir "/usr/local/lib/emacs/etc")
(setq wl-demo-display-logo t)
;;; [[ 個人情報の設定 ]]
;; From: の設定
(setq wl-from "Satoshi NANIGASHI <ark-h@ma4.seikyou.ne.jp>")
(setq wl-organization "Somewhere Lab.")
;; 自分のメールアドレスのリスト
(setq wl-user-mail-address-list
(list (wl-address-header-extract-address wl-from)
;; "e-mail2@example.com"
;; "e-mail3@example.net" ...
))
;; 自分の参加しているメーリングリストのリスト
(setq wl-subscribed-mailing-list
'("wl@lists.airs.net"
"apel-ja@m17n.org"
"emacs-mime-ja@m17n.org"
;; "ml@example.com" ...
))
;;; [[ サーバの設定 ]]
;; IMAP サーバの設定
(setq elmo-imap4-default-server "imap4.mail.com")
;; POP サーバの設定
(setq elmo-pop3-default-server "pop3.mail.com")
;; SMTP サーバの設定
(setq wl-smtp-posting-server "smtp.mail.com")
;; ニュースサーバの設定
(setq elmo-nntp-default-server "news.mail.com")
;; 投稿先のニュースサーバ
(setq wl-nntp-posting-server elmo-nntp-default-server)
;; (system-name) が FQDN を返さない場合、
;; `wl-local-domain' にホスト名を除いたドメイン名を設定してください。
;; (system-name) "." wl-local-domain が Message-ID に使用されます。
(setq wl-local-domain "localdomain.mail.com")
;; ダイヤルアップのための設定
(setq smtp-local-domain "smtp.local.mail.com")
;; Message-ID のドメインパートを強制的に指定
;(setq wl-message-id-domain "hostname.example.com")
;; IMAP サーバの認証方式の設定
(setq elmo-imap4-default-authenticate-type 'clear) ; 生パスワード
;;(setq elmo-imap4-default-authenticate-type 'cram-md5) ; CRAM-MD5
;; POP-before-SMTP
(setq wl-draft-send-mail-function 'wl-draft-send-mail-with-pop-before-smtp)
(setq wl-pop-before-smtp-user 'UserID);
;;; [[ 基本的な設定 ]]
;; `wl-summary-goto-folder' の時に選択するデフォルトのフォルダ
;; (私は, 全て MH 形式で保存しています.
;; mbox 形式だと, 多量のメールの扱いに困る上に, 一箇所が壊れると,
;; 最悪の場合は他のメールも読めなくなるからです.)
;(setq wl-default-folder "+inbox")
;; フォルダ名補完時に使用するデフォルトのスペック
;(setq wl-default-spec "+")
;; Folder Carbon Copy
;(setq wl-fcc "+outbox")
;; 終了時に確認する
(setq wl-interactive-exit t)
;; メール送信時には確認する
(setq wl-interactive-send t)
;; スレッドは常に開く
;(setq wl-thread-insert-opened t)
;; サマリバッファの左にフォルダバッファを表示する (3ペイン表示)
; t の場合
(setq wl-stay-folder-window nil)
;; ドラフトを新しいフレームで書く
;(setq wl-draft-use-frame t)
;; HTML パートを表示しない
;(setq mime-setup-enable-inline-html nil)
;; 大きいメッセージを送信時に分割しない
(setq mime-edit-split-message nil)
;; サブジェクトが変わったらスレッドを切って表示
;(setq wl-summary-divide-thread-when-subject-changed t)
;; スレッドの見た目を変える
;(setq wl-thread-have-younger-brother-str "+"
; wl-thread-youngest-child-str "+"
; wl-thread-vertical-str "|"
; wl-thread-horizontal-str "-"
; wl-thread-space-str " ")
;; サマリ移動後に先頭メッセージを表示する
;(setq wl-auto-select-first t)
;; サマリ内の移動で未読メッセージがないと次のフォルダに移動する
;(setq wl-auto-select-next t)
;; 未読がないフォルダは飛ばす(SPCキーだけで読み進める場合は便利)
;(setq wl-summary-next-no-unread 'skip-no-unread)
;; 未読メッセージを優先的に読む
;(setq wl-summary-move-order 'unread)
;; メール着信を知らせる
(setq wl-biff-check-folder-list '("+inbox"))
(setq wl-biff-notify-hook '(ding))
;;;添付ファイル名に日本語が使われている場合の対策
(eval-after-load "mime"
'(defadvice mime-entity-filename (around mime-decode activate)
ad-do-it
(and ad-return-value
(setq ad-return-value
(eword-decode-string (decode-mime-charset-string
ad-return-value
'iso-2022-jp))))))
;;; [[ ネットワーク ]]
;; フォルダ種別ごとのキャッシュの設定
;; (localdir, localnews, maildir はキャッシュできない)
;(setq elmo-archive-use-cache nil)
;(setq elmo-nntp-use-cache t)
;(setq elmo-imap4-use-cache t)
;(setq elmo-pop3-use-cache t)
;; オフライン(unplugged)操作を有効にする(現在はIMAPフォルダのみ)
;(setq elmo-enable-disconnected-operation t)
;; unplugged 状態で送信すると,キュー(`wl-queue-folder')に格納する
(setq wl-draft-enable-queuing t)
;; unplugged から plugged に変えたときに,キューにあるメッセージを送信する
(setq wl-auto-flush-queue t)
;; 起動時はオフライン状態にする
;(setq wl-plugged nil)
;; 起動時にポートごとのplug状態を変更する
;(add-hook 'wl-make-plugged-hook
; '(lambda ()
; ;; server,portのplug状態を新規追加もしくは変更する
; (elmo-set-plugged plugged値(t/nil) server port)
; ;; port を省略するとserverの全portが変更される
; ;; (port を省略して新規の追加はできない)
; (elmo-set-plugged plugged値(t/nil) server)
; ))
;;; [[ 特殊な設定 ]]
;; グループをcheckした後に未読があるフォルダのグループを自動的に開く
;(add-hook 'wl-folder-check-entity-hook
; '(lambda ()
; (wl-folder-open-unread-folder entity)
; ))
;; サマリ表示関数を変更する
;; サマリ表示において使用する情報を持つフィールドをoverview情報に
;; 入れる設定(ただし,localフォルダのみ)
;; 自動リファイルに必要なフィールドも設定
(setq elmo-msgdb-extra-fields '("newsgroups"
"x-ml-name" "list-id"
"x-mail-count" "x-ml-count" "x-sequence"
"mailing-list"))
;; ML のメッセージであれば,サマリの Subject 表示に
;; ML名 や MLにおけるメッセージ番号も表示する
;(setq wl-summary-subject-func 'my-wl-summary-subject-func-ml)
(setq wl-summary-subject-function 'my-wl-summary-subject-func-ml)
(defun my-wl-summary-subject-func-ml (subject-string)
(let ((folder wl-summary-buffer-folder-name)
(subj subject-string) (sequence) (ml-name) (ml-count))
(setq sequence (elmo-msgdb-overview-entity-get-extra-field
entity "x-sequence")
ml-name (or (elmo-msgdb-overview-entity-get-extra-field
entity "x-ml-name")
(and sequence
(car (split-string sequence " "))))
ml-count (or (elmo-msgdb-overview-entity-get-extra-field
entity "x-mail-count")
(elmo-msgdb-overview-entity-get-extra-field
entity "x-ml-count")
(and sequence
(cadr (split-string sequence " ")))))
(if (string-match
;;; "^\\s(\\(.+\\)[ :]\\([0-9]+\\)\\s)[ \t]*"
"^\\s(\\(\\S)+\\)[ :]\\([0-9]+\\)\\s)[ \t]*"
subject-string)
(progn
(setq subj (substring subject-string (match-end 0)))
(if (not ml-name) (setq ml-name (match-string 1 subject-string)))
(if (not ml-count) (setq ml-count (match-string 2 subject-string)))))
(if (and ml-name ml-count)
(if (string= folder wl-default-folder)
(format "(%s %05d) %s"
(car (split-string ml-name " "))
(string-to-int ml-count)
subj)
(format "#%05d %s"
(string-to-int ml-count) subj))
subj)))
;; imput により非同期で送信する
;; (utils/im-wl.el をインストールしておく必要があります。
;; また,~/.im/Config の設定(Smtpservers)を忘れないことと,
;; wl-draft-enable-queuing の機能が働かなくなることに注意。)
;(autoload 'wl-draft-send-with-imput-async "im-wl")
;(setq wl-draft-send-func 'wl-draft-send-with-imput-async)
;; 短い User-Agent: フィールドを使う
;(setq wl-generate-mailer-string-func
; (function
; (lambda ()
; (wl-generate-user-agent-string-1 nil))))
;;; [[ テンプレート ]]
;; テンプレートの設定
(setq wl-template-alist
'(("default"
("From" . wl-from)
("Organization" . "~/.wl sample")
(body . " 何某です。\n")) ;; 本文
; ("report"
; ("To" . "boss@example.com")
; ("Subject" . "報告")
; (top . "今週の報告です。\n") ;; 本文先頭への挿入
;; (bottom-file . "~/work/report.txt") ;; 本文末尾へファイルの挿入
; )
("private"
("Organization" . "Hokkaidou University")
(top . "何某です。\n")
(bottom . "--------\n何某哲\nark-h@ma4.seikyou.ne.jp"))
)
;; ドラフトバッファの内容により From や Organization などのヘッダを自
;; 動的に変更する
(setq wl-draft-config-alist
'((reply ;; 返信元のバッファを見る
"^To: .*\\(test-notsend-wl@lists.airs.net\\)"
(template . "default")) ;; テンプレート
("^To: .*\\(test-notsend-wl@lists.airs.net\\)"
wl-ml-draft-config-func ;; 関数
("From" . wl-from) ;; 変数
("Organization" . "~/.wl sample")) ;; 文字列
("^Newsgroups: test.*"
("Organization" . "ニュース投稿時の組織名"))
))
;; ドラフト作成時(返信時)に,自動的にヘッダを変更する
;(add-hook 'wl-mail-setup-hook
; '(lambda ()
; (unless wl-draft-reedit ; 再編集時は適用しない
; (wl-draft-config-exec wl-draft-config-alist))))
;;; [[ 返信時の設定 ]]
;; 返信時のウィンドウを広くする
;(setq wl-draft-reply-buffer-style 'full)
;; 返信時のヘッダに相手の名前を入れない。
;(setq wl-draft-reply-use-address-with-full-name nil)
;; メールの返信時に宛先を付ける方針の設定
;; 下記変数の alist の要素
;; ("返信元に存在するフィールド" .
;; ('Toフィールド' 'Ccフィールド' 'Newsgroupsフィールド'))
;; "a" (without-argument)では Reply-To: や From: などで指定された唯一人
;; または唯一つの投稿先に返信する。また,X-ML-Name: と Reply-To: がつい
;; ているなら Reply-To: 宛にする。
(setq wl-draft-reply-without-argument-list
'((("X-ML-Name" "Reply-To") . (("Reply-To") nil nil))
("X-ML-Name" . (("To" "Cc") nil nil))
("Followup-To" . (nil nil ("Followup-To")))
("Newsgroups" . (nil nil ("Newsgroups")))
("Reply-To" . (("Reply-To") nil nil))
("Mail-Reply-To" . (("Mail-Reply-To") nil nil))
("From" . (("From") nil nil))))
;; "C-u a" (with-argument)であれば関係する全ての人・投稿先に返信する。
(setq wl-draft-reply-with-argument-list
'(("Followup-To" . (("From") nil ("Followup-To")))
("Newsgroups" . (("From") nil ("Newsgroups")))
("Mail-Followup-To" . (("Mail-Followup-To") nil ("Newsgroups")))
("From" . (("From") ("To" "Cc") ("Newsgroups")))))
;; プリフェッチの設定
; プリフェッチを有効にするフォルダ
(setq wl-message-buffer-prefetch-folder-type-list t)
; プリフェッチのサイズ制限. nil なら無限大
(setq wl-message-buffer-prefetch-threshold nil)
;; X-Face を表示する (要 x-face (and x-face-mule))
(when (and window-system
(module-installed-p 'x-face))
(cond (wl-on-xemacs ;; for XEmacs
(autoload 'x-face-xmas-wl-display-x-face "x-face" nil t)
(setq wl-highlight-x-face-function
'x-face-xmas-wl-display-x-face))
;; for Mule (GNU Emacs)
((module-installed-p 'x-face-mule)
;; x-face-mule 0.20以後
(setq wl-highlight-x-face-function
(function
(lambda (&rest dummy)
(x-face-decode-message-header))))
(require 'x-face-mule)
)))
;; 自動リファイルのルール設定
(setq wl-refile-rule-alist
'(
("From"
(".*@vector.co.jp" . "+vector")
("ark-h@ma4.seikyou.ne.jp" . "+sent-mail")
("Subject"
(".*Weekly Mag2.*" . "+magmag"))
("To"
("htmllint@ring.gr.jp" . "+htmllint"))
("x-ml-name"
("^Meadow" . "+meadow")
("^Wanderlust" . "+wanderlust")
("^Elisp" . "+elisp"))))
;; 自動リファイルしない永続マークを設定
;; 標準では "N" "U" "!" になっており、未読メッセージを自動リファイルし
;; ません。nil ですべてのメッセージが対象になります。
(setq wl-summary-auto-refile-skip-marks nil)
;; 自分宛にBccで送る
(setq wl-bcc "ark-h@ma4.seikyou.ne.jp")
;; GnuPG の設定
(setq pgp-version 'gpg)
(setq pgg-default-user-id "Satoshi NANIGASHI <ark-h@ma4.seikyou.ne.jp>")
(setq pgg-cache-passphrase nil)
(setq pgg-gpg-shell-file-name "/bin/bash")
(setq pgg-gpg-program "/usr/bin/gpg")
;; 自動削除の設定
; 自動削除のログを取る
(setq wl-expire-use-log t)
; 削除の設定
(setq wl-expire-alist
'(("^\\+magmag$" (date 7) trash) ;; ゴミ箱へ移動
("^\\+vector$" (date 14) trash)
("^\\+trash$" (date 21) remove) ;; 削除
))
;; スコア機能の設定
;; `wl-score-folder-alist' の設定に関わらず必ず "all.SCORE" は使用される。
;(setq wl-score-folder-alist
; '(("^-comp\\."
; "news.comp.SCORE"
; "news.SCORE")
; ("^-"
; "news.SCORE")))
;; スコアファイルを保存するディレクトリ
; (setq wl-score-files-directory "~/.elmo/")
;;; dot.wl ends here
以上で設定は終わりです.