오류 : git에서 편집기 'vi'를 사용할 때 문제가 발생했습니다


12

vi대한 편집기 로 사용 하는 데 이상한 문제가 git commit -a있습니다.

정상적인 흐름은 다음과 같습니다. 입력 git commit -a하고 vi나타납니다. 커밋 메시지를 입력 한 다음 :wq저장하고 종료 vi합니다.

이것은 잘 작동합니다. 그러나 가끔 오타를하고 대신 :wqI 입력 :Wq(I가에 대한 변화를 사용하기 때문에 :). 그런 다음 직접 수정하고 :wq다시 입력 git하면 다음 오류가 발생합니다.

error: There was a problem with the editor 'vi'.
Please supply the message using either -m or -F option.

이 문제를 어떻게 해결할 수 있습니까?


어떤 버전 gitvi? vim 7.3, git 버전 1.7.11.1에서는 이것을 재현 할 수 없습니다.
Christopher

@Christopher : vi 7.3와 git 1.7.9.6 (Apple Git-31.1), Mountain Lion afaik의 기본 것들
houbysoft

답변:


14

vi설정에 대한 추가 정보가 없으면 이유가 무엇인지 알기가 어렵지만 0이 아닌 상태로 존재합니다. 에 많은 플러그인을 사용하는 경우 파일을 vim이동하여 복제 할 수 있는지 확인하십시오. 잠재적 인 해결책이있는 것을 포함 하여이 문제논의 하는 몇 가지 출처있습니다..vimrc.vimrc.back

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

.vimrc그러나 첫 번째를 제거하려고합니다 . 더 욕을 일으키는 것 같습니다.


5
덕분에, git config --global core.editor /usr/bin/vim그것을 고정.
houbysoft

1
@applOOb의 솔루션은 이와 같은 핵이 아니기 때문에 더 좋습니다.
jefflunt

14

여기에 답변 된대로 : https://stackoverflow.com/questions/22699614/git-commit-messages-lost-by-vi

진정한 해결책은

git config --global core.editor vim -f

vim 문서에 따르면- -f option should be used when Vim is executed by a program that will wait for the edit session to finish


2
마지막으로 ... 이것이 올바른 솔루션입니다. 또한 :W커밋 메시지를 저장하고 git가 거부 할 때 발생하는 문제를 해결 합니다.
Ryanmt

실제로 솔루션이며 일부 해결 방법은 아닙니다. 나는 받아 들여진 대답을 읽는 사람들이 정상적인 vim호출과 사용중인 핵 의 차이점을 이해하기 를 바랍니다.
jefflunt

0

golang vim 플러그인을 사용하십니까? 이 줄은 vi 종료 값 문제를 일으 킵니다. filetype plugin indent off

전체 golang 플러그인 블록을 제거하면 .vimrc문제가 해결되었습니다. 도망자를 사용하여 golang 플러그인을 설치하는 것은 다음과 같이 쉽습니다.ln -s $GOROOT/misc/vim ~/.vim/bundle/vim-golang

(난 그냥 문제를 문서화 이 문제를 상의 VIM-golang의 GitHub의 )


0

Git 설정에 문제가 있다고 생각합니다.

따라서 해결책은 Git 구성을 재설정하는 것이며 나에게 효과적입니다.

git config --global core.editor $(which vim)

$(which vim)보다 유연성이 /usr/bin/vim뛰어납니다 (일부 사람들에게는 vim 실행 파일이 없을 수 있음)

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.