2012-01-18 3 views
0

소스 트리 내에서 FindThisMethod() 메서드의 정의가 들어있는 파일이 여러 개 있다고 가정 해 보겠습니다. 이 파일들을 모두 gVim의 단일 인스턴스에서 별도의 버퍼에서 열고 메소드 정의의 줄에 커서를두고 싶습니다.Vim의 함수 정의에서 파일 목록 열기

윈도우 XP에서

내가의 라인을 따라 가지 시도 Cygwin에서 사용 : 정력에있는 모든 올바른 파일을로드

gvim --remote-silent `grep -rnl --include=*.cs 'void FindThisMethod()' *` 

이,하지만 난 여전히 라인에 커서를 가져 오는 방법을 잘 모르겠어요 grep과 일치합니다.

grep -rn --include=*.cs "void FindThisMethod()' * | gawk -F: '{print "+"$2" "$1}' 

생산 : 정력 내가 줄 번호와 파일 이름 목록을 생성하는 그렙으로 AWK를 결합하는 시도 구문 gvim +<line number> file.txt 지원하기 때문에

+123 file.cs 
+234 file2.cs 
+345 file3.cs 

을하지만 내가 사용하는 방법 확실 해요 주어진 라인에서 파일을 열려면 gvim을 사용하십시오. 나는이 출력을 xargs -L 1 gvim --remote-silent에 파이핑하려고했지만 xargs에서 gvim의 Windows 바이너리를 시작한 이후 작동하지 않았습니다.

더 나은 방법이있을거야 :) 당신은

gvim --remote...etc...etc '+grep --include=*.cs "void FindThisMethod()" *' 

볼에 대한 것을 않는 정력의 내장 그렙를 사용하여 더 나을 수 있습니다

답변

1

이미 사용했던 grep을 기반으로 빌드하려면 다음을 수행하십시오.

grep -rn --include=*.cs "void FindThisMethod()' > quick.txt 

gvim -q quick.txt 

이것은 당신이 다음, "CP"로 이동하기로 이동 미니 창에서 "CN"각 검색 일치를 볼 수 있습니다 "코펜"을 할 수 있도록 정력의 퀵로 GREP의 결과를로드합니다 이전.

Try: "help quickfix" 

그러나 grep보다 나은 것은 cscope에서 vim을 사용하는 것입니다. Cscope는 vim과 잘 통합되어 "예를 들어"myfunc "(: cs f s myfunc) 또는 myfunc (: cs f c myfunc)를 호출하는 모든 함수를 볼 수있는 데이터베이스를 구축합니다. 또한 퀵 픽스 창과 통합되어 결과를 탐색 할 수 있습니다.

Try: "help cscope" 
+0

Perfect, thanks Benj. – telenachos

2

이상

:help :grep 

+1

다음과 같이 퀵 픽스 기능을 사용하는 것이 좋습니다 : vimgrep (나중에는 그 속도가 느리지 만 적어도 항상 작동 함). – dsummersl

+0

vimgrep을 사용하면 큰 도움이됩니다. 지금까지 익숙하지 않았습니다. – telenachos

관련 문제