Emacs/ファイル, バッファの操作/ファイルの作成,編集

Emacsでは,<CTRL>と同時にキーを押すことによって様々な機能を実行できます.表2.1にキー操作とその意味について示します.各々の説明については対応するページを参照してください.


表 2.1: ファイル操作
キー操作 意味 参照ページ
C-x C-f バッファへ読み込むファイルの指定(find file) 2.2.1
C-x C-s バッファの内容をファイルへ保存(save file) 2.2.2
C-x i ファイルの挿入(insert file) 2.2.4
C-x C-w バッファの内容をファイル名を指定して保存(write file) 2.2.3
C-x u, C-_ 操作の取り消し(undo) 2.2.5
C-x z 操作の繰り返し(redo) 2.2.6


2.2.1 ファイルの読み込み -- (C-x C-f)

編集するファイルの指定

Emacsでファイルを編集するには,ファイルをEmacsのバッファに読み込む必要があります. C-x C-fを入力すると,エコーエリアに次のようなメッセージが表示され,カーソルがエコーエリアに移動します.

Find file: ~/_

ここで,バッファに読み込むファイル名を入力して<RET> を押すと,そのファイルがバッファに読み込まれ,また編集するファイルを指定すると,モードラインにバッファ名が表示されます(図2.2).


ディレクトリを指定して読み込み

モードラインに表示されているディレクトリ以外の場所からファイルを読み込む場合,そのファイルのパスを入力する必要があります.ここでの指定方法は相対パスでも絶対パスでも構いません.


複数ファイルの読み込み

すでにファイルがバッファに読み込まれている場合でも, C-x C-fで別のファイルを指定すれば,1つのEmacsで並行して2つのファイルを編集できます.Emacsはそれぞれのファイルに対してバッファを作成します.


条件に該当するファイルの一括読み込み

ファイルを読み込む際に,ファイル名として`4*.tex'など,アスタリスクを用いて指定すると,指定したディレクトリ内の該当するファイル(この場合は,名前が4で始り,.texで終わるファイル)に対して,一括してバッファを作成できます.


図 2.2:ファイルの読み込み
図 2.2:ファイルの読み込み

2.2.2 ファイルへの保存 -- (C-x C-s)

ウィンドウ内のバッファを編集しただけでは,その結果はファイルに反映されません.これらの作業を実際にファイルに反映するには,ファイルに現在のバッファの内容を書き込む必要があります.

この,バッファの内容をファイルに書き込むことを``保存(セーブ)''と呼びます(図2.3).


図 2.3:ファイルへの書き込み
図 2.3:ファイルへの書き込み

C-x C-sを入力すると,エコーエリアに次のメッセージが表示され,ファイルへの書き込みを開始します.

Saving file /home/t01000tf/test...
保存が終了すると,エコーエリアに次のメッセージが表示されます.

Wrote /home/t01000tf/test

また,モードラインのファイル名の左にある`**'の表示はバッファが編集されてから保存されていないことを示しています.`**'の状態で保存すると表示が`-'へ変わります.

なお,`%%'が表示されている場合,そのバッファは読み出し専用で編集できません.

新しくファイルを作成する際には,C-x C-fを用いてファイル名をつけてからバッファの編集を行います.ファイル名をつけないままバッファの編集をしても,結果はC-x C-fで保存するまで,ファイルは作成されないので注意してください.


2.2.3 別ファイルに保存 -- (C-x C-w)

バッファの内容を,読み込んだときとは別のファイルに保存したい場合には, C-x C-wと入力します.エコーエリアに次のようなメッセージが表示され,カーソルはエコーエリアへ移動します.


Write file : ~/_
ここでファイル名を入力し<RET> を押すと,バッファの内容がそのファイル名で保存されます.

なお,ファイル名を指定して保存すると,バッファ名も指定されたファイル名に変更されます.以降の編集作業を保存する際には新しく指定したファイルに対して行われます.

指定した新しいファイルと同じ名前を持つファイルが同じディレクトリに存在した場合,古いファイルを上書きしてしまうので注意してください.


2.2.4 ファイルの挿入 -- (C-x i)

現在作業中のバッファに,他のファイルの内容を挿入するにはC-x iと入力します.

Insert file: ~/_
ここでファイル名を入力して<RET> を押すと,バッファの中のカーソル位置に,指定したファイルの内容が挿入されます.


2.2.5 操作の取り消し -- (C-x u,C-_)

バッファに対して何らかの編集作業を行った後,編集作業をする以前の状態に戻したいときには,C-x uまたはC-_を入力します.これにより,誤って消去してしまったなどの編集ミスを取り消せます.このように操作を取り消すことを``Undo''といいます.Undoを繰り返すことによって,場合によってはバッファの内容を編集開始時の状態まで戻せます.しかし,戻せる分量には限界があるので大量の編集や削除を行った場合には完全にもとに戻せるとは限りません.


2.2.6 操作の繰り返し -- (C-x z)

バッファに対して何らかの編集作業を行った後,その作業を繰り返す場合には, C-x zを入力します.これにより,前に行った作業を反復して実行できます.このように操作の反復を行うことを``Redo''といいます.Redoを繰り返すことによって,作業を効率的に行えます.なお,C-x zは,一度実行した後は zを押すだけで繰り返しを行えます.Undoと組み合わせることで,一度取り消した作業を再びやり直すUndoを繰り返し行うなどの作業を行えます.