4

同じ形式のファイルのバッチがありbmp、ファイル名は0.bmp 1.bmp... です。ファイル名を変更し99.bmpたい0.bmpです。Windowsでemacsを使用しています。99.bmp1.bmp98.bmpdired-mode

4

3 に答える 3

7

M-x wdired-change-to-wdired-modedired バッファを編集可能にするために使用できます。その後、 dired バッファの末尾から開始する counterを使用した単純なキーボード マクロで、うまくいくはずです。

マクロを使用したくない場合の代替手段は次のとおりです。

M-x replace-regexp
Replace regexp: ^[0-9]+
Replace regexp with \,(- 99 \#&)
于 2012-12-11T09:52:03.700 に答える
2

一般的ではなく、簡単な汚い答えかもしれません:

最初に:C-x C-qdired-mode;

2番目:M-:ヤンクとRETスニペット:

(progn 
  (beginning-of-buffer)
  (while (re-search-forward "\\([0-9]+\\).bmp" nil t)
    (replace-match
     (format "%d.bmp" (- 99 (string-to-number (match-string 1))))
     nil
     nil)))

3番目:C-c C-c変更を保存して完了します。

于 2012-12-11T10:41:10.487 に答える
1

よくわかりませんが、バッファdired-mode内で簡単なスクリプトを実行できます。*scratch*既存のファイル名を別の名前に置き換える場合は、最初にすべてのファイルの名前を変更してから、それらの名前から始めることをお勧めします。

 (progn 
  (dotimes (i 100) 
    (let ((file-name (concat (number-to-string i) ".bmp")))
      (rename-file file-name (concat "old" file-name))))
  (dotimes (i 100)
    (let ((file-name-old (concat "old" (number-to-string i) ".bmp"))
          (file-name-new (concat (number-to-string (- 99 i)) ".bmp")))
      (rename-file file-name-old file-name-new))))

*scratch*それをバッファにコピーし、式を超えて push するとC-x C-e、そのコードがそれを行います。

于 2012-12-11T09:56:06.640 に答える