ファイル名はよく知っていますが、覚えていないか、正確なディレクトリを指定するのが面倒です。私はfind *ファイルx/y/*/some_file.txtを実行できるようにしたいと思っています*ここで*は現在のディレクトリの代わりに再帰的なディレクトリを検索することができます。ディレクトリ内でファイルを再帰的に見つけるには
答えて
Iciclesコマンドicicle-locate
(ご使用のOSにlocate
プログラムがない場合は、icicle-locate-file
)が作成されます。 Locate a file anywhere under a given directory(~HOME
またはルートディレクトリを含む)。
絶対ファイル名(パスとファイル名)の任意の部分と照合することができます。正規表現、部分文字列、ファジーのマッチングなど、さまざまな種類のマッチングを使用できます。
ido-find-file
はこれを行います:あなたが入力したファイル名が現在のディレクトリに 何も一致しない場合、それはあなたのシステム上のすべてのファイルに対して書いたもの に一致するようlocate
のようなものを使用しています。
セットアップは、単に1つのラインである。この後
(ido-mode)
、C-XのC-Fはido-find-file
を呼び出します。私はそれが好きなので
(setq ido-enable-flex-matching t)
、それをあなたはlocate
以上の結果は、 すなわちfoo
もfroo
に一致するだろう: はまた、私は通常追加します。
これは再帰的には見つかりません。それは現在のディレクトリ内のファジー検索だけです! Flplrはより良い – mythicalcoder
編集:私はprojectile
とよく似ています。私の他の答えを見てください。
見つける-recursive.elがある:http://www.webweavertech.com/ovidiu/emacs/find-recursive.txt
は、それをダウンロードして、あなたのロードパスに入れて、あなたの.emacsでそれを必要とする:(それはELPAまたはからは利用できませんEL-取得)
(require 'find-recursive)
Mx find-recursiveを呼び出すと、再帰的に検索するファイル名、ベースディレクトリが要求され、結果リストの中から1つのファイルを選択する必要があります。それは残念ながらidoに統合されていませんが、私はそれが好きです、それは時々有用です。
プロジェクトディレクトリにあるファイルの場合、同じ著者がファジー検索ライブラリを使用するFiplrを使用しました。
https://github.com/d11wtq/fiplr
これはMELPAから入手可能です。私はhelm-projectile
を使用しています:私は試していない
他の解決策は、私は長い間、その機能のために見てきたと私は今、私が見つけたものに満足していhttps://github.com/technomancy/find-file-in-project
これは軽量で目的を果たします。 – mythicalcoder
です。
Projectile
は、プロジェクト対話ライブラリです。プロジェクトはVCSディレクトリまたは.projectileファイルを含むディレクトリです。(あなたがpackages.el
とそれをインストールすることができます)を見つける(純粋なEmacsはあまりにも実装を提供していますLISP)
https://github.com/bbatsov/projectile
GNUに基づいています。単独で使用することもできます:projectile-find-file
(またはprojectile-mode
およびC-c p f)に電話してください。デフォルトでは完了のためにido
が使用されていますが、その場合は私はhelm-projectile
というインターフェースを好んでいます。
私の同僚は、その機能のために崇高なテキストを使用するように指示し続けました。幸いにも、私は発射体を発見しました:)
弾丸は素晴らしいです。使いやすく、簡単です。 – gosukiwi
ここでは、検索されたファイルやサブディレクトリに対して選択性を与えるソリューションです。それを使用するにはDired+とIciclesの両方が必要です。
Diredでのみ使用されるコマンドは、icicle-visit-marked-file-of-content-recursive
(またはそれの-other-window
バージョン)です。 M-+ C-F
にバインドされています(他のウィンドウの場合はM-+ C-O
を使用してください)。大文字の場合はF
とO
です。
それは何:diredはいる
それは完成のための候補として、提供し、任意のマークのサブディレクトリには、現在のdiredのディレクトリにマークされたファイルをすべて、pslusそれらのすべてバッファ、等々。
すべてのミニバッファ入力に一致する任意の数の候補を訪問することができます。ミニバッファの入力パターンと一致するものを訪問し、パターンを変更して他のものにアクセスすることができます。これらはすべて同じコマンド呼び出しで行います。
- あなたの入力は(二部に分離することができ、あるファイルコンテンツ
マッチング
- ファイル名をマッチング
C-M-j
を打つことによって:ファイルn ame部分とファイル内容部分で構成されています。ファイル名を照合して選択肢を絞り込み、それらのファイルのテキストを照合してさらに絞り込みます。この検索は高速です。ファイル内で1つの一致が見つかるとすぐに成功します。どちらの部分も省略することができます:ファイル名のみ(高速)またはファイル内容(緩やか、自然)と一致させることができます。
入力パターン - progressive completionを組み合わせることができます。あなたが望むものだけを扱う単一の正規表現を思いつくことよりも、パターンを追加したり、段階的かつインタラクティブに追加する方がはるかに簡単です。
各入力パターン(2つの部分からなるパターンの各部分)は正規表現にすることができます。ファジーマッチングも利用できます。
別のDiredバッファではなく、Diredバッファにサブディレクトリを挿入することもできます。Diredバッファにマークされているファイルとサブディレクトリは同じ方法で処理されます。
あなたがマークされているサブディレクトリに降りたくない場合は、あなたが(他のウィンドウのため
C-O
)C-F
にバインドされたコマンド、icicle-visit-marked-file-of-content
の非再帰的なバージョンを使用することができます。あなたもBookmark+を使用する場合は
は、あなたはdiredバッファまたはのdiredバッファのセットをブックマークすることができます。ブックマークは、どのファイルとサブディレクトリがマークされているか、サブディレクトリはどのファイルとサブディレクトリが省略されているかを記録します。このようなブックマークにジャンプすると、これらのすべてが復元されます。
M-x find-name-dired
ディレクトリやパターンを提供した後、一致するファイルはで表示されます。これは、あなたが、その後
としてはhereを説明などM-+ C-F
を使って検索することができたプロジェクトを、スナップショットする方法を提供します消えたバッファー。ファイルリスト(C-n
、C-p
など)をナビゲートし、必要に応じてファイルを開くことができます(Ret
)。あなたはこのようなあなたの.emacsに入れることができます
find-file-in-current-directory
:
;; Find file in current directory:
(global-set-key (kbd "C-M-,") 'find-file-in-current-directory)
Interfaceは、使う人には非常に見慣れ
記載されているオプションの多くは、私は次のコマンドを使用していますfsfツール(https://github.com/junegunn/fzf)
- 1. bashファイルをディレクトリに再帰的に見つける
- 2. ファイルを再帰的に含まないディレクトリを見つける
- 3. 同じファイル名のセットを持つディレクトリを再帰的に見つけよう
- 4. lodashは再帰的に配列内のアイテムを見つける
- 5. ディレクトリ内のファイル修正の最新の日付と時刻を再帰的に見つける方法は?
- 6. ディレクトリ内のファイルを再帰的に検索する
- 7. ディレクトリ内のファイルを再帰的に処理する
- 8. ディレクトリ内のファイル名を再帰的に変更する
- 9. Pythonで特定のファイルを見つけるまで、すべてのディレクトリを再帰的に実行します
- 10. モンゴイダルは再帰的に埋め込みドキュメントを見つける
- 11. Pythonは再帰的に親の息子を見つける
- 12. BitBakeレシピでディレクトリとファイルを再帰的にインストールするには
- 13. ASP.NETで再帰的にコントロールを見つける方法
- 14. XDocumentでノードを再帰的に見つける
- 15. リストの最大値をスカラーで再帰的に見つける
- 16. CSSファイルを再帰的に見つける方法はありますか?
- 17. Javaのバイナリツリーの最小値を再帰的に見つける
- 18. 特定のオブジェクトフォームツリーを再帰的に見つける方法
- 19. Linuxカーネルソースツリーの関数定義を再帰的に見つける
- 20. リンクリストの最大値を再帰的に見つける
- 21. BSTの高さを非再帰的に見つけるか?
- 22. オブジェクトのキーを再帰的に見つける
- 23. 2進数を再帰的に見つけるプログラム
- 24. 再帰的にjavascript配列内の子要素を見つける
- 25. ディレクトリ内でもっとも古いファイルを(再帰的に)検索する
- 26. C#でファイルとディレクトリを再帰的に削除する
- 27. 究極の親を再帰的なCTEで見つける
- 28. yoyはノード内の2つのディレクトリを再帰的に比較する方法
- 29. 特定のタイプのファイルをディレクトリ内に再帰的にdiffする
- 30. gitリポジトリをローカルで変更して再帰的に見つける方法は?
このようなパスの拡張には2つの潜在的な危険性があります:1つ以上の有効な拡張がある場合、試行するパスが多すぎる可能性があります(特にディレクトリループがある場合)まあ、 'find-name-dired'のようなものを使うだけです。 –