第 6章ユーティリティー

6.1. テキストエディタ(emacs,xemacs)

UNIX 上で文章やプログラムなどを作成する場合によく使われるエディタが emacs や xemacs です。キーでの操作方法はどちらもほとんど同じですが、xemacs のほうがよりグラフィカルでツールバーもありますので、初心者にはとっつきやすいかもしれません。xemacs は VinePlus に収録されています。また、emacs と同様のキー操作のエディタで軽いものに ng, jed などもあります。

エディタ xemacs や emacs を起動するには、 GNOME 端末などでコマンドを入力します。

例 6-1. emacsの起動

$ emacs

例 6-2. xemacsの起動

$ xemacs

例 6-3. ファイル名を与えて起動

ファイル名を与えて起動すると、そのファイルが起動時に読み込まれます。例えば、emacsを使ってtest.cを編集したい場合は、次の様にします。

$ emacs test.c

例 6-4. コンソール上での起動

コンソール上で emacs や xemacs を起動するときにはオプション-nwをつけます。 [1] この場合ウィンドウは表示されません。

$ emacs -nw

ファイル操作等はメニューからも行うことができますが、できるだけキー操作を覚えたほうが作業効率がよくなります。emacs や xemacs では日本語チュートリアルがありますので、ぜひ試してみて下さい。日本語チュートリアルは、emacs の場合はメニューバーの "help"/"Emacs Tutorial" で、xemacs の場合は "ヘルプ"/"基本"/"Tutorials"/"日本語" を選ぶと起動します。

なお、emacsやxemacsの使用中に表示がおかしくなったら

C-g ([Ctrl]+[G])
を連打すると、かなりの場合もとの状態に戻ります。

また、

C-x C-c ([Ctrl]+[X]のあとに[Ctrl]+[C])
で emacs(xemacs) を終了します。

注意

emacsやxemacsでは、「C-」が「[Ctrl]を押しながら」を意味し、「M-」が「[Alt]を押しながら」もしくは「[ESC]を押したあとに」という意味になります。たとえば「C-n」は「[Ctrl]+[N]」を、「M-v」は「[Alt]+[V]」もしくは「[ESC][V]」の意味です。

図 6-1. emacsの画面

図 6-2. xemacsの画面

6.1.1. バッファ

emacs や xemacs では、編集中の文書はバッファと呼ばれるメモリ領域に読み込まれ、このバッファの内容に対して書き込みや修正を行います。ファイルに保存する命令を実行した時にはじめて、バッファの内容はディスク上のファイルに書き込まれます。

バッファの内容はウィンドウに表示されます。ウィンドウは複数用意することができ、そこに複数のバッファの内容や、同じバッファの違う部分を表示して編集を行うことができます。

バッファの編集状況等の情報は、最下部のモードラインに表示されます。

6.1.2. 文字入力

ウィンドウにカーソルがある時、キーボードから入力した文字はカーソル位置に挿入され、カーソルが進みます。日本語を入力する時には、'C-\'で日本語切替えモードになります。 もう一度'C-\'を押すとアルファベットの入力モードに戻ります。

日本語入力システムについては、項5.4を参照して下さい。

6.1.3. カーソル移動

編集中のカーソルの移動は矢印キーの他、以下のようなキーで移動できます。

表 6-1. カーソル移動

キー操作意味
C-b または ←一文字左へ
C-f または →一文字右へ
C-p または ↑一文字上へ
C-n または ↓一文字下へ
C-v または PgDn次の画面に進む
M-v または PgUp前の画面に戻る
C-dカーソル位置の文字を削除
C-kカーソル位置から行末までの文字を削除
C-e行の一番右へ
C-a行の一番左へ
M-f一単語右へ
M-b一単語左へ
M-g <行番号>指定行へ移動 (xemacsのみ)
M-x goto-line指定行へ移動

6.1.4. 文字削除

カーソル位置の文字の削除は C-d を用います。その他単語の削除や行末の削除等のキーもあります。

表 6-2. 文字削除

キー操作意味
C-dカーソル位置の文字を削除
M-dカーソル位置から一単語削除
C-kカーソル位置から行末までの文字を削除
M-kカーソル位置から文末までの文字を削除

6.1.5. 文字列検索・置換

カーソル行以降の文字列検索には、C-s を用います。C-s を入力するとミニバッファに

I-search:
と表示されるので、検索したい文字列を入力して下さい。検索の終了は C-g を押します。

一度入力した文字列を続けて検索したい時には、C-s を続けて2回押します。C-s の代わりに C-r を用いるとカーソル位置より前にある検索文字列を表示します。日本語の文字列を検索する場合は、C-sの後にEnterを押してから、C-\でかな漢字変換モードにしてから入力して下さい。

確認付きの文字列の置換を行うには M-% を用います。M-% を入力すると

Query-replace:
とミニバッファに表示されますので、まず置換したい文字列を入力します。例えば, C言語プログラムでint を long にしたいときには、M-%の後に int と入力し、Enterキーを押します。ミニバッファの表示が以下のように代わるので、ここで long を入力し, Enterキーを押します。

Query-replace int with: long

置換する文字列 int があるとそこで、以下のように表示されます。

Query-replace int with long: (? for help)

ここで、スペースキーか'y'を押せば置換が行われ、'n'を押すと置換は行わず、次の候補に移動します。終了するときには、Enterキーか'q'を入力します。上に表示されている通り '?' を入力すればコマンドのリストが表示されます。

