2013-01-23 2 views
1

몇 가지 복잡한 환경 변수가 필요하기 때문에 Make through GNU 화면을 선택했습니다. 화면 VIM 플러그인을 사용하여, 나는 내의 .vimrc에 다음과 같은 설정을 가지고 :vim이 화면을 통해 실행합니다.

map <Leader>mm :call ScreenShellSend("cd ".expand("%:p:h")." && make 2>&1 | tee /path/to/errorfile") <CR>

대략 번역이 변수가 사전에 필요한 환경의 모두와 함께 기존 화면 세션을 통해 현재 작업 디렉토리에서 make를 실행합니다 . 그런 다음 별도의 터미널 창에서 해당 명령의 출력을 볼 수 있습니다.

내 질문에, I 출력을 나는 정력을 자동화에게 어떻게 텍스트 파일로 만드는 결과를 가정하기에 공정을한다 :

A.) (즉, SreenShellSend를 호출하는 vim 스크립트 기능을 사용할 수 있도록 설정합니다) 외부 프로그램 대신./ERRORFILE

+0

원격 명령을 화면에 보내어 완전히 대답하지는 못했지만'makeprg '에 대한 Vim 도움말을 확인하십시오. ScreenShellSend() 명령에 해당하는 명령 행을 구성 할 수 있다면'makeprg'를 설정하면됩니다. 그렇다면'set errorfile =/path/to/errorfile' 그리고 당신은 잘되어야합니다. –

답변

0

불행하게도, 당신은 빔 기능이나 명령에 'makeprg'을 설정할 수 없습니다하기로/경로 ERRORFILE 설정

B.는) /, 그것은 쉘 프로그램이어야한다. ('keywordprg'에있는 :help 예외와 비슷하지만 Vim 명령으로 콜론으로 시작하는 명령을 처리하지만이 기능을 구현하지는 않았 으면 좋겠다.)

그러나 해결 방법이 있습니다. 하나는 vim --remote-send'makeprg'으로 사용하고 다른 임시 Vim 인스턴스를 사용하여 원래 Vim으로 콜백하는 것입니다. 내가 뭘 어떻게 그 버퍼에 대한 :make 명령을 무시하는 것입니다. 그 별칭은 간단히 :call 내 함수입니다.

당신은 'errorfile' 그냥 ScreenShellSend() 주위 함수 래퍼를 넣고 거기에 그것을 설정하는 문제이다 설정하는 빔 함수를 호출 할 수있어 일단.

관련 문제