Saya punya masalah aneh dengan menggunakan vi
sebagai editor untuk git commit -a
.
Aliran normal adalah: Saya mengetik git commit -a
, vi
muncul, saya memasukkan pesan komit saya, dan kemudian :wq
menyimpan & keluar dari vi
.
Ini berfungsi dengan baik. Namun, kadang-kadang saya membuat kesalahan ketik dan bukannya :wq
saya mengetik :Wq
(karena saya menggunakan shift untuk :
). Kemudian, ketika saya memperbaiki diri sendiri dan mengetik :wq
lagi, git
memberikan kesalahan berikut:
error: There was a problem with the editor 'vi'.
Please supply the message using either -m or -F option.
Bagaimana saya bisa memperbaikinya?
mountain-lion
terminal
git
vi
houbysoft
sumber
sumber
git
danvi
? Saya tidak dapat repro ini dengan vim 7.3, git versi 1.7.11.1.7.3
dan git1.7.9.6 (Apple Git-31.1)
, yang standar di Mountain Lion afaikJawaban:
vi
ada dengan status tidak nol, meskipun tanpa detail tambahan tentang pengaturan Anda, sulit untuk mengatakan mengapa. Jika Anda menggunakan banyak pluginvim
, Anda dapat mencoba memindahkan.vimrc
file Anda.vimrc.back
dan melihat apakah Anda dapat mereplikasi. Ada beberapa sumber yang membahas masalah ini, termasuk setidaknya satu dengan solusi potensial:Saya akan mencoba menghapus yang
.vimrc
pertama. Tampaknya menyebabkan lebih banyak kekhawatiran.sumber
git config --global core.editor /usr/bin/vim
perbaiki.Seperti yang dijawab di sini: /programming/22699614/git-commit-messages-lost-by-vi
Solusi sebenarnya adalah
Menurut dokumentasi vim -
-f option should be used when Vim is executed by a program that will wait for the edit session to finish
sumber
:W
dan meminta git menolak pesan komit Anda ketika Anda selanjutnya menyimpannya.vim
doa normal dan retas yang mereka gunakan.Apakah Anda menggunakan plugin golang vim? Baris ini menyebabkan masalah nilai keluar vi bagi saya:
filetype plugin indent off
Menghapus seluruh blok plugin golang dalam
.vimrc
mengatasi masalah. Menginstal plugin golang menggunakan buron dapat semudah:ln -s $GOROOT/misc/vim ~/.vim/bundle/vim-golang
(Saya baru saja mendokumentasikan masalah dalam masalah ini pada vim-golang github )
sumber
Ada yang salah dengan konfigurasi Git, saya kira.
Jadi solusinya adalah mereset Git config dan itu berhasil untuk saya:
$(which vim)
lebih fleksibel daripada/usr/bin/vim
(vim executable mungkin tidak ada untuk beberapa orang)sumber