0

私はM-x findEmacsでコマンドを探しています。これM-x grepは、コマンドを変更することができ、見つかったファイルへのリンクを含む出力を適切に出力します...)、実行find . -iname '*|*'します(カーソルを垂直バーに配置して--検索パターンの挿入 -- 実装が複雑すぎない場合)。誰かがこれを以前に実装しましたか? 【承知しておりM-x find-grepます】

4

3 に答える 3

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))
于 2013-01-29T22:30:48.087 に答える
1

それはあなたの要件を満たしていると思いfind-diredます(コマンドを「-iname」で初期化せず、入力できることを除いて)。

例えば:

  • M-xfind-diredRET (実行find-dired)
  • C-j (デフォルトのディレクトリを受け入れます: .)
  • -iname "*.foo" RET (コマンドライン引数を入力)

結果はdiredバッファに表示されます。

于 2013-01-29T22:26:01.727 に答える