test1
たとえば、vimでは、test2
などtest9
の名前を検索できます/\<test\d\>
。私はtest<num>
名前にその単語を含むファイル名を見つけるのと同じ「機能」が欲しいです。私はこれを試しました:
しかし、ご覧のように動作しません。
私のFZF環境変数は次のとおりです。
$FZF_DEFAULT_COMMAND
rg --files --hidden --glob "!.git/*"
$FZF_DEFAULT_OPTS
--prompt=' ' --cycle --preview='bat {}' +i --bind=ctrl-j:preview-half-page-down,ctrl-k:preview-half-page-up
vimとsedで正規表現パターンを使用してファイルを検索するにはどうすればよいですか?
答え1
fzfがこれを行うことができるかどうかわかりません。ただし、^
(次に終わる必要があります)、$
(次に終わる必要があります)、!
(含まれてはいけません)などの特殊文字がいくつかあります。ファイル内で検索する場合は、次のものを使用できます。
シルバー探索者(ag)またはリーグレップ(rg):Ag
または、コマンドを使用してインストールされたとします。:Rg
それぞれ、スペースで区切られた複数のパターンを追加する利点を享受することもできます。たとえば、^core .py$ !test
「core」で始まり、「.py」で終わるファイルと一致します。 「test」が含まれていません。引き続きパターンを追加して検索結果を絞り込むことができます。
答え2
許可された回答に加えて追加したいと思います。検索パターンの空白も重要です。、ファジィ検索モードパラメータを分離するため。
このファイルツリーがあるとしましょう。test.txt
各ディレクトリにはファイルがあります。test
temp/dir1/test.txt
temp/dir1/test
temp/dir2/test.txt
temp/dir2/test
temp/dir3/test.txt
temp/dir3/test
temp
パスのどこかに検索パターンがある上記の3つのファイルをすべて探してみましょう。そして名前がtest
ありますファイル拡張子なし:
基本検索モードではfzf
:
- この検索では、以下を見つけることができます。ファイルなし:
temp/test$
- この検索では、以下を見つけることができます。6つのファイルすべて:
temp/test
- だから探したいなら
test
拡張子のないファイルのみ、あなたはする必要があります検索パターンにスペースを追加する、このように!この検索では、以下を見つけることができます。test
ファイルが3つだけですファイル拡張子がなく、temp
パスに高いパターンがある場合:temp /test$
2つのファジー検索パターンの間にスペース(temp
および)を追加すると、/test$
大きな違いがあります!
この検索では、次の6つのファイルもすべて検索します。
temp /test
要約すると、test
3つの拡張子を持たないファイルを見つけるには、次の手順を実行する必要があります。ファジー検索パラメータを区切るには、スペースを使用してください。、$
「行末」を表すために末尾に使用されます。
temp /test$
もちろん、ファジー検索パラメータ間の空白に対する同じ要件が^
「行開始」検索文字にも適用されます。 (この例ではこれをうまく説明しませんが、原則は同じです。):
^temp /test