[ Top | Memo | Diary | Aerial ]

Emacs USER

Contents

  1. Emacs 事始
  2. 便利な編集機能
  3. ファイル・バッファ・ウィンドウ操作
  4. メールを Emacs で書く
  5. web ページを見て HTML を書く

Emacs でなく vi を使うようになったので、ここの情報はあまり更新されませんし、もしかしたら古い情報になっているかもしれません。ご了承ください。

Emacs 事始

コンピュータを前にして文章を書くとき、なにを使って書いているのかに無頓着な人がけっこう多いです。でも手で文章を書くのを思い出してみても分かると思うのですが、鉛筆で書くか万年筆で書くかボールペンで書くか、はたまたわら半紙の隅に書くか特製原稿用紙に書くか A4 のノートに書くかで書く内容も自ずと変わるものですよね。同じように、使っているエディタが違えば書く内容も自ずと変わってくるものです。手に馴染むエディタを使うことは、いい文章を書くための第一歩です。

Emacs をまず起動させましょう。端末エミュレータ(kterm や rxvt など)から emacs もしくは mule 、または xemacs とタイプして実行しましょう。Emacs は起動しましたか? 起動したらまず Ctrl キーを押しながら h、続けて Ctrl キーを離してから T をタイプしましょう。今後 Ctrl を押しながらする動作を C-h のように表わします。さて、C-h T は mule だと日本語によるチュートリアルが立ち上がり、基本動作を身につけられるようになっているのですが、チュートリアルは起動しましたでしょうか。emacs や xemacs を使っている人はホームディレクトリに (set-language-environment "Japanese") と書いた .emacs という名前のファイルがないと日本語のチュートリアルにならないかしれませんが、英語でもだいじょうぶだ、という人はそのまままずチュートリアルを受けてください(だめな人は上の内容の .emacs というファイルを自分のホームディレクトリに作ってください)。

便利な編集機能

Emacs を使い始めてチュートリアルを受けると、なにやらカーソルを動かすにもコントロールキーを押しながらやらねばならず(もちろんカーソルキーも使えますけど)、なんだかとっても難しそうな感じがします。でも、周りに Emacs を使いこなしている人がいれば聞いてみたり見てみたりするとよいですが、神技のようなスピードで文章を編集している人がいますね。そういう使い方をマスターする第一歩をここで確認しましょう。

Emacs のチュートリアルはもう受けましたか? 一度受けたあとでも時間が経ってからまたやってみると新たな発見があるかもしれません。ちょっと基本操作のおさらいをしてみましょう。

C-p(previous)
C-b(backward) C-f(forward)
C-n(next)

こんな感じで、矢印キーは使わずにカーソルを移動させることができます。矢印キーを使うとどうしてもホームポジションから手が離れてしまうので、その度に思考が止まってしまいます。その他、日本語の文章を編集するときによく使う移動操作としては、

