Emacsのページ

変更履歴

2000年9月10日
fetchmail.elをアップデートしました。
2000年8月27日
Emacsのページを書き始める、というか以前のリニューアル。

Emacs 20を使っています。文書・プログラムの編集やメール・ニュースの読み 書きなど色々便利に使えるので、既にEmacsが無いと計算機を使えない体になっ てしまいました(汗)。

自作Emacs Lisp

こんな機能があったら便利だなというものを、ちょこっと作ってみました。

LaTeXのラベルを補完入力

アーカイブ
latex-label.el

LaTeXのラベルを編集バッファ内から集めて、ミニバッファで補完入力します。

Fetchmail

アーカイブ
fetchmail.el

FetchmailをEmacs から呼び出します。~/.fetchmailrcにパスワードを書くのはなんか いやだけど、でも毎回パスワードを入力するのも面倒なので、わたしの環境で は常に起動状態にあるEmacsにパスワードを記憶させるために作りました。

使っているEmacs Lispのパッケージ

Emacsには機能を拡張する色々なパッケージがあります。わたしは次のものを 使っています。

SKK Emacs Lisp で書かれた日本語入力システムです。軽快に入力できるところが 気に入って使っています。
Wanderlust 多機能で見た目も派手なメーラ。IMAP や POP が使えて、ネットニュースにも 対応しています。
APEL 可搬性のあるEmacs Lispプログラムの作成を支援するためのライブラリだそうです。実はなんだかよくわかってないんだけど、SKKやWanderlustを使 うのに必要らしい。
FLIM Internet messageを扱うための基礎的な機能を提供するライブラリーだそうです。実はなんだかよくわかってないんだけど、Wanderlustを使うの に必要らしい。
SEMI FLIMの機能を利用して、利用者にInternet messageの構造を扱うための 対話的なuser interfaceを提供するための層だそうです。実はなんだ かよくわかってないんだけど、Wanderlustを使うのに必要らしい。
Mailcrypt Emacs上のメーラーでPGPを使うためのパッケージ。 WanderlustでPGPを使うためにインストールしました。MailcryptはPGP 5.0に 対応しているみたいなんだけど、SEMI からだとPGP 5.0を使えないみたい。な ぜ?
xcite Exciting Cite Utility。メールで引用するためのツールです。こんな風に引 用できます。
  土岐> はじめまして
SDIC 英和・和英辞書。Emacs のバッファからすぐに参照できるので便利です。
shell-command.el Emacsからコマンドを呼び出すとき(M-!)でも補完が效くようにな ります。
elisp-info.el Emacs Lisp関数の説明を日本語で表示してくれます。Emacs Lispを編集すると きにあると便利です。
kumac-mode.el 大学を卒業したわたしにはもう既に無用の長物となってしまいましたが、高エ ネ物理業界の人には必須の、PAWのマクロ言語KUMACを編集するためのモードで す。PAWがなんだか分からない人にはまったく必要ないでしょう。

Emacsの小技集

主に~/.emacsの設定が多いです。

Emacsのバージョン毎に設定ファイルを用意する

(cond
 ((string-match "GNU Emacs 19\\." (emacs-version))
  (load (expand-file-name "~/.gnu-emacs-19")))
 ((string-match "GNU Emacs 20\\." (emacs-version))
  (load (expand-file-name "~/.gnu-emacs-20")))
 ((string-match "XEmacs 20\\." (emacs-version))
  (load (expand-file-name "~/.xemacs-20")))
 ((string-match "XEmacs 21\\." (emacs-version))
  (load (expand-file-name "~/.xemacs-21"))))

モード行に色々な情報を表示する

(setq display-time-24hr-format t)	; 時刻の書式をAM/PMではなく24時間表示にする
(setq display-time-day-and-date t)	; 時刻の書式に日付を追加する
(line-number-mode t)			; 行番号の表示
(column-number-mode t)			; カーソルの桁位置の表示
(display-time)				; 時刻の表示

バッファの終端で空行を勝手に追加しないようにする

(setq next-line-add-newlines nil)

FLIMでquoted stringの解析をやめる

メールのFromヘッダ中の"で括られた日本語 を無理矢理デーコードしたいときに設定します。これで悪名高いOutlook Expressのメールが来てもFromの日本語を表示できるようになり ます。"の中はデーコードしないのが正しい動作らしいの で、ほんとはあまりこういうことはしたくないんだけど、みんなOutlook Expressを使ってるからこっちが設定しないと不便でしょうがないんだよなあ。 なんだか数の暴力に敗北している気がする...

(setq eword-lexical-analyzer            ; http://lists.airs.net/wl/archive/199909/msg00009.html
      '(;eword-analyze-quoted-string	; quoted stringのanalyzeを止める
        eword-analyze-domain-literal
        eword-analyze-comment
        eword-analyze-spaces
        eword-analyze-special
        eword-analyze-encoded-word
        eword-analyze-atom))

FLIMでヘッダの長い日本語をデコードする

なんか変なタイトルになってしまったなあ。要は日本語でだらだらと書かれた ヘッダが来ると、FLIMのデフォルトの作業バッファのサイズでは溢れてしまっ てデコードされないので、ちょっと大きめに設定し直しておくとよいです。

(setq eword-max-size-to-decode (* 64 1024))

FILMで日本語の添付ファイル名をデコードする

デフォルトでは日本語のファイル名はデコードされないので、このように設定 しておくと良いらしいです。

(eval-after-load "mime"                 ; http://lists.airs.net/wl/archive/199909/msg00031.html
  '(defadvice mime-entity-filename (around mime-decode activate)
     ad-do-it
     (and ad-return-value 
          (setq ad-return-value (eword-decode-string ad-return-value)))))

Emacsclientを使えるようにする

~/.emacs

(server-start)

と記述しておくと、コマンドラインでemacsclientが使えるようになります。 各種ツールのエディターの設定や環境変数EDITORなどにemacsclient を設定しておくと、あらかじめ起動してあるEmacsのバッファでファイルを編 集できます。編集を終えたらC-x #でemacsclientを終了します。

色を付ける

(global-font-lock-mode t)

最近の計算機の処理能力なら、常に色付きでもあまり負担にはならないでしょ う。

圧縮されたファイルを編集する

(auto-compression-mode t)

編集中のバッファのタブ幅を変更する

M-: (eval-expression)を実行してミニバッファで(setq tab-width 2)などとタブ幅を入力します。タブ幅が変わるのは編集中 のバッファだけで、ほかのバッファのタブ幅は変わりません。

括弧のハイライト表示

(show-paren-mode t)