2011-12-14 10 views
3

私はquery-replace-regexpをemacsの複数のファイルにまたがって実行したいと考えていました。その方法を説明するthis postが見つかりました。指示に従ってみると、ファイルのワイルドカードを入力した後にエラーが発生しました。find-name-diredのデフォルトの-inameオプションを無効にするにはどうすればよいですか?

find . \(-iname \*.vb \) -exec ls -ld \{\} \; 
Unknown option "-iname" 

残念ながら、私が使用しているfindは、Windows上のMKS Toolkitからであり、それは-inameオプションをサポートしていません。私はemacsのlispファイル中の "iname"の全てを "名前"に置き換え、そしてemacsのバイトコンパイルと再起動を試みました。これは問題を解決しませんでした。以前とまったく同じエラーが発生しました。もう少し掘り下げたら、使用したfindコマンドをカスタマイズできる別のコマンドfind-diredが見つかったので、すでに検索を行ってこの回避策に置き換えました。

質問:私のソースファイルを編集し、再度バイトコンパイルしてからemacsを再起動しても、まだ-inameエラーが表示されるのはなぜですか?私は、将来の検索と置換を複数のファイルに渡って(そして私の好奇心を満たすために)、より永続的なソリューションを探したいと思います。

+3

Emacsの独自のelispファイルの編集は、一般的には悪い考えであり、Emacsのそのバージョンのインストールと同じくらい永久的です。あなたはこれをあなたのinitファイル(またはあなたが全員に適用したい場合はsite-lisp)を介して修正したいと思っています。 – phils

+2

+1 @phils。 Elispには、Emacsのソースを変更せずにカスタマイズできるように設計された、多くの関数、例えばeval-after-loadがあります。ソースを直接変更することで、自分自身(と他の人)を混乱させるように設定します。 Emacsのバグを報告しなければならないと想像してください。 –

答えて

2

変数find-name-argを変更してください。 M-x customize-group find-diredを実行するか、(setq find-name-arg "-name").emacsに入れてください。

私のemacsバージョンでは、初期値はfind-dired.elです。そのファイルを変更して再コンパイルしましたか?

+0

ブリリアント!それは動作します、ありがとう。そして、はい、私は 'find-dired.el'と' -name'に '' --iname''を持ついくつかの他のものを変更しました。 –

関連する問題