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を使う。
他にも良い方法があったら知りたい。