2012-11-10 5 views
9

나는 vin을 우분투 12.04의 gnome-terminal과 MacOS의 터미널에서 사용하고 있습니다. 나는 프로젝트 전체 텍스트 검색을 수행하기 위해 ack.vim 플러그인을 사용하고 있지만 잘 작동하지만 불편하고주의를 끄는 버그가 있습니다 :터미널 vim에서 Ack가 검색 결과를 표시하기 전에 출력됩니다. 어떻게 그걸 막을 수 있니?

검색을 수행하면 전체 vim 화면이 터미널로 돌아가서 ack의 출력을 보여줍니다 실행됩니다. 실행이 중지되면 화면이 vim으로 돌아가고 검색 결과가 올바르게 표시됩니다. 또한 vim을 종료하면 모든 ack의 출력이 터미널에있게됩니다.

저는이 문제를 알고 있습니다. https://github.com/mileszs/ack.vim/issues/18하지만 수정 방법에 대한 아이디어를 얻을 수 있는지 여기에 게시하고 싶습니다.

ack.vim에서 나는 ack 명령이 실제로 실행되는 곳이라고 생각하는 줄인 silent execute a:cmd . " " . l:grepargs을 볼 수 있습니다. 조용한 옵션이 이미 있습니다. 그것은 vim-fu가 나를 데려 갈 때까지입니다. : S

누구든지이 문제를 해결하는 방법에 대한 아이디어가 있습니까?

답변

6

이것은 vim이 :grep* 명령이 작동하는 방식인데, ack.vim 문제가 아닌 문제입니다. 터미널 사용을 막을 수는 없지만 shellpipe>, &> 또는 2>/dev/null>으로 설정하면 명령이 터미널에 출력을 복제하지 못하게됩니다. 기본적으로이 옵션은 2>&1|tee&> 또는 2>&1> 값이 현재 수행 된 것과 가장 비슷합니다.

+0

쉘 파이프를 &>로 설정했습니다. https://github.com/mileszs/ack.vim/issues/18에서이 픽스를 ack.vim에 통합 한 방법을 확인하십시오. Zyx 덕분에 –

+3

@RafaelVega 귀하의 vimrc에 설정되어 있어야합니다. ** 플러그인으로 설정할 것을 제안하지 마라. ** AFAIR 이것은 리눅스에서'csh'에 대해 틀린데, 틀림없이 윈도우에서'cmd.exe'에 대해서는 틀린 것이다. – ZyX

0

제안 된 솔루션이 작동하지만 이제 ctrl-z를 누르면 vim-screen이 출력됩니다.