2008-12-17 2 views
7

하나에서 DIRS를 제외하면정력 경로 var에, 내가 좋아하는 정력 기능 ** 일치

set path=/my/project/root/** 

을 한 후 사용할 수있는 기능입니다

만 문제가

:find SomeClassFile.java 
, 내가있어 일부 내가 이동할 수없고 그러한 검색에서 제외하고자하는 해당 레벨의 디렉토리를 생성했습니다. 그 dirs를 제외하는 방법을 알아낼 수 없습니다. 누구나 어떻게 할 수 있는지 알고 있습니까?

답변

3

"**" 검색에서 제외 할 수없는 항목입니다. 대신, 당신은 내가 정력 구문을 사용하는 방법을 알고하지 않습니다

set path=/my/project/root/src/**,/my/project/root/com/**,/my/project/root/foo/** 
+0

불행히도, 이것이 결국 내가 한 일입니다. – davetron5000

+0

2017 년에도 여전히 그렇습니까? –

2

처럼 생성 포함되지 코드를 할 하나 아래의 모든 하위 디렉토리를 지정할 수 있습니다,하지만 당신은 자신에게의 .vimrc를 만들 수 있습니다. proj 파일 (내 이름 지정 규칙)을 작성하고 원하는 프로젝트와 관련된 내용을 입력 한 다음 '소스'로 지정하십시오.

그래서, 당신은 /my/project/root/.vimrc.proj에서 다음 (사용 폴 Tomblin의 예) 것이다 :

세트 경로 =/내/프로젝트/루트/SRC/**/내/프로젝트/루트/COM/**/내/프로젝트/루트/foo는 정력 내에서 다음/**

그리고 :

: 소스 /my/project/root/.vimrc.proj

기본적으로 일단 파일을 설정하면 프로젝트 경로를 설정하는 데 사용되는 키 스트로크 수가 비슷합니다. 물론 cscope 매핑이나 그 밖의 다른 프로젝트 관련 설정도 배치 할 수 있습니다.

물론, 파일 시스템에는 '삭제'가 있지만 다른 많은 환경에서는 프로젝트 파일이 생성됩니다.

1

& wildignore 옵션으로 처리해야합니다. 그러나 AFAIK, 그렇지 않습니다. 이 주제에 대한 버그 보고서를 발행했지만 그 이후로 어떤 패치도 보지 못했습니다.

뜻밖의 패턴 (예 :/CVS/등)이 포함 된 경로를 무시하는 globpath와 같은 기능을 개발했으며,이 기능을 찾기 비슷한 명령에 사용합니다.

+1

최근 버전의 vim에서 작동합니다. – brillout

0

당신이 유닉스 시스템에 있다면, 당신은 다음과 같이 명령 줄 스크립트를 실행하는 역 따옴표를 사용할 수 있습니다

:e `find . -name foo.java -print` 

그래서 당신은 당신이 원하는 디렉토리를 제외하는 자신의 스크립트를 작성할 수 있습니다. .svn 디렉터리를 :grep에서 제외하기 위해 비슷한 작업을 수행했습니다.

자세한 내용은 vim에서 :h backtick-expansion을 참조하십시오.

1

"**"에서 변수를 제외 할 수 있다고 생각합니다. wildignore 변수를 설정하십시오.

예 :

set wildignore+=*.swp,*.bak,*.class 

또는 뭔가 링크이 : 당신이 find 명령을 사용하면

set wildignore+=*/node_modules/*,*/public/lib/* 

지금, 그것은 해당 디렉토리에서 검색하지 않을 것입니다.