next up previous contents
Next: 5 主な Emacs コマンドの一覧 Up: UNIX 基礎演習 B 組 Previous: 3 GNU Emacs を使おう

Subsections


4 Emacsによるファイル編集の基本操作

4.1 例題 1 -- ファイルの新規作成

ファイルの中身が

ls - list directory contents
mv - move files
である commands_file という名前のファイルをEmacs を使って作成します。以下の操 作を行ってください。

  1. 適切な UNIX のコマンドを実行し, 既存のファイルの名前を調べてください。もし commands_file という ファイルが存在したら,ファイル名を変更するか,不要であれば削除し てください。

  2. Emacs を起動するためにコマンド行から emacs を実行してく ださい。

  3. ファイルを新しく作成するには,Emacs のメニューバーからマウスで
    File -> Open File...
    を選択します。 後でキーボードを使って同じことができるように, キー操作 (File メニューの Open File 項目の括弧内の文字) が, 第 5章 (p [*]) の Emacs コマンド一覧のどこに載っているかを確認しておきましょう。
    最下行のエコー領域に Find file: ~/ というメッセージが現れ ます。カーソルもエコー領域に移動しましたので,ここにキーボードか ら文字を入力できます。エコー領域は,文字入力できる状態になったと き,ミニバッファと呼ばれます。

  4. 作成するファイルの名前 commands_file をミニバッファに入 力して <ENTER> を押しましょう。入力を誤ったら,<ENTER> を押す前に <BS> を使って修正するか,C-g を押して 3. からやり直してください。
    ウィンドウ下部のモード行には,これから作成するファイルの名前 commands_file が表示されます。カーソルは上部のウィンドウに戻ります。

  5. ファイルに書き込むべき内容 (ls list ...) をEmacs の ウィンドウに入力してください。

    改行するには <ENTER> を押します。文字の修正には <BS> が使えます。 カーソルの移動には,今回は,矢印のキーを使うことにします。

  6. Emacs に入力したテキスト(文書)をファイルに保存するには,
    File -> Save (current buffer)
    を選択します。キーボードによる方法も確認しておきましょう。
    エコー領域 (最下行)に Wrote ... というメッセージが表示され, 保存に成功したことがわかります。これでファイル commands_file ができあ がりました。

  7. Emacs を終了してから,ファイルの内容を UNIX のコマンドで確認して ください。

4.2 例題 2 -- 既存ファイルの編集

例題 1 で作成したファイル commands_file の内容を

ls - list directory contents
mv - move files
cat - print files
に変更します。また,Emacs でのファイル編集作業と併行して UNIX のコマンド も使ってみます。

  1. Emacs を起動します。ただし,今回は emacs & と打って起動し, コマンド行から UNIX のコマンドを入力できる状態にしておきます。

  2. ファイル commands_file が存在することを,UNIX のコマンドを使って確認し てください。もし,ファイル名が違っていたら,正しいものに変更して ください。

  3. 編集したいファイル commands_file を開きます。方法は例題 1 でファイルを 新規作成したときと同じです。メニューでは File -> Open File... ですが,是非, キーボード操作で行ってみましょう。最下行のミニバッファにはファ イル名 commands_file を入力して <ENTER> を押してください。
    既存ファイル commands_file の内容が Emacs のウィンドウに表示さ れ (Emacs に読み込まれ),モード行(下から2行目)には commands_file と表示されます。

  4. ファイルに追加すべき内容 (cat ...) を Emacs のウィンドウに入力しましょう。

  5. 例題 1 と同じ方法で,Emacs のウィンドウに表示されている内容をファ イルに保存してください。 Emacs は終了しないでください。

  6. ファイル commands_file の内容を cat コマンドで確認しておきましょ う。


4.3 ファイルとバッファ

図 2は計算機内部の構造を ものすごーく大雑把に表現したものです。

CPU
(central processing unit) は計算機の頭脳にあたる役割をし,計 算機の動作を制御したり,様々な計算を行います。

主記憶装置
(main memory; 以下,単にメモリと呼ぶ) は,実行中のプロ グラムやデータの置き場であり,CPU はメモリに対して必要なデー タを読み書きします11