文字列の置換を確認なしに一括して行いたいときには、まず一括置換を開始したい場所にカーソルを移動し、M-x を押します。このとき、ミニバッファの表示は以下のようになります。

M-x

ここで、replace-string と入力し、Enterキーを押します。

M-x replace-string

その後は、確認のある場合の文字列置換の場合と同様に、置換のための文字列を入力すれば、一括置換が行われます。

emacs には replace-string の他、非常にたくさんのコマンドがあり、M-x は、このコマンドを入力するのに使われます。コマンドの名前はTabキーで補完しながら入力することができます。候補のコマンドが複数あるときには、候補一覧が表示されます。

表 6-3. 文字列検索・置換

キー操作意味
C-s文字検索 (カーソル行以降で検索)
C-r文字検索 (カーソル行より前で検索)
M-%文字列置換(確認あり)
M-x replace-string文字列置換(確認なし)

6.1.6. アンドゥ (取消)

実行したコマンドを取り消して、バッファを元の状態に戻すには、C-x u (または C-_ )を用います。連続して C-x u を用いると、実行した回数だけ前の状態に戻ります。

表 6-4. アンドゥ (取消)

キー操作意味
C-x u または C-_アンドゥ(実行したコマンドの取消)

6.1.7. カット/コピー/ペースト

編集中のバッファの一部分を別の場所にコピーするには以下のような手順で行います。

  1. コピーしたい部分の先頭にカーソルを移動します。

  2. C-Space を入力します(これで先頭位置が記憶されます)。

  3. コピーしたい部分の終りにカーソルを移動します。

  4. M-w を押す(これで先頭位置からこの終りの部分までが記憶されます。この部分をリージョン(region:領域)と呼びます。)

  5. コピー先にカーソルを移動します。

  6. C-y を入力します。これでコピー完了です。

一部分を削除したい時には、上のコピーの手続きで、M-w を入力するかわりに、C-w を入力すれば、設定したリージョンは削除され、記憶されます。

一部分を移動したい時には、上の手続きで削除を行った後、移動先へカーソルを持って行きコピーの場合と同様に C-y を入力すれば、削除され、記憶されているリージョンがそこに出力されます。

表 6-5. カット/コピー/ペースト

キー操作意味
C-space始点のマーク
M-w始点から現在のカーソル位置までを記憶(コピー)
C-w始点から現在のカーソル位置までを削除して記憶(カット)
C-y記憶内容をカーソル位置に貼付け(ペースト)

6.1.8. ウィンドウ操作

複数のファイルを編集する場合には、ウィンドウを複数開いて、各ウィンドウに、同じバッファの異なる位置を表示したり、複数のバッファを表示したりして編集することができます。

例えば C-x 2 を入力するとカーソルのあるウィンドウが上下2つに分割されます。もとの通り分割されたウィンドウを一つに戻すには、C-x 1 を入力すれば、カーソルのあるほうのウィンドウのみの表示になります。分割したウィンドウ間のカーソル移動には C-x o を用います。分割したウィンドウの境界はマウスでドラッグすれば移動することもできます。

また、C-x 5 2 を入力すると、あたらしいウィンドウがつくられます。複数のウィンドウ間のカーソル移動には C-x 5 o を用います。

現在のウィンドウに表示するバッファを変更したい時には C-x b を入力すると, 以下のように表示されます。

Switch to buffer: (default test.txt)

ここで、ウィンドウに表示したいバッファ名を入力し、Enterキーを押せば表示バッファが切り替わります。ここで、候補のバッファの一つが上のように default の後ろに表示されます。この候補でよいときには単にEnterキーを押して下さい。

表 6-6. ウィンドウ操作

キー操作意味
C-x 2ウィンドウを上下に分割
C-x 3ウィンドウを左右に分割
C-x o分割したウィンドウ間をカーソル移動
C-x 0分割したウィンドウのうちカーソルのあるほうを閉じる
C-x 1分割したウィンドウのうちカーソルの無いほうを閉じる
C-x 5 2新しいウィンドウ(フレーム)を開く
C-x 5 oウィンドウ間でカーソル移動
C-x 5 0カーソルのあるウィンドウを閉じる
C-x b現在のウィンドウに表示するバッファを指定する

6.1.9. ファイル一覧ウィンドウでの操作

C-x C-b で編集中のバッファの一覧が表示されます。この一覧表示をしてるウィンドウに C-x o で移動すると、各バッファについていろいな操作を行えます。カーソルの移動は、編集時と同様に C-n, C-p なども使えますが、この一覧表示のバッファでは単に n や p でも移動できます。

ウィンドウに表示したいバッファ名の位置にカーソルを移動し、1 を入力するとウィンドウにはそのバッファの内容が表示されます。その他、削除マークや保存マーク等をつけて、一括して削除や保存と言った作業も行えます。できる操作の一覧は「?」で表示されます。

表 6-7.

キー操作意味
nカーソルを次の行へ進める
pカーソルを前の行へ戻す
1カーソル行のバッファを現在のウィンドウいっぱいに表示する
fカーソル行のバッファを現在のウィンドウに表示する
dカーソル行のバッファに削除マークをつける
sカーソル行のバッファに保存マークをつける
x削除マークのあるバッファを削除し、保存マークのあるバッファをファイルに保存する
uバッファについているマークを消します。

注意

[1]

オプション-nwは No Window (ウィンドウなし)という意味です。