Emacsには、ファイルに対して他にも多くの操作を行うためのコマンドが用意されています。これらはすべて単一のファイルを対象に動作し、ワイルドカード形式のファイル名は指定できません。
M-x delete-file
はファイルの指定を求め、それを削除します。1つのディレクトリ内で多数のファイルを削除する場合は、delete-file よりも Dired を使用する方が便利かもしれません。Dired によるファイルの削除を参照してください。
M-x move-file-to-trash は、ファイルをシステムの ゴミ箱(または リサイクルビン)に移動します。これはほとんどのオペレーティングシステムで利用可能な機能で、ゴミ箱に移動したファイルは、気が変わった場合に後で復元できます。(ゴミ箱に移動したファイルを復元する方法は、システムによって異なります。)
デフォルトでは、Emacsの削除コマンドはゴミ箱を使用しません。一般的な削除コマンドで(利用可能な場合に)ゴミ箱を使用するには、変数 delete-by-moving-to-trash を t
に変更してください。これにより、コマンド M-x delete-file および M-x delete-directory(ファイルディレクトリを参照)のほか、Dired の削除コマンド(Dired によるファイルの削除を参照)にも影響します。M-x delete-file または M-x
delete-directory にプレフィックス引数を指定すると、delete-by-moving-to-trash に関わらず、ゴミ箱を使用せずに直接削除するようになります。
delete-by-moving-to-trash が設定されており、Emacs の Trash
ディレクトリから手動でファイルを削除したい場合、D (dired-do-delete) のようなコマンドは Trash
ディレクトリではうまく動作しません(単にファイルに新しい名前が付くだけで、何も削除されません)。このような操作を行いたい場合は、Trash
ディレクトリに以下のような内容の .dir-locals.el ファイルを作成してください:
((dired-mode . ((delete-by-moving-to-trash . nil))))
ただし、システムの「ゴミ箱を空にする」コマンドを使用すると、この .dir-locals.el
ファイルまで削除されてしまう可能性があるため、この方法はゴミ箱ディレクトリから手動でファイルを削除する場合にのみ行ってください。
変数 remote-file-name-inhibit-delete-by-moving-to-trash が
nil 以外の場合、リモートファイルがゴミ箱に移動されることはありません。代わりに削除されます。
ファイルがバージョン管理下にある場合(バージョン管理を参照)、M-x delete-fileではなくM-x vc-delete-fileを使用して削除してください。バージョン管理対象ファイルの削除と名前変更を参照してください。
M-x insert-file(および C-x i)は、指定したファイルの内容のコピーをポイントの位置にある現在のバッファに挿入し、ポイントは内容の挿入前のままとなります。挿入された内容の後の位置はマークリングに追加されますが、マークは有効になりません(マークリングを参照)。
M-x insert-file-literally は M-x insert-file と同様ですが、ファイルが文字通り挿入される点が異なります。M-x find-file-literally コマンドと同様に、特別なエンコーディングや変換を行わず、ASCII 文字のシーケンスとして扱われます(ファイルの参照 を参照)。
M-x write-region は M-x
insert-file の逆の操作で、リージョンの内容を指定したファイルにコピーします。 M-x
append-to-file はリージョンのテキストを指定したファイルの末尾に追加します。 テキストの蓄積 を参照してください。 変数 write-region-inhibit-fsync は、これらのコマンドおよびファイルの保存に適用されます。
ファイル保存のカスタマイズ を参照してください。
M-x set-file-modes は、ファイル名に続いて ファイルモード を読み取り、そのファイルモードを指定したファイルに適用します。ファイルモード(ファイル権限
とも呼ばれます)は、ファイルの読み取り、書き込み、または実行が可能か、また誰が行えるかを決定します。このコマンドは、chmod
コマンドで受け付けられるものと同じ記号形式または8進数形式でファイルモードを読み取ります。例えば、‘u+x’
は、ファイルの所有者であるユーザーに実行権限を付与することを意味します。ファイルモードをサポートしていないオペレーティングシステムには影響しません。chmod は、この関数の便利なエイリアスです。