2010-07-28 3 views
2

기본적으로 makeprgmake으로 설정됩니다. 그러나 다른 빌드 구성 및 대상이 같은 디렉토리에있는 많은 프로젝트가 있습니다.Vim의 modeline을 통해 "makeprg"설정

물론 이것은 make을 호출 할 때 대상을 지정해야합니다.

예를 들어, make foo을 호출하여 <foo>.cpp 소스 파일을 빌드하도록 설정된 프로젝트가 있고이 프로젝트에 많은 소스 파일이 포함되어 있습니다.

Vim에서 <foo>.cpp이라고 말하면 편집 할 때 makeprgmake <foo>으로 설정하면 어떻게됩니까? 각 파일에서 모델린을 생각했지만 모드 라인을 통해 makeprg을 설정하는 것은 보안 문제로 인해 금지되었습니다. 내가 make일반 값을 수정하지 않도록이 설정이 일부 프로젝트에 대해서만 적절하다고

공지 사항 -에, 그렇지 않으면 내가 좋겠 단지

set makeprg=make\ expand("%:t:r") 

(또는 같은) 내 .gvimrc.

답변

3

를 원하는 것을 할 것입니다 내가 믿는 :make %<을지도 할 수 있어야한다 조정하는 일의 종류를 프로젝트 별 설정이 가능 광산의 plugin. 이 방법을 사용하면 내 .vimrc에 프로젝트 관련 정보가 쌓이지 않습니다. 대신 각 프로젝트 루트 디렉토리에 다양한 설정이 포함 된 _vimrc_local.vim 파일이 있습니다.

다른 해결책은 :make을 다른 명령 또는 :make을 다른 플러그인으로 설정할 수있는 변수 (let-modeline)를 호출하는 매핑으로 캡슐화하는 것입니다.

추 신 : .gvimrc은 vim의 그래픽 버전과 관련된 것들을 포함합니다. 설정을 .gvimrc에 넣으면 일반 vim이 구성되지 않습니다.

+0

(대신 내 vimrc에있는 파일 형식에 따라 makeprg을 설정하기위한 몇 가지 autocommands을 가지고, 나는이 정확한 명령을 테스트하지 않습니다) : 물론, I 그 사실을 알고 있습니다. 둘 다 사용하고 있습니다. 제 질문이 일관성이 없었습니다. 그 플러그인은 유망 해 보입니다. 사실 저는 그것이 정확히 제가 찾고있는 것입니다. –

1

당신은 내가 사용하고 당신이

0

프로젝트를 modeline이 아닌 폴더로 구별 할 수 있다면 자동 명령과 비슷한 것이 가능해야합니다. 다음은 :help autocmd-patterns의 예제와 예제 코드의 조합입니다.

:autocmd BufRead /source/foo-project/*.cpp set makeprg=make\ expand("%:t:r") 

은`.gvimrc` 파일 재

+0

이전 (유사하지만 삭제 된 것 같습니다) anwser에서 OP는 프로젝트 관련 설정으로 .vimrc를 혼란스럽게하지 않을 것이라고 말했다. –

+0

örn : 고마워,하지만 Luc이 맞아. –