次のページ 前のページ 目次へ

1. テキスト処理(emacs,xemacs)

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

X ウィンドウ上でエディタ xemacs や emacs を起動するには, ターミナルktermでコマンドを入力します. ( )

$ xemacs                           xemacs の起動
ファイル名を与えて起動すると,そのファイルが起動時に読み込まれます.
$ emacs test.c                     test.c を読み込んで emacs を起動

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

$ emacs -nw                        コンソール上での emacs の起動

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

ファイル操作等はメニューからも行うことができますが,できるだけキー操作を覚えたほうが作業効率がよくなります.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]」の意味です.

1.1 emacs の画面

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

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

バッファの編集状況等の情報は,モードラインに表示されます.図の例では次のことがわかります.

1.2 文字入力

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

日本語入力システムは,Vine Linux 2.5CRでは,Wnn7と Canna (かんな)を選択できます.FTP版ではFreeWnnとCannaから選択できます.選択方法は,第「Xアプリケーションでの日本語入力」節を参照してください.

1.3 カーソル移動

(表)

キー操作         意味
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    指定行へ移動 

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

                           C-p または↑(上へ, previous)
C-b または←(左へ, backward)         +          C-f または→(左へ, forward)
                           C-n または↓(下へ, next)

また,C-v または PgDn で一画面前進,M-v または PgUp で一画面後退します.その他,カーソル移動のための様々なキーがあります.

1.4 文字削除

(表)

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

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

1.5 文字列検索・置換

(表)

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

カーソル行以降の文字列検索には,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キーで補完しながら入力することができます.候補のコマンドが複数あるときには,候補一覧が表示されます.

1.6 アンドゥ (取消)

(表)

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

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

1.7 カット/コピー/ペースト

(表)

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

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

  1. コピーしたい部分の先頭にカーソルを移動します.
  2. C-Space を入力します(これで先頭位置が記憶されます).
  3. コピーしたい部分の終りにカーソルを移動します.
  4. M-w を押す(これで先頭位置からこの終りの部分までが記憶されます. この部分をリージョン(region:領域)と呼びます.
  5. コピー先にカーソルを移動します.
  6. C-y を入力します.これでコピー完了です.

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

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

1.8 ウィンドウ操作

(表)

キー操作  意味
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     現在のウィンドウに表示するバッファを指定する

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

例えば 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キーを押してください.

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

(表)

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

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

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


次のページ 前のページ 目次へ