2012-05-21 33 views
0

我也有類似的問題,在Case變換

Emacs: regular expression replacing to change case

我想使用Emacs的文件瀏覽器模式Dired重命名文件從08 - hey you.mp3來解決08 - Hey you.mp3

I型% R以取代\1\,(upcase \2)\3^\([0-9]* - \)\([a-z]\)\(.*\)$,我得到一個錯誤

Invalid use of `\' in replacement text 

當我查詢替換,正則表達式相似的正則表達式\([0-9]* - \)\([a-z]\)\(.*\)通過\1\,(upcase 2)\3在一個普通的文本緩衝區我沒有問題。唯一的輸入差異是圍繞^$,這是需要在http://www.gnu.org/software/emacs/manual/html_node/emacs/Transforming-File-Names.html#Transforming-File-Names解釋,但錯誤的來源似乎是\,(upcase),這似乎不可用於Dired,因爲我沒有這個錯誤,當我使用例如\1\3\2作爲替換正則表達式。

我在結束調用來自dired-string-replace-matchreplace-match dired電話dired-do-rename-regexp使用Emacs 23.2.1

回答

2

% R,並更換匹配不支持elisp的替代品。

你可以做的就是利用wdired,它允許你編輯目錄列表爲純文本。

C-XÇ-Q(即通常的toggle-read-only結合)將dired和wdired之間切換。一旦進入wdired,您可以使用正常的搜索和替換,包括elisp替換模式。