Emacsでファイル名変更そりゅ〜しょん

Emacsでファイル名を変更したい!!!!

(LEVEL1) dired + "Rename"

dired内で変更したいファイル名にカーソルを合わせ"R"を入力したあと、ミニバッファに変更後のファイル名を入力する。変更したいファイルが複数あったときにだるい。

(LEVEL2) wdired

dired内の複数ファイル名の編集ができる。wdired-change-to-wdired-modeコマンドを実行したあと、ファイル一覧を好きなように編集してからC-c(wdired-finish-edit)を実行するとファイル名が変更できる。普段バッファ内を編集しているように扱えるので、replace-stringとかすると便利。

しかしサブディレクトリ以下のファイルを同時に編集できない。

(LEVEL3-1) dired-listing-switches

diredのファイル一覧にサブディレクトリの内容も表示して、wdiredで編集する方法。サブディレクトリにカーソルを合わせて、"i"を入力するとサブディレクトリの内容が表示されるが、ターゲットとなるサブディレクトリが複数あるとだるい。

dired-listing-switches変数にはdiredでlsを実行する際に与えるオプションを指定できる。そこで

(setq dired-listing-switches "-FlhR")

とRオプションを加えてあげることでdiredのファイル一覧にサブディレクトリも表示される。ファイルがたくさんあるとだるい。

(LEVEL3-2) find-name-dired

find-name-diredはfindコマンドを利用してファイル名を検索し、ヒットしたファイル一覧をdiredで表示する。僕の場合wdiredモードにするときは一括編集をする時が多いので、find-name-diredで共通部分を探してからwdiredで一括編集する。共通部分を一括変更するときにしか使えない。

ディレクトリもファイル一覧に含めたい場合など、もっと詳しい検索(find)をするならfind-diredを使う。


他にも良い方法があったら知りたい。