私はM-x findEmacsでコマンドを探しています。これM-x grepは、コマンドを変更することができ、見つかったファイルへのリンクを含む出力を適切に出力します...)、実行find . -iname '*|*'します(カーソルを垂直バーに配置して--検索パターンの挿入 -- 実装が複雑すぎない場合)。誰かがこれを以前に実装しましたか? 【承知しておりM-x find-grepます】
3 に答える
それはあなたが望むほとんどのことから始めましょうM-xfind-dired: ミニバッファからディレクトリを読み込み、デフォルトで現在のディレクトリに設定し、それから他のfind引数を読み込みます。結果はモードで開かれ、それが得られるのと同じくらいうまくいくと思います(それが冗長すぎるdiredと思う場合は、 MELPAでパッケージを確認してください)。direddired-detailsdired-details+
-iname **次に、オプションを求めているときに、星の間にカーソルを置いて開始しましょう。find-diredソースを見ると、 の値が への初期入力引数として使用さfind-argsれていることがわかりますread-string。この引数は時代遅れで非推奨ですが、非常に便利です。その機能の 1 つは (read-from-minibuffer説明で読んだように)、文字列と整数のコンスが与えられたときに、デフォルトのポイント位置を提供することです。
(defun marius/find-dired ()
(interactive)
(let ((find-args '("-iname '**'" . 10)))
(call-interactively 'find-dired)))
'**'引数はシェル展開の影響を受けるため、アスタリスクを単一引用符で囲みました。
ミニバッファーから独自の引数を読み取る代わりにfind-args、残りのすべてを再バインドしてデリゲートしfind-diredます。通常
find-dired、最後に入力した引数が記憶されfind-argsているため、それらが新しいデフォルトになります。で再バインドすると、への呼び出しletからのこの変更が確実に破棄されるため、 regularは最新の
regularに指定された引数を使用します。regular を使用しなくても問題ないでしょう。ラッパーに与えられた find 引数を regularで使用する場合は、代わりに次の定義を使用します。find-diredfind-dired find-diredfind-diredfind-dired
(defun marius/find-dired ()
(interactive)
(setq find-args '("-iname '**'" . 10))
(call-interactively 'find-dired))
それはあなたの要件を満たしていると思いfind-diredます(コマンドを「-iname」で初期化せず、入力できることを除いて)。
例えば:
- M-x
find-diredRET (実行find-dired) - C-j (デフォルトのディレクトリを受け入れます:
.) -iname "*.foo"RET (コマンドライン引数を入力)
結果はdiredバッファに表示されます。