HOME > Emacs Time-stamp: "Aug 02 2003"

Emacs

Unix上で使用できるテキストエディタ Emacs について

スクリーンショット

.emacs のサンプル

どの Emacs でも使う設定ファイル (.emacs) をまず読み込んだ後で、各 Emacs 固有の機能について 別々の設定ファイル (.emacs21, .meadow など) を読み込む。

migemo

日本語の検索が非常にラクになるツール。日本語に変換しなくても、「nihon」と入力するだけで検索され、「にほん」「日本」「二本」「nihon」「NIHON」などにヒットする。C-s で検索語を入力開始 (入力中にも一文字入力するたびに検索されヒットした単語に移動する)。C-s で次の検索候補にとぶ。Enter や 移動コマンド (C-fなど) で検索終了。

RedHatLinux7.3 用の RPM パッケージを自動的に作るシェルスクリプトを書いたが、自動化が中途半端になってしまった。

2003-07-25 改訂: RedHatLinux 7.3 付属 の ruby パッケージの PATH にあわせました (/usr/local/lib/site_ruby ではなく /usr/lib/site_ruby にインストールするようにしました)。RedHatLinux 7.3 に入っている Emacs 21.2 で動作確認しました。

実行するには $ sh migemo-mkrpm.sh とする。 このスクリプトは、以下の工程を自動実行する。

  1. $HOME/rpmdir というディレクトリを作成する。
  2. migemo, ruby-bsearch, ruby-romkan のファイルを $HOME/rpmdir/SOURCES に取得。
  3. rpm 作成に必要な spec ファイルを 3 つ生成。
  4. ruby-bsearch, ruby-romkan の rpm パッケージを作る。

このあと、手作業で次の工程をこなす必要がある。

  1. ruby-bsearch と ruby-romkan の rpm パッケージをインストールする。
    $ su
    # rpm -Uvh rpmdir/RPMS/i386/ruby-bsearch-1.5-2.i386.rpm
    # rpm -Uvh rpmdir/RPMS/i386/ruby-romkan-0.4-2.i386.rpm
  2. migemo の rpm パッケージを作る。
    $ rpmbuild -ba rpmdir/SPECS/migemo.spec
  3. migemo の rpm パッケージをインストール。
    # rpm -Uvh rpmdir/RPMS/i386/migemo-0.32-2.i386.rpm
  4. Emacs の設定ファイル $HOME/.emacs(load "migemo.el") と追加する。

電子辞書

Emacs から辞書を引くことができます。

必要なものは以下の 4 つです。

  1. Lookup - Emacs用クライアント (バックエンドで eblook を使用する)
  2. eblook - EPWING辞書ファイルを検索するコマンド
  3. EB - eblook が必要とするライブラリ
  4. 電子辞書 (ここでは、フリーで配付されている和英辞典を動作チェックのために使用する)

これらのうち 1, 2, 3 を自動的に rpm パッケージにするシェルスクリプト を書きました。 しかし、上のスクリプトと同じく自動化が中途半端で手作業の工程があります。

2003-07-25 作成。RedHatLinux7.3 対応です。RedHatLinux7.3 に最初から入っている Emacs 21.2 そして RedHatLinux7.1 + Emacs21.3 で動作確認しました。
2003-08-02 修正。infoディレクトリの位置を RedHat 標準の位置 /usr/share/info に変更。

このスクリプトは、以下の工程を自動実行します。

  1. $HOME/rpmdir というディレクトリを作成する。
  2. EB, eblook, Lookup のファイルを $HOME/rpmdir/SOURCES に取得。
  3. rpm 作成に必要な spec ファイルを 3 つ生成。
  4. EB の rpm パッケージを作る。

このあと、手作業で次の工程をこなす必要があります。

  1. EB の rpm パッケージをインストール。
    $ su
    # rpm -Uvh rpmdir/RPMS/i386/eb-3.3.4-2.i386.rpm
  2. eblook, Lookup の rpm パッケージを作成。
    $ rpmbuild -ba rpmdir/SPECS/eblook.spec
    $ rpmbuild -ba rpmdir/SPECS/lookup.spec
  3. eblook, Lookup の rpm パッケージをインストール。
    $ su
    # rpm -Uvh rpmdir/RPMS/i386/eblook-1.5.1-2.i386.rpm
    # rpm -Uvh rpmdir/RPMS/i386/lookup-1.4devel-021115_2.i386.rpm
  4. 電子辞書を取得して、とりあえず $HOME/local/dict の下に展開したと仮定する。
  5. Emacs の設定ファイル $HOME/.emacs
    ;;; lookup
    (autoload 'lookup "lookup" nil t)
    (autoload 'lookup-region "lookup" nil t)
    (autoload 'lookup-pattern "lookup" nil t)
    (define-key ctl-x-map "l" 'lookup)
    (define-key ctl-x-map "y" 'lookup-region)
    (define-key ctl-x-map "\C-y" 'lookup-pattern)
    (setq lookup-search-agents
          '(
            (ndeb "~/local/dict/EDICT")
            ))
    (setq lookup-default-dictionary-options
          '((:stemmer .  stem-english)))
    (setq lookup-use-kakasi nil)
    と追加する。

Emacs を起動して、C-xC-y とすると Lookup が起動する。とりあえず「look」と入力してみて辞書が引けていれば OK。

電子辞書の情報は、電子辞書オープンラボ の「電子辞書の情報」やそのページにあるメーリングリストの「過去の記事」を参考にするとよいでしょう。

Eメール

Emacs 内で使用できるメーラ (MUA) には gnus, mew, wanderlust, 等あります。 私は mew を使用しています。

以前は cmail を使用してましたが、複数メールを 1つのファイルに格納する方式だったため、文字コードのおかしなメールを受けとると、各メールの分離などに問題があったと思います。mew は 1メール 1ファイルの形式なのでそういう問題が起こりません。メールボックスの中のテキストファイルを直接見ることもできます (HTMLだけのメールで役に立ちます)。最近は 5MBのファイルを添付することもときどきあるのですが、そういうときもこの形式なら問題ありません。

mew 3.3 を自動的に rpm にするシェルスクリプトです。

$ sh mew-mkrpm.sh
で実行。
# rpm -Uvh ~/rpmdir/RPMS/i386/mew-3.3-1.i386.rpm
でインストール。
mew 操作
起動 M-x mew (起動してメール取得)、C-u M-x mew (メール取得せず起動)。
終了 q
mail新規書き w
返信 A (a だと相手のメールを引用しない)
送信 C-cC-c
mail書きキャンセル C-cC-q
メールの整理
mailを一括選択 ? とすると pick pattern..と表示されるので、 subject=[edict とか to=meadow とする。`*' マークがつく。
mailを個別選択 * で `*' マーク、 o で `o' マーク
mailを一括移動 mo として `o' マークにした後、 x で実際に別のフォルダに移動
自動で全選択 上の選び方よりラクな方法として、 M-o がある。何もマークの付いていない状態からいきなり o マークを付ける。
フォルダを移動 g
フォルダ内を時間軸で並べ変え S
ファイルを添付
mail本文入力画面にカーソルがあるとき C-cC-a
ドットの上にカーソルがあるとき c ファイルの所在 [ENTER]
copy to とファイル名をきかれる 同じでいいなら [ENTER]
MIME-Typeを変更するなら T 例えば、Text/Plain から Application/Octat-Stream に 変更するには T Ap[TAB]Oc[TAB]
送信 C-cC-c

itouh