Emacs はファイルをバッファーで開きます。編集ではまずバッファーが変わり、保存すると現在の内容が関連付けられたパス名へ書き込まれます。パーミッション、競合するディスク上の変更、そのほかのエラーで書き込みに失敗することがあるため、ミニバッファーのメッセージを読んでください。
高度なテキスト操作 · レッスン 10
Emacs ファイル操作
Emacs でファイルを開く、保存する、別名で保存する、ディスクから読み直す、ファイルバッファーを確認する方法を学びます。
ファイルを開く
find-file を実行する C-x C-f を使い、ミニバッファーへパス名を入力して Enter を押します。
C-x C-f
Emacs は、読み取り可能な既存ファイルをバッファーで開きます。パス名が存在しない場合は、新しいファイルを開くバッファーを準備します。後者の場合、保存に成功するまでディスク上にファイルは存在しません。
パス名の入力中は Tab 補完を使えます。ディレクトリを開くと、通常はテキストファイルとして扱わず、Emacs のディレクトリエディタである Dired が開きます。
パス名の入力を求め、そのファイルを開く Emacs のキーシーケンスはどれですか?
C-x C-f で存在しないパス名を開いた場合、通常、ディスク上のファイルはいつ作成されますか?
現在のバッファーを保存する
save-buffer を実行する C-x C-s で、現在のファイルバッファーを保存します。
C-x C-s
バッファーに関連付けられたファイル名がなければ、Emacs が入力を求めます。書き込みに成功するとバッファーの変更済み表示が消え、失敗すると未保存のデータはバッファーに残り、エラーが報告されます。
現在のファイルバッファーを保存するキーシーケンスはどれですか?
別の名前で書き込む
write-file を実行する C-x C-w でパス名の入力を求め、そこへバッファーを書き込み、その新しいファイルを開くバッファーにします。
C-x C-w
これが Emacs の「名前を付けて保存」の動作です。別のコピーを書き込んだ後も元のパス名を開き続ける操作とは異なります。
現在のバッファーで通常の「名前を付けて保存」を行うキーシーケンスはどれですか?
複数の変更済みバッファーを確認する
save-some-buffers を実行する C-x s で、変更済みのファイルバッファーを調べます。
C-x s
通常、Emacs は対象となる変更済みバッファーごとに保存するか尋ねます。バッファー名を読み、意図的に回答してください。確認なしですべてを保存するショートカットではありません。
通常、C-x s は何をしますか?
ディスクから読み直す
ファイルがディスク上で変更され、現在のバッファー内容を意図的に破棄する場合は、M-x revert-buffer を実行し、確認プロンプトをよく読んでください。読み直すと未保存のバッファー編集を失うことがあるため、どちらの内容を採用するか確認してから使います。
決める前に比較するには、別のコピーを保存するか、バージョン管理や diff ツールを利用します。バッファーが変更済みの場合、再読み込み操作を無害なものとして扱わないでください。
レッスン完了
Emacs ファイル操作 を完了しました
これで、ファイルを開く操作と書き込む操作を混同せず、ファイルバッファーを管理できるようになりました。
C-x C-fでパス名を開く。存在しないファイルは、バッファーを保存したときにだけ作成する。
C-x C-sで現在のバッファーを保存する。C-x C-wで新しい名前へ保存し、そのファイルを開く。C-x sで複数の変更済みバッファーを確認する。