C-a 文頭移動(なんで a なのかは……由来はあるのですが忘れてしまいました(^^;)
C-e 文末移動(end)
C-v 1ページ進む
M-v 1ページ戻る
C-s 単語検索(search)
C-r 現在の位置から上に単語検索(reverse search)
M-> ファイルの最後にジャンプ
M-< ファイルの先頭にジャンプ

と、こんなものでしょうか。M-f で単語1個進む、とか M-b で単語1個戻るとかありますが、日本語だと単語の切れ目が英語などと違って判定が難しいので、使いづらかったりします。M-> と M-< はファイルを開いて文章を追加したり編集したりするのに便利ですし、C-s と C-r は検索というよりは、文章内での高速な移動に使います。C-s してキーワードを入れれば一発でそのキーワードがある場所に飛びますし、C-s を何回かタイプすれば順番にその言葉が使われているところをジャンプします。プログラミングをしているときも、エラーが出たらエラーが出た関数名をキーワードに C-s すればすぐ見つかるので、ぜひ検索の使い方をマスターしてください。

Tips. 文章内の移動に検索(C-s, C-r)を使おう

次に Emacs での編集操作を見てみましょう。編集といえば、挿入と削除、それにコピー & ペーストですね。基本操作としては

C-d カーソルの上の文字を消去(delete)
C-k その行のカーソル以降の文字を消去(kill)
C-w マークをつけたところからカーソル位置までを消去
M-w マークをつけたところからカーソル位置までをコピー
C-y 貼りつけ(yank)

ですね。で、マークをつけるのは C- です。Ctrl を押しながらスペースを押せば Mark set のようにミニバッファに表示されるはずです。それでカットやコピーしたいところまでカーソルを移動させて(それには C-e や C-v を使ったりして移動するのが多いですね)、C-w や M-w をすればそれぞれカット・コピーできます。カット・コピーしたものを貼りつけたい場合は、貼りたい場所にカーソルを持っていって C-y します。C-k で一行消去したものも貼りつけられるので、C-y を使うと簡単に文章の順番を変えたりできます。

そうそう、困ったときには C-g を押せば命令を1個取り消せます。なので、ミニバッファがよく分かんなくなったら C-g を何回か押せばいつもの状態に戻ります。また、いったん行なってしまった変更を取り消したい場合は、C-_ を実行すれば1回前の段階に戻せます。何回か連続して押せば押したぶん前に戻せるので、間違えて C-w して書きかけの文章が消えてしまった、なんてときは慌てずさわがず C-_ すると復旧できますから、安心してください。

Tips. なにはともあれ C-g、困ったときは C-_。

ファイル・バッファ・ウィンドウ操作

C-x C-f ファイルを開き、該当するファイル名がないときは新規に作成する(find file)
C-x C-s 編集中のファイルを上書き保存(save)
C-x C-w 現在編集中のバッファに名前をつけてファイルに保存(write)
C-x b 現在存在するバッファの名前を指定して内容を表示(buffer)
C-x C-b 現在存在するバッファのリストを表示(buffer)

Emacs ではファイルの編集や保存も全部 "バッファ" と呼ばれる領域で行ないます。単に起動した状態では *scratch* という名前のバッファを開いています。ここでなにか書いて C-x C-w すると、*scratch* バッファの内容に名前をつけ、ファイルに書き出すことができます。バッファで編集しているだけではファイルに保存されていないので、そのまま Emacs を終了させるとバッファの内容は消えてしまいます。こまめに C-x C-s して内容を保存しておきましょう。

C-x C-f、C-x C-s、C-x C-w の操作に慣れてきたら、バッファの使い方を覚えればとても便利になります。編集中のファイルを開こうとして C-x C-f すると、C-x C-s で保存していないと「編集中のバッファがあります。再読み込みしますか?」のように訊かれて意外と面倒なものです。そういうとき、C-x b してファイル名の先頭数文字を入れて TAB キーで補完すれば、現在編集中のバッファのほうを呼び出せます。何個も Emacs のウィンドウを立ち上げてマウスで行ったり来たりしなくてよくなりますね。

Tips. バッファの使い方を覚えよう

バッファの使い方についてもう少し挙げておくと:

M-~ 編集中のバッファに変更が加えられていても無変更の印をつける
C-x C-q 編集中のバッファを編集禁止にする
C-x k 現在存在するバッファを削除(kill)
C-x i 編集中のバッファにファイルの内容を挿入する(insert)

です。バッファを削除するには C-x C-b からバッファのリストを開き、後述する dired-mode のようにリスト内を n で下、p で上に移動して d で削除マークをつけて x で実際に削除することもできます。

ウィンドウ操作

バッファの扱いに慣れてくるとウィンドウも自由自在に使えるようになります。複数のファイルを同時に開いて編集したり、同じファイルの別の個所を開いて参照しながら編集したりすると非常に便利です。ウィンドウを横に分割するには C-x 2、縦に分割するのは C-x 3 です。開いたウィンドウを現在カーソルがあるウィンドウだけにするには C-x 1、現在カーソルがあるウィンドウを閉じるには C-x 0 とします。また、ウィンドウを閉じてもバッファには内容が残っているので、C-x b などとすれば編集を続けることができます。それに加え、X 上で Emacs を使っているときは C-x 5 f とすればもう1つ別のフレームで Emacs を起動することができます。これは Emacs を2つ起動するのではありません(表面上は同じように見えるかもしれませんが)から、メモリの使用量や CPU の負荷という観点からも複数個立ち上げるなら新しいフレームを開いたほうが効率よいです。バッファも共有できますしね(ただ C-x C-c とすると全部のフレームが終了するので注意が必要ですが)。

このあたりの操作をまとめると:

C-x 0 複数ウィンドウを開いているとき、現在のウィンドウを閉じる
C-x 1 複数ウィンドウを開いているとき、現在のウィンドウのみにする
C-x 2 ウィンドウを縦に2分割する
C-x 3 ウィンドウを横に2分割する
C-x 4 f 新たなウィンドウを開いてそこにファイルを読みこむ
C-x 5 f 新たなフレームを開いてそこにファイルを読みこむ

もちろん上記 C-x 4、C-x 5 については f のところを b にすればバッファを読み込んで表示させることができます。これも便利な使い方です。

Tips. 複数のファイルを編集するときはウィンドウを分割して編集しよう

それではもう少し進んだファイル操作について見てみましょう。ファイルをピックアップして要らないものを削除したい、またはどこにあるか分からないファイルをディレクトリ一つ一つを当たって探したい、そんなときに dired-mode というのが活躍します。dired-mode に入るには C-x d とタイプして、開きたいディレクトリのパスを入力します。するとそのディレクトリ内のファイル一覧が出るので、n でカーソルが下、p でカーソルが上に動かせ、f や Return キーでファイルを開くことができます。ディレクトリの上で f を押すとそのディレクトリの内部に入っていくことができ、q をタイプすると dired-mode に入っているバッファを1つ抜けます。

dired-mode 内でよく使うキー操作
f 開く
n 次の行(next)
p 前の行(previous)
q バッファを1つ破棄(quit)
d ファイルに削除マークをつける(delete)
x マークをつけた処理を実行(eXecute)
g ファイル一覧を再表示(削除を実行した後更新されていないときなど使う)

web ページの管理などでプロバイダに ftp でつないでページの更新をしたりすることがありますが、Emacs では ftp 先のファイルを手許にあるのと同じように編集できる ange-ftp-mode というのがあります。ange-ftp-mode で ftp サーバにある文章を編集したい場合は、C-x C-f に続けて

Find file: /g830509@user.ecc.u-tokyo.ac.jp:.public_html/index.html

のように入力してください。パスは / (スラッシュ)から始めて、@ (アットマーク)の前は ftp サーバにおけるアカウント名を入れ(ログインしたアカウントと同じときは省略できる)、@ の後には ftp 先のサーバ名を入れます。サーバ名の直後に : (コロン)を書いて、開きたいファイル名を入力すればパスワードを訊かれるので正しく入れると、指定したファイルをバッファに読み込んだ状態で起動します。先に挙げた dired-mode も ange-ftp-mode の中で使えるので、補完ともども試してみてください。
Column. SKK

Emacs を使って文章を書いていると、日本語のかな漢字変換の精度が気になってきます。Linux や FreeBSD 上での日本語入力は FreeWnnCanna などが有名ですが、Emacs 上では SKK というかな漢字変換ソフトが使えます。これは 'Simple Kana to Kanji conversion program' という名のとおり単純な変換方式を採っており、文節を人間が指定して変換するという方式で変換していきます。辞書から単語を探すときも前後の文脈の判断など全くせず、同音異義語は単純に前回引いたものから候補に挙がってくるだけで、辞書の中に探す読みの単語がない場合は自動的に単語登録モードに入ります。これが実は奥の深い仕様で、使っていくうちに自分に必要な単語がどんどん登録されていくし、自分が使う単語はすぐ見つかるようになるのです。論より証拠、いったん SKK を使った人はその魔力に取り込まれて全ての環境で SKK を使わずにはいられなくなるのです :-)

