Skip to content
2009/01/12 / highmt

Meadowでw3m

http://www.bookshelf.jp/texi/emacs-w3m/emacs-w3m-ja_10.html あたりの設定。
my-prefix-mapはdefine-prefix-commandしたもの。

(eval-after-load "dired"
  '(define-key dired-mode-map "\C-c@m" 'dired-w3m-find-file))
(define-key my-prefix-map "m" 'browse-url-at-point)

(defun dired-w3m-find-file ()
  (interactive)
  (require 'w3m)
  (let ((file (dired-get-filename)))
    (message (format "Use emacs-w3m to browse %s."
                     (file-name-nondirectory file)))
    (w3m-find-file file)))


browse-url-at-pointをw3mで動かすにはbrowse-url-browser-functionをw3m-browse-urlに変更する。
加えて、どうも “file:” がうまく扱われないので下記を追加。

(eval-after-load "browse-url"
  '(progn
    (setq browse-url-browser-function 'w3m-browse-url)
    ;;(setq browse-url-browser-function 'browse-url-default-windows-browser)
    (setq browse-url-filename-alist
          (append browse-url-filename-alist '(("^file:" ."file:///"))))
    ))

あと、mailclientの設定。
compose-mailは、*mail*バッファを開く。
ここでmail-sendするとデフォルトではWindowsのデフォルトメーラが開く。
このとき、”mailto:”を使ってデフォルトメーラを開いている。
しかし、上記でbrowse-url-browser-functionを差し替えているので
”mailto:”はw3mに解釈されてしまう。
w3mはこれをcompose-mailするだけなので、再び*mail*バッファに移動するだけで、
堂々巡りになる。
ので、mail-sendのときだけbrowse-url-browser-functionを元に戻す。

(defun my-mailclient-send-it ()
  (unwind-protect
      (progn
        (setq browse-url-browser-function
              'browse-url-default-windows-browser)
        (mailclient-send-it))
    (setq browse-url-browser-function 'w3m-browse-url)))

(setq send-mail-function 'my-mailclient-send-it)

広告
%d人のブロガーが「いいね」をつけました。