2011년 12월 21일 수요일

Vim으로 git commit 메시지 작성 시 오류

좀 제한적인 환경에서만 발생하는 문제다. 증상부터 이야기 하자면, git commit으로 커밋 메시지를 vi 혹은 vim으로 작성하고 :wq를 통해 커밋을 하려는데 다음과 같은 오류가 발생한다.
error: There was a problem with the editor 'vi'
이 문제의 원인은 vim이 종료코드로 0(정상)이 아닌 1을 반환했기 때문이다. 단순하게 확인하기 위해 vim을 실행시키고 바로 종료시킨 후 echo $? 커맨드로 종료코드를 확인했을 때 0이 아닌 다른 값이 표시된다면 이 문제가 발생 할 수 있다.

해결방법은 단순하다. 정상적인 종료코드를 반환하는 vim을 사용하면 된다. 근데 말은 참 쉽다. -_-;;;;

Homebrew를 사용 중이고 Homebrew로 macvim을 설치해서 'mvim -s'을 vim으로 alias를 걸어 사용하는 환경이라면 분명 이 문제가 여지없이 발생 할 것이다.

이런 경우 Mac OS X 라면 기본적으로 포함된 vim은 정상적인 종료코드(0)를 반환하므로 macvim 대신 /usr/bin/vim 을 에디터로 설정하면 해결할 수 있다. 다음 커맨드는 git의 에디터 설정을 바꾸는 명령이다.

$ git config --global core.editor /usr/bin/vim

최신 vim을 못 쓴다는 것이 좀 걸리고 왠지 찝찝하기도 하지만 커밋메시지 만을 작성하는데 사용할 것이니깐 어쩔 수가 없는 것 같다.

그나저나 왜 macvim은 종료코드로 0을 반환하지 않는 것일까?

댓글 없음 :