例えば,Emacs を使っているときには,Emacs のプログラムや編集 中のテキスト (文書) はメモリにあります。Emacs がテキストを保 持するのに使うメモリの領域を,Emacs の用語でバッファ (buffer) といいます。

メモリの動作は高速ですが,容量は比較的小さく,計算機を停止さ せれば中身は消えてしまいます。そのため,メモリはデータの永続 的な保存には使えません。

補助記憶装置
はメモリに比べて動作が遅い反面,容量が大きく,中身は 計算機を停止しても消えません。 ファイルは補助記憶装置の中にあります。

図 2: ファイルとバッファ
\includegraphics[clip]{file-buffer.eps}

Emacs のウィンドウに表示されるテキストは,ファイル ではなく,バッファの内容です。したがって, Emacs でファイルを作成したり編集するには,まず,そのためのバッファを用意 する必要があります。これを行うのが File -> Open File... (C-x C-f) です。

この操作ではキーボードからファイル名を入力しますが,その名前のファイルが 存在しない場合には,同名の空のバッファが用意されます(例題 1)。入力した名 前のファイルが存在すれば,そのファイルが同名のバッファに読み込まれます (例題 2)。なお,バッファに読み込まれるのはファイルの内容のコピーですから, ファイルを読み込んでも元のファイルが無くなる訳ではありません。

Emacs を終了するとバッファは消えてしまいますので,保存したいバッファの内 容はファイルに入れる必要があります。そのための操作が File -> Save (current buffer) (C-x C-s) です。Emacs のモード行 (下から 2 行目) におけるバッファ名 のすぐ左側の表示が - から ** に変わったら,バッファとファイ ルの内容に違いが生じたこと,すなわち,バッファの内容を変更したのに未保存 であることを表しています。

4.3.0.1 練習

では,バッファとファイルの違いを確認するために, 以下の操作を行ってください。
  1. Emacs が起動していなければ,emacs & と打って起動してくださ い。 commands_file をバッファに読み込んでいなければ,読み込む操作をしてくだ さい。

  2. Emacs のウィンドウに表示されている, commands_file という名のバッファを 消すために
    File -> Close (current buffer)
    を実行してください。

  3. UNIX のコマンドを使って,消したバッファと同じ名前のファイルが存在 するか,確認してください。
    バッファを消してもファイルは消えませんね。

  4. Emacs を終了せずに,引き続き commands_file を編集するにはどうしたらいい でしょう?

    答え: ファイル commands_file をバッファに読み込んでください。

  5. Emacs のモード行 (下から 2 行目) におけるバッファ名 ( commands_file ) のすぐ左側の表示が - であることを確認してから, バッファ (Emacs のウィンドウ) 3 行目の cat の説明を
    cat - concatenate and print files
    に変更してください。

    モード行の表示が ** に変わりましたね。

  6. UNIX のコマンドでファイル commands_file の内容を確認してください。
    バッファの内容を変更しただけでは,ファイルは変わりません。

  7. バッファの内容をファイルに保存してください。
    モード行の表示が - になりましたね。 バッファとファイルの内容が同じになりました。

  8. ファイル commands_file の中身を確認してください。


4.4 ファイル編集の流れ

Emacs を用いてファイルを編集するときの流れをまとめると,次のようになります。

  1. Emacs を起動する。
  2. 編集したいファイルをバッファに読み込む。または,新規ファイル用の バッファを用意する。
  3. バッファへの文字の追加・削除・変更などの文書編集作業を行う。
  4. バッファの内容をファイルに保存する。
  5. 必要に応じて 2 から 4 の作業を繰り返す。複数の 文書を編集したい場合でも,Emacs を終了して再度起動する必要はない。
  6. すべての作業が終わったら Emacs を終了する。

4.5 終了時のファイル保存

バッファの内容を変更したにもかかわらず,それをファイルに保存しないまま Emacs を終了しようとすると,バッファの内容をファイルに保存するかどうかを 尋ねるメッセージが,ウィンドウ下部のエコー領域に表示されます 12。その場合には,保存の必要性を判断して,y, n, yes, no 等で答えてください。

