2016-11-17 10 views
3

나는 지금 vim을 알아 내려고 .vimrc를 만들려고 노력하고있다.현재 디렉토리를 사용하지 않고 ag가있는 Ack.vim?

검색 명령과 플러그인에 대한 조사가 끝난 후 누군가의 조언을 따르고 을 SilverSearcher/Ag으로 실제 검색에 사용하기로 결정했습니다. 그래도 몇 가지 문제가 발생하지만, 내가 처음부터 시작하자 :

내가 먼저 된 승인을 설치를 통해 "기본"된 승인 테스트 :

:Ack teststring 

모든 것이 잘 작동하고 나는 quickfix의 결과를 얻었다 -창문.

나는 다음 SilverSearcher를 설치하는 것을 진행하고 내의 vimrc에 다음과 같은 추가 :

if executable('ag') 
    let g:ackprg = 'ag --vimgrep' 
endif 

을 ... 그리고이 같은 명령을 수행 할 때 이제 검색이 더 이상 작동하지 않습니다 위와 같이. 대신 빈 퀵 픽스 윈도우가 생기고 다른 일은 발생하지 않습니다.

디렉토리에 명령을 추가하면 (예 :

:Ack teststring mysubdirectory/ 

검색이 작동합니다.

이렇게 혼란 스럽습니다. 지정하지 않으면 현재 디렉토리를 기본값으로 설정하지 않아야합니까? 적어도 그것이 내가 documentation을 이해하는 방법이며 그것이 "네이티브"에서도 잘 작동하는 것처럼 보입니다. 그러나 .vimrc에 ag-part를 추가하자마자 더 이상은 아닙니다.

아무에게도 내가 누락 된 부분에 대한 힌트를 줄 수 있습니까?

추 신 : 중요 사항 : iterm2에서 VIM8의 터미널 버전을 사용하는 OSX ElCapitan을 사용 중입니다.

+0

허, 죄송합니다. 지금까지 Reddit에 회신하는 것을 잊어 버렸습니다. P 어쨌든 ... 그래, 이해가 안되네. 'Ack teststring'과': Ack teststring '은 모두 나를 위해 똑같은 방식으로 작동합니다 ('g : ackprg'는 당신과 같은 것으로 설정되었습니다). 커맨드 라인에서 시도해보고'ag --vimgrep teststring'과'ag --vimgrep teststring .'이 같은 일을 할 수 있습니까? – Amadan

+1

그 스레드에서 꽤 좋은 조언을 얻었습니다. 왜 모든 방법으로 플러그인 방식을 선택 했습니까? – romainl

+0

@romainl 예 모든 의견을 읽었으며 어제 grep 및 vimgrep로 놀아 보았습니다. 또한 Ran4의 의견은 실수를 할 가능성이있는 모든 것을 직접 구성해야하는 경우, 특히 초보자 인 경우 (즉,이 스레드 예 : D 참조) 의미가 있습니다. 그래서 지금 이걸 시험 중입니다. @Amadan 명령 모두 명령 행에서 나에게 아무 것도하지 않는 것 같습니다. 하지만 내가 '.' '*'를 입력하고'ag --vimgrep teststring * '을 입력하면 검색이 실행됩니다.구성에 문제가 있다고 생각합니까? 왜냐하면 그것은 기본적으로 신선한 설치이기 때문입니다 :/ – AvantiC

답변

4

좋아, 문제가 발견되었습니다.

분명히 우리 동료가 처음으로 모든 파일을 제외하고 "!"를 사용하여 특정 파일을 포함하는 프로젝트의 .gitignore가 있습니다.

지금 알게 되듯이 SilverSearcher는 이것을 잘 처리하지 못합니다 (here 참조).

-U 옵션으로 명령을 사용하면 모든 것이 의도 한대로 작동합니다.

도움을 주셔서 감사합니다.

+2

'-u'가 아닌'-U'를 사용하십시오. 그렇지 않으면, 당신은 ag 파일의 많은 부분을 이용하지 않을 것입니다. 동의어'--skip-vcs-ignores'를 사용하여 여러분이 의도하고있는 것을 분명히하는 것이 좋습니다. –

+0

옵션으로'ag' 대신'ripgrep'을 사용할 수 있습니다. 그것은 out-of-the-box 예상대로 작동합니다. 'let g : ackprg = 'rg --vimgrep - no-heading '' –