2017-02-20 5 views
0

exuberant Ctags을 사용하여 특정 폴더에서 생성 된 모든 파일 gotags 세트에 tags 변수를 설정하고 싶습니다. (gotags은 파일 이름이 바뀐 tags입니다.)vimrc 유닉스를 어떻게 호출합니까?

.vimrc 파일에 다음 줄을 넣습니다.

set tags+=/usr/local/go/src/gotags 
set tags+=`find /home/vimal/gowork/src -name gotags` 

는하지만 작품을 나던와 나는 오류를 수정하고 tags 값으로 변수를 설정하는 방법 다음과 같은 오류

$ vi ~/.vimrc 
Error detected while processing /home/vimal/.vimrc: 
line 157: 
E518: Unknown option: /home/vimal/gowork/src 
Press ENTER or type command to continue 

를 얻을 : 하나의 디렉토리 트리 아래 모든 gotags 파일의 목록을.

답변

2

새로운 구문을 고안하는 것은 실제로 잘 작동하지 않는 경향이 있습니다. system()을 사용하여 백틱이 아닌 Vim에서 외부 명령을 실행하십시오. 또한 Vim의 set은 이상한 것이므로 RHS를 예상대로 평가하지 않습니다. 대부분 set option=... 대신 let &option = ...을 사용하는 것이 훨씬 간단합니다.

어쨌든

, 귀하의 질문에 대답하기 위해, 당신이 그것에 대해 find(1)를 실행할 필요가 없습니다, 일반 빔 기능은 당신이 원하는 것을 충분히 있습니다

let &tags = join(extend([&tags, '/usr/local/go/src/gotags'], 
    \ findfile('gotags', '/home/vimal/gowork/src', -1)), ',') 
+0

주셔서 감사합니다 답변을 많이하지만, 어떻게 든에만 태그를 '/ usr/local/go/src/gotags'만이 검사되고 있다면,'findfiles'의 결과로 나열된 다른 태그 파일들은 검색되지 않습니다. – weima

+0

': findfile()'에 대한 도움말을 확인한 결과, 아래쪽 검색에 와일드 카드'*'를 사용해야 함을 알았습니다. findfile ('gotags', '/ home/vimal/gowork/src/*', -1)' – weima

+0

@Sato :)을 사용해야합니다. – weima