例えば,第 4.6 節で紹介するチュートリアルの文書に,何か書 き込みをしてから Emacs を終了しようとすると,このメッセージが現れます。 普通はチュートリアルを保存する必要がないので,Save file ... ? に対しては n を,... exit anyway? に対しては yes を打ってください。


4.6 チュートリアルで学ぼう

Emacs 起動時のメッセージに

Important Help menu items:
Emacs Tutorial          Learn-by-doing tutorial for using Emacs efficiently.
と記されているとおり,Emacs を効率よく使う方法を学ぶためのチュートリアル があります。Help メニューには ``Emacs Tutorial (C-h t)'' という項目があ りますので,マウスでこれを選択するか,CTRL-h に続いて t を押せばチュー トリアルを始めることができるはずなのですが,その前に,ワークステーション 室で Emacs を使う上での重要な注意事項があります。

注意: C-h の機能

Emacs の標準設定では C-h にヘルプ表示の機能が割り当てられているのです が,ワークステーション室の Emacs では,C-h の機能がカーソル左の 1 文字 削除に変更されています13。このため,Emacs の標準設定を 前提に書かれた文書等で C-h を押す指示があるときに,そのとおりの操作を してもうまくいきません。

この理由により,ここではキー割り当ての設定変更に依らず,一般的に使える方 法でチュートリアルを始めることにします。そのために,まずヘルプを表示しま す。

M-x help <ENTER>
ここで help <ENTER> は最下行のミニバッファに対する入力となります。 これを実行すると,ウィンドウが二つに分割され,ヘルプ項目の一覧が現れます。 続いてt を押すと,「あなたが現在見ているのは Emacs 入門ガイドです」 と書かれたチュートリアルが表示されます14

では,チュートリアルの「*使用不可 (disabled) コマンド」の前までを一応の 目処にして学習しましょう。指示があるとき以外はマウスに触れないで ください。また,第 5 章 (p [*]) に,主要な Emacs コマンドの一覧を掲載 していますので,チュートリアルで紹介されたコマンドが載っているかを確認し たり,チュートリアルのコマンドをメモしながら,落ち着いて学習を進めてくだ さい。

4.7 練習

一度 Emacs を終了してから,次の操作を行ってください。

  1. Emacs を emacs & で起動して,次の内容を持つファイル emacs_motion を作成してください。できるだけマウスは使わないようにしま しょう。
              backward forward
    character C-b      C-f
    line      C-p      C-n
    ファイルを作成したら,適切な UNIX コマンドを使って,ファイルの内 容を確認してください。まだ Emacs は終了しないでください。

  2. 起動中の Emacs を使って,既存のファイル commands_file に,これまで と同じ形式で,cp と rm の説明を追加してください。各コマンドの説明 は,man コマンドを使って表示されるマニュアルページの中の,NAME 欄 の記述に従ってください。 作業を終えたら Emacs を終了してください。

  3. ホームディレクトリ以外に存在するファイルを Emacs に読み込む操作を してみましょう。
    1. ホームディレクトリに unix というディレクトリがあることを確 認してください。無ければ mkdir コマンドで作成してください。
    2. mv コマンドを使って emacs_motion を unix に移動してください。
    3. ホームディレクトリで Emacs を起動し,C-x C-f してくだ さい。
    4. ミニバッファを Find File: ~/unix/emacs_motion にしてから <ENTER> を押してください。
      ミニバッファでの ~ はホームディレクトリを表してい て,~/file の代りに~/ subdir/file とすれば,~ の子ディレクトリ (subdir) のファイル (file) を指定したことにな ります。これはファイルの読み込み時に限らず,保存時などで も共通です。
    5. emacs_motion が読み込まれたことを確認したら,Emacs を終了して ください。
    6. ディレクトリ unix の emacs_motion をホームディレクトリに移動 してください。

  4. まだ時間のある人は,チュートリアルの続きを学習しましょう。


next up previous contents
Next: 5 主な Emacs コマンドの一覧 Up: UNIX 基礎演習 B 組 Previous: 3 GNU Emacs を使おう

平成17年12月7日