質問の短いバージョン:icicles
ファイル名の部分的な一致のみが与えられた場合でも、ディレクトリとサブディレクトリ内のファイルを便利に検索するにはどうすればよいですか?
編集:簡単な答えはicicle-locate-file
、ディレクトリの最上位で使用し、プレーンタブではなく S-Tab (シフトタブ) を使用して補完を開始することです。この回答の詳細。
icicles
余談ですが、毎回、問題の(大きい)ディレクトリツリー内のファイルを探すのに10秒ほどかかっていたので、これ以降は断念しましたicicle-locate-file
。おそらく によって「収集」された一連のファイルを作成して、この遅延を回避する方法があるかもしれませんが、icicles
これを解決するための初期費用と、ファイル セットが更新されました。の作者がicicles
以下で指摘しているように、*nix のlocate
コマンドにアクセスするicicle-locate
と、 よりも高速なを使用できるようになりicicle-locate-file
ます。しかし、私は Windows で実行していて、Everything ユーティリティが機能しません。dired
それでは、バッファーに展開される IDO とブックマークの多用に戻りましょう。
==========
より長いバージョン... Emacs (24.3.1) が現在私のメインの開発環境であるため、特にファイル名の補完に関して、しばらくの間、効率を改善する方法を模索してきました。この質問に対するいくつかの優れた回答は、私が現在使用している と を示していますido-mode
。dired-x
もう 1 つの大きなお勧めは、Emacs のブックマークです。特に、バッファーをブックマークとして定義し、ミニバッファーを使用して、またはミニバッファーから呼び出すdired
ことでそれらにジャンプすること(このページは役に立ちました) は、2 つの非常に便利な戦略です。C-x r b mybook1
C-x r b
C-x C-f
言及された数人anything
とその後継者helm
。Windows 7 で動作するどちらのパッケージのファイルの場所の部分も取得できませんでした。どうやらそれらはEverythingのコマンド ライン バージョンに依存しているようですが、この質問で詳しく説明されているように、これは失敗します。答えます。*nix では問題なく動作するようですがhelm-locate
、Windows ではあまり議論されていません。そのため、ファイル名の補完のためhelm
に数えられます。anything
つららに私をもたらします。サブディレクトリでファイル検索を行うことについての質問で、質問者は「ido とつららを調べましたが、現在のディレクトリ内でのみ動作が浅いようです」とコメントしました。
これに応えて、icicles に関するコメントが寄せられました。「必要に応じて、ファイル名とパスの任意の部分に一致するシステム上の任意のファイルを検索できます」と、Icicles file name inputのページへのポインターが含まれています。つららのヘルプページに多大な労力を割いてくれたことには感謝していますが、これはあまり役に立ちませんでした。なぜなら、それは主につららの機能の説明のリストで構成されていたからです。私にとって役立つのは、ファイルを見つける方法を説明するチュートリアルです。
以下を想定してみましょう。
- Emacs 24.3.1 の Windows 7 インストールを実行しています。
- いくつかのファイルとフォルダーを含む最上位のディレクトリがあります。この場合は です
c:/iciclestest/
。 - ツリーのこのセクションのどこかに、ファイル名の一部として「grob」を含むファイルがあることを知っています。
- つららを使用してこのファイルを見つけたいです。init ファイル に
(require 'icicles)
andを入れました。(icy-mode 1)
では、出発です。スクラッチ バッファーで Emacs を起動します。Cx Cf を押します。プロンプトが表示され、左側に紫色のプラス記号が表示されます。これは、これがつららのマルチコマンドFile or directory
の 1 つであることを示していると思います。
タブを押すと、このミニフレームが表示され、現在のディレクトリの内容が表示されます。
サブディレクトリでタブをfolder1
押すと、予想どおり、つららがその内容を表示します。
名前に「grob」が含まれるファイルがいくつか表示されます。
そうです、Cg ですべてをクリアしてから、Cx Cf を再度実行します。「グロブ」と入力します。「プレフィックスの補完がありません」というメッセージが表示されます。つららが ido-mode のようなある種の気まぐれなファジー マッチングを持っていると思っていたので、これには少し驚きました。
わかりました、別のコマンドが必要かもしれません。試してみましょうM-x icicle-locate-file
。これにより、次のプロンプトが表示されます。
「grob」と入力して確認をクリックすると、以下のように新しいファイルが取得されます。
要約すると、私ができるようにしたいのは、文字列を入力してつららを動かし、その文字列を含むファイルまたはフォルダーを探すことです。私のメインの dev フォルダーには、何十ものディレクトリと何千ものファイルが含まれているため、Emacs 内ですばやく検索できると非常に便利です。
このlocate
コマンドは Windows には存在しないため、機能が制限されることはわかっていますが、ユーザーが入力した文字列に基づいて現在のディレクトリからファイルとサブディレクトリを再帰的に検索するのは簡単だと思いました。私は何が欠けていますか?私はこれを正しい方法で行っていますか?これはつららで行うことができますか?