조타 장치 및 / 또는 발사체가있는 디렉토리의 재귀 그렙?


11

디렉토리의 재귀 grep이 가장 간단해야하지만 아직 작동하는 방법을 찾지 못했습니다. 다음 명령 사이에서 저글링하고 있으며 어떤 기능이 내장되어 있는지 잘 모르겠습니다.

  • helm-find-files: 문제는 이것이 재귀 적으로 디렉토리를 찾는 데 실제로 나쁘다는 것입니다.
  • projectile-find-dir: 이것은 dir을 찾는 데 좋습니다! 그러나 helm complete를 사용하더라도 helm 모드에서는 종료 C-u C-s되지 않으므로 여기서 명령이 작동하지 않습니다.
  • helm-find: 재귀 권한을 얻지 만 디렉토리가 아닌 파일을 대상으로합니다.
  • helm-projectile-find-dir: 내가 원하는 것 같습니다.

1
나는 사랑 AG와 그에 대한 AG-모드, 실버 수색자의 비트가 다시 :-)에 연결 한 손으로 grep으로, 그것은하지만, 알고 발사체 만드는 방법을 알고하지 않습니다
톰 레그 너

Mx 발사체-어쩌면? («발사체 접두사»A 또는«발사체 접두사»a – 버전에 따라 다름)
Mekk

2
원래의 포스터에 : 나는 당신의 목적이 무엇인지 잘 모르겠습니다. 발사체 -ack와 발사체 -ag는 (전체) 발사체 프로젝트 내에서 재귀적인 그리프입니다. 그들은 당신이 필요로하지 않습니까?
Mekk

답변:


10

두 가지 방법이 있습니다.

  • 사용 helm-projectile-grep/ack/ag: 프로젝트 루트에서 시작하여 모든 것을 검색 할 수 있습니다. 나중에 검색 결과를 저장하려면 F3또는을 눌러 TAB작업 메뉴로 전환하고 세 번째 작업을 선택하십시오. hgrep버퍼 를 탐색하려면

    • C-<down>: 다음 경기로 이동하여 경기를 엽니 다.
    • C-<up>: 이전 경기로 이동하여 경기를 엽니 다.
    • M-<down>: 경기를 열지 않고 다음 경기로갑니다.
    • M-<up>: 경기를 열지 않고 다음 경기로갑니다.
    • C-o: 다른 창에서 현재 경기를 엽니 다.
    • RET: 현재 창에서 현재 일치를 엽니 다.
  • 사용 helm-projectile-find-dir( helm접두사 참고, helm-projectile일반적으로 패키지에서 적절한 Helm 명령을 사용해야 함 ) : 원하는 디렉토리로 좁히고를 눌러 C-u C-s해당 디렉토리를 재귀 적으로 검색하십시오. 를 누르지 C-u않으면 더 이상 들어 가지 않고 해당 디렉토리에서 검색합니다.

희망이 도움이됩니다.


1
프로젝 타일 검색 결과 내에서이 "TAB"작업을 알려줌으로써 방대한 이익을 얻을 수있게되었습니다. 감사합니다. 감사합니다.
17:36에

5

디렉토리의 재귀 grep이 가장 간단해야합니다.

현재 디렉토리 내부에 간단한 재귀 grep을 M-x grep원하면 미니 버퍼 내부 : Run grep (like this): grep -nHr "pattern". (-r 플래그에 유의하십시오).

당신은 또한 관심이있을 수 있습니다 rgrep:

rgrep은
`grep.el ' 의 대화식 자동로드 컴파일 된 Lisp 함수입니다 .

(rgrep REGEXP 및 선택적 파일 디렉토리 확인)

DIR을 루트로하는 디렉토리 트리의 FILES에서 REGEXP를 재귀 적으로 grep하십시오. 검색은 쉘 패턴 FILES와 일치하는 파일 이름으로 제한됩니다. 파일은 grep-files-aliases', e.g. enteringch '에 정의 된 약어를 ​​사용할 수 있습니다.` *. [ch]'와 같습니다.


그것은 문맥에 있어야하는 발사체와 관련이 없습니다.
RichieHH

2

다른 답변에서 언급 한 도구 외에도 재귀 grep 패턴과 일치하는 모든 파일을 포함 find-grep-dired하는 dired버퍼 를 만드는 또 다른 멋진 기능이 있습니다.

그냥 실행 find . \( -type f -exec grep -q -e my-regular-expression \{\} \; \) -ls하고 결과를 dired버퍼 에 표시합니다 .


1

시도해 볼 수 helm-do-grep있습니다. Helm Wiki에 설명 된 것처럼 접두사 arg를 사용하여 재귀 grep을 제공합니다 .

helm-find 파일을 시작하지 않고 helm-do-grep을 재귀 적으로 시작하려면 다음을 수행하십시오.

Cu 키-명령어-접두사 키 Mg s

참고 : Mg 전에 Cu를 누르는 것을 잊어 버린 경우 파일을 선택한 후에 수행 할 수 있습니다.

검색 할 파일 범주를 선택하라는 메시지가 표시됩니다. 예를 들어 * .el과 같은 wilcard 구문을 사용하십시오 (.el 파일 만 검색).

기본적으로 커서가 파일 이름에있을 때 파일 확장명이 사용됩니다. 커서가 디렉토리의 루트에 있으면 디렉토리에 있고 grep-find-ignored-file과 일치하지 않는 모든 파일 이름 확장자가 프롬프트에 삽입됩니다.

그렇게 시도하십시오 :

C-u helm-command-prefix-key M-g s


0

helm-projectile-find-dir아마도 적절한 기능 일 것입니다. 당신은 할 수 있습니다

  1. 다음과 같이 디렉토리를 찾으십시오. projectile-find-dir
  2. 그러나 Helm 모드를 마치면 C-u C-s원하는대로 재귀 검색을 실행할 수 있습니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.