ファイルの中身が
ls - list directory contents mv - move filesである commands_file という名前のファイルをEmacs を使って作成します。以下の操 作を行ってください。
File -> Open File...を選択します。 後でキーボードを使って同じことができるように, キー操作 (File メニューの Open File 項目の括弧内の文字) が, 第 5章 (p
最下行のエコー領域に Find file: ~/
というメッセージが現れ
ます。カーソルもエコー領域に移動しましたので,ここにキーボードか
ら文字を入力できます。エコー領域は,文字入力できる状態になったと
き,ミニバッファと呼ばれます。
ウィンドウ下部のモード行には,これから作成するファイルの名前 commands_file が表示されます。カーソルは上部のウィンドウに戻ります。
改行するには <ENTER> を押します。文字の修正には <BS> が使えます。 カーソルの移動には,今回は,矢印のキーを使うことにします。
File -> Save (current buffer)を選択します。キーボードによる方法も確認しておきましょう。
エコー領域 (最下行)に Wrote ... というメッセージが表示され, 保存に成功したことがわかります。これでファイル commands_file ができあ がりました。
例題 1 で作成したファイル commands_file の内容を
ls - list directory contents mv - move files cat - print filesに変更します。また,Emacs でのファイル編集作業と併行して UNIX のコマンド も使ってみます。
emacs &
と打って起動し,
コマンド行から UNIX のコマンドを入力できる状態にしておきます。
既存ファイル commands_file の内容が Emacs のウィンドウに表示さ れ (Emacs に読み込まれ),モード行(下から2行目)には commands_file と表示されます。
図 2は計算機内部の構造を ものすごーく大雑把に表現したものです。
例えば,Emacs を使っているときには,Emacs のプログラムや編集 中のテキスト (文書) はメモリにあります。Emacs がテキストを保 持するのに使うメモリの領域を,Emacs の用語でバッファ (buffer) といいます。
メモリの動作は高速ですが,容量は比較的小さく,計算機を停止さ せれば中身は消えてしまいます。そのため,メモリはデータの永続 的な保存には使えません。
Emacs のウィンドウに表示されるテキストは,ファイル ではなく,バッファの内容です。したがって, Emacs でファイルを作成したり編集するには,まず,そのためのバッファを用意 する必要があります。これを行うのが File -> Open File... (C-x C-f) です。
この操作ではキーボードからファイル名を入力しますが,その名前のファイルが 存在しない場合には,同名の空のバッファが用意されます(例題 1)。入力した名 前のファイルが存在すれば,そのファイルが同名のバッファに読み込まれます (例題 2)。なお,バッファに読み込まれるのはファイルの内容のコピーですから, ファイルを読み込んでも元のファイルが無くなる訳ではありません。
Emacs を終了するとバッファは消えてしまいますので,保存したいバッファの内 容はファイルに入れる必要があります。そのための操作が File -> Save (current buffer) (C-x C-s) です。Emacs のモード行 (下から 2 行目) におけるバッファ名 のすぐ左側の表示が - から ** に変わったら,バッファとファイ ルの内容に違いが生じたこと,すなわち,バッファの内容を変更したのに未保存 であることを表しています。
では,バッファとファイルの違いを確認するために, 以下の操作を行ってください。
emacs &
と打って起動してくださ
い。
commands_file をバッファに読み込んでいなければ,読み込む操作をしてくだ
さい。
File -> Close (current buffer)を実行してください。
バッファを消してもファイルは消えませんね。
答え: ファイル commands_file をバッファに読み込んでください。
cat - concatenate and print filesに変更してください。
モード行の表示が ** に変わりましたね。
バッファの内容を変更しただけでは,ファイルは変わりません。
モード行の表示が - になりましたね。 バッファとファイルの内容が同じになりました。
Emacs を用いてファイルを編集するときの流れをまとめると,次のようになります。
バッファの内容を変更したにもかかわらず,それをファイルに保存しないまま Emacs を終了しようとすると,バッファの内容をファイルに保存するかどうかを 尋ねるメッセージが,ウィンドウ下部のエコー領域に表示されます 12。その場合には,保存の必要性を判断して,y, n, yes, no 等で答えてください。
例えば,第 4.6 節で紹介するチュートリアルの文書に,何か書 き込みをしてから Emacs を終了しようとすると,このメッセージが現れます。 普通はチュートリアルを保存する必要がないので,Save file ... ? に対しては n を,... exit anyway? に対しては yes を打ってください。
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 を使う上での重要な注意事項があります。
この理由により,ここではキー割り当ての設定変更に依らず,一般的に使える方 法でチュートリアルを始めることにします。そのために,まずヘルプを表示しま す。
M-x help <ENTER>ここで help <ENTER> は最下行のミニバッファに対する入力となります。 これを実行すると,ウィンドウが二つに分割され,ヘルプ項目の一覧が現れます。 続いてt を押すと,「あなたが現在見ているのは Emacs 入門ガイドです」 と書かれたチュートリアルが表示されます14。
では,チュートリアルの「*使用不可 (disabled) コマンド」の前までを一応の
目処にして学習しましょう。指示があるとき以外はマウスに触れないで
ください。また,第 5 章
(p ) に,主要な Emacs コマンドの一覧を掲載
していますので,チュートリアルで紹介されたコマンドが載っているかを確認し
たり,チュートリアルのコマンドをメモしながら,落ち着いて学習を進めてくだ
さい。
一度 Emacs を終了してから,次の操作を行ってください。
Find File: ~
/unix/emacs_motion にしてから
<ENTER> を押してください。
ミニバッファでの~
はホームディレクトリを表してい て,~/
file の代りに~
/ subdir/file とすれば,~
の子ディレクトリ (subdir) のファイル (file) を指定したことにな ります。これはファイルの読み込み時に限らず,保存時などで も共通です。