FreeBSD 10.3Rでメールの読み書き(3) emacsのパッケージインストール編

emacs 25.3で日本語の読み書きができるようになりました。htmlメールが来たときにもとりあえず読めるようにしておいた方が便利だ,とかいろいろとあるのでemacs用のパッケージ類をインストールします。

1. emacs-w3m
まずは,emacs-w3mをインストールします。

pkg install ja-w3m

として日本語対応版のw3mをインストールします。emacs上でw3mを使えるようにemacs-w3mをインストールしなければなりませんが,ここでハマりました。emacs 24以降では簡単にpackageをインストールできるらしいのですが,gnuで登録されているデフォルトのpackageのサイトにはemacs w3mは載っていません。多くのpackageが登録されているのはmelpaだそうですが,melpaのリストを読み込めるようにしなくてはなりません。

~/.emacs.d/init.elに設定を書けばよいといろいろなところに書かれているのですが,なぜか私の環境ではちゃんと読み込んでくれません。~/.emacsがあるとinit.elは読んでくれないようです。深く考えないで,昔ながらの~/.emacsに設定を書き込んでしまいましたが,これをそのまま~/.emacs.d/init.elにコピーして~/.emacsのほうは消してしまうとちゃんと期待する動作をするようになりました。

melpaのurlの登録方法もネットに落ちている情報を真似てもうまくいかないものもありました。melpaの公式サイトに設定方法がありますが,無駄に汎用的に書かれていて非常にわかりにくくなっています。普通にhttpsが通るなら,単純に以下のようにかけば十分のようです。
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; package
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(require 'package)
(add-to-list 'package-archives
'("melpa" . "https://melpa.org/packages/") t)
(add-to-list 'package-archives
'("melpa-stable" . "https://stable.melpa.org/packages/") t)
(package-initialize)

emacsを起動したら,

M-x package-list-packages

とやるとインストール可能なパッケージのリストが表示されます。w3mを見つけてその文字の上でenterをたたいてもよいですし,

M-x package-install

としてからw3mと入力してもOKです。なんかエラーとか言ってきますが,あまり気にしないことにします。最後まで終わったら,~/.emacs.d/init.elに

(require 'w3m)
(setq w3m-home-page "http://www.google.co.jp")

くらいを設定しておきます。
M-x w3m
とやるとテキストブラウザが起動します。インラインの画像などは表示できませんが(設定によるのかもしれません),兎に角,htmlのレンダリングはできているようです。

ここまでくればあとはどんどんパッケージをインストールしていきます。

M-x package-install

としてどんどんインストールしますが結局あまりどれもうまく動かなくて自分でインストールしなおさないといけない感じです。うーむ。

2. mew
package-installでインストールしたmewは'mewl' not foundといわれてフォルダのスキャンができません。実際,どこにもmewlがなさそうな気配です。また,mew-icon-directoryを./emacs.d/mew-xxxxxxx/etc/と設定してもなぜかちゃんと表示されません。

結局,本家からソースをもらってきてインストールするのが一番確実です。余計なことを考えるんじゃなかった...。ソースを展開して,
./configure
gmake
gmake install
で終わりです。

smtpサーバーは諸般の事情により直接接続できないため,間にリレーをかましてsmtpサーバーに送るようにしました。ループが発生しないようにしないといけないので結構考えてしまいます。たぶんちゃんと動いていると思いますが,ちょっと不安です。

mewは~/.emacs.d/init.elに
(autoload 'mew "mew" nil t)
(autoload 'mew-send "mew" nil t)
だけ追加して,その他のmewに特有の設定は~/.mew.elに書きます。

を設定します。

またローカルサーバーでqpopperを動かしてpop3経由でメールをとれるようにします。
pkg install qpopper
としてインストールしたら,
/etc/rc.confにinetd_enable="YES"を追加し,/etc/inetd.confに
pop3 stream tcp nowait root /usr/local/libexec/qpopper qpopper -s
を追加します。そのうえで,inetdとたたけばinetdが起動します。

3. mhc
手帳代わりにmhcをmewとともに使ってきました。本家を見るとgemでrubyのコードをインストールした後,melpaからmhc.elをインストールするように書かれています。それに従って,まずgemでインストールしようとするのですが,gemそのものがありません。

FreeBSD 10.3Rではportsのdevel/ruby-gemとして入っていますが,portinstall devel/ruby-gemsとやると危険だからダメと言われます。セキュリティ的にダメだと。しょうがないので,
cd /usr/ports/devel/ruby-gems
make DISABLE_VULNARABILITIES=yes
make install
として無理矢理インストールします。それから
gem install mhc
とするととにかくインストールは終わります。しかし,初期化のために
mhc init ~/mhc
とするとエラーがいっぱいでます。もうこのあたりでイヤになってきます。emacsでpackage-installとしてmhcをインストールするととりあえずこれもインストールできますがエラーがでて動きません。コンソールでmhcを動かしてもやはりエラーがでるのでそりゃダメにきまってます。

あきらめて,昔インストールしたmhc-20100807.tar.gzを使うことにします。

ファイルを展開して,cd mhc/emacs,vi Makefileで以下の設定をします。
1) MEW_OPTSのコメントをはずす。
2) INST_OPTSのコメントをはずす。
3) XEMACSをコメントアウトする。
あとはgmake; gmake installで終わりです。~/.mew.elに
(autoload 'mhc-mew-setup "mhc-mew")
(add-hook 'mew-init-hook 'mhc-mew-setup)
(setq mhc-todo-display-done nil)
を追加します。特に問題なく動くようです。これも余計なこと考えるんじゃなかったと後悔。

4. mew-w3m
emacs-w3mには入っていたはずのmew-w3mが消えているとこちらに書かれていて,実際,mew-w3mがみつかりません。こちらにおいておられるmew-w3m.elをダウンロードして,/usr/local/share/emacs/site-lisp/にコピーします。~/.mew.elに
(require 'mew-w3m)
(define-key mew-summary-mode-map "T" 'mew-w3m-view-inline-image)
を追加しておきます。これでよいのかどうかちゃんと動作確認をしてませんが...

5. c-sig
メールのうしろにつける署名はずっとc-sigを使ってきました。まず,ソースを落としてきます。
git clone https://github.com/ryoon/c-sig
cd c-sig

emacsを立ち上げて
C-u 0 M-x byte-recompile-directory
とやるとバイトコンパイルされてc-sig.elcができます。
mkdir /usr/local/share/emacs/site-lisp/c-sig
としてこのディレクトリにc-sig.elとc-sig.elcをコピーしておきます。~/.mew.elに
(autoload 'add-signature "c-sig" "c-sig" t)
(autoload 'delete-signature "c-sig" "c-sig" t)
(autoload 'insert-signature-eref "c-sig" "c-sig" t)
(autoload 'insert-signature-automatically "c-sig" "c-sig" t)
(autoload 'insert-signature-randomly "c-sig" "c-sig" t)

(add-hook 'mew-draft-mode-hook
(function (lambda ()
(define-key mew-draft-mode-map "\C-ci"
'insert-signature-eref))))
などと追加しておきます。~/.signature.alistに署名を設定しておきます。mewでメールを書いているときであれば,C-c iとたたけば署名が挿入されます。

6. migemo
migemoは昔はemacs lispだけで完結していたような記憶がありますが,どうやらそうではなくなったようでcmigemoという変換エンジン部分をcでコンパイルしてからemacs lispのパッケージをインストールしなくてはならないようです。知らなかった。
git clone https://github.com/koron/cmigemo
cd cmigemo
./configure
make gcc
make gcc-dict
make gcc-install
とすれば何かそれらしいものがインストールされます。

migemo.elはmelpaからインストールします。~/.emacs.d/init.elに以下を追加します。
(require 'migemo)
(setq migemo-command "/usr/local/bin/cmigemo")
(setq migemo-options '("-q" "--emacs"))
(setq migemo-dictionary "/usr/local/share/migemo/euc-jp/migemo-dict")
(setq migemo-user-dictionary nil)
(setq migemo-coding-system 'euc-jp-unix)
(setq migemo-regex-dictionary nil)
(load-library "migemo")
(migemo-init)
これでなんとなく動いているっぽいです。

7. yatex
これは昔からpackageでインストールできていましたが,melpaからpackage-installでちゃんとインストールできたようです。

8. howm
ほとんど使ってないのですが,とりあえずmelpaからpackage-installでインストールすることはできました。使ってないので動くかどうかを確認してさえもいません。だめじゃん...。

9. word-count
どうやら最近のemacsには文字数のカウントの機能は最初から含まれているようで,M-=とやればよいようです。これも知らなかった...。
posted by MOR at 07:00Comment(0)Computer