fzf에서 정규식을 사용하는 방법은 무엇입니까?

fzf에서 정규식을 사용하는 방법은 무엇입니까?

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:

  1. 이 검색에서는 다음을 찾을 수 있습니다.파일 없음:
    temp/test$
    
  2. 이 검색에서는 다음을 찾을 수 있습니다.6개 파일 모두:
    temp/test
    
  3. 그러니 찾고 싶다면test확장자가 없는 파일 만, 당신은해야합니다검색 패턴에 공백을 추가하세요, 이와 같이! 이 검색에서는 다음을 찾을 수 있습니다.test파일이 3개뿐이다파일 확장자가 없고 temp경로에서 더 높은 패턴이 있는 경우:
    temp /test$
    

두 퍼지 검색 패턴 사이에 공백( temp및 )을 추가하면 /test$큰 차이가 납니다!

이 검색에서는 다음 6개 파일도 모두 찾습니다.

temp /test

요약하면, test확장자가 없는 파일 3개를 찾으려면 다음을 수행해야 합니다.퍼지 검색 매개변수를 구분하려면 공백을 사용하세요., $"줄 끝"을 나타내기 위해 끝에 사용됩니다.

temp /test$

물론 퍼지 검색 매개변수 사이의 공백에 대한 동일한 요구 사항이 ^"줄 시작" 검색 문자에도 적용됩니다. (이 예에서는 이를 잘 설명하지 못하지만 원리는 동일합니다.):

^temp /test

관련 정보