他に SKK の利点を挙げますと、

  • 辞書の登録単語数が桁違いに多い
  • 特権ユーザでなくても利用可能(留学先など一般ユーザで使う場合事実上これ以外に選択肢がない)
  • 旧かなでも関西弁でも自由自在に入力することが可能
  • ローマ字入力でなくかな入力もサポート
  • Emacs lisp で書かれているので Emacs が動けばどこでも動く

などがあります。インストール自体は Emacs 20 上では APEL を入れてから SKK 10.x を入れれば特に問題なく使えるはずです。.emacs の書き方などは SKK 付属の info 等を参照してください。上記 URI からもたどれますが、skkinput や skkfep など、X 上の IM (Input Method)として使うこともできますし、ターミナル上で FEP (FrontEnd Processor) として使うこともできます(ただし一部の機能は使えない)。SKK にはまってしまった人はそれらもコンパイルして使うとよいでしょう ;-)

メールを Emacs で書く

Emacs の操作に慣れてくるとメールも Emacs で書きたくなります。日本でよく使われているのは Semi-gnusMew、それに Wanderlust とありますが、ここでは Wanderlust について説明します。Semi-gnus はニューズリーダとして有名な Gnus をベースにメールなども扱えるようにしたもので、Mew は基本的にメールを扱うことを目標に作られたメールソフトです。Mew は動作が軽いことで有名ですが、ニューズを読むことはできません。Wanderlust は Mew よりは多少動作が遅いのですが、それを補ってあまりあるほどのきれいなスレッド表示/メールボックス表示と、メールもニューズも同じように扱えるインタフェースとで、初めて Emacs でメールを使おうとしている人、もしくは Mew から乗り換えるメールソフトを探している人(Wanderlust のキー操作は Mew とほとんど同じです)には Wanderlust がお薦めです。

Wanderlust のインストールにはいくつか手順がありまして、APEL/FLIM/SEMI というパッケージを Wanderlust のインストール前に入れておかないといけません。それぞれのバージョンも問題になってくる(たとえば Mule で最新版の Wanderlust を使う場合は FLIM でなく CLIME を使わないといけない、とか Nemacs は Wanderlust 2.6.x でサポートが打ち切られた、とか)ので、Wanderlust の web ページを見て推奨されているパッケージを入れましょう。

web ページを見て HTML を書く

[ Top | Memo | Diary | Aerial ]


小町守 (奈良先端科学技術大学院大学), mamoru dot komachi at gmail dot
com
Mamoru KOMACHI (Nara Institute of Science and Technology)
Last modified: ÌÚÍËÆü, 21- 9-2006 20:26:05 JST