私は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
エラーが表示されるのはなぜですか?私は、将来の検索と置換を複数のファイルに渡って(そして私の好奇心を満たすために)、より永続的なソリューションを探したいと思います。
Emacsの独自のelispファイルの編集は、一般的には悪い考えであり、Emacsのそのバージョンのインストールと同じくらい永久的です。あなたはこれをあなたのinitファイル(またはあなたが全員に適用したい場合はsite-lisp)を介して修正したいと思っています。 – phils
+1 @phils。 Elispには、Emacsのソースを変更せずにカスタマイズできるように設計された、多くの関数、例えばeval-after-loadがあります。ソースを直接変更することで、自分自身(と他の人)を混乱させるように設定します。 Emacsのバグを報告しなければならないと想像してください。 –