त्रुटि: इसे 'git' के साथ प्रयोग करते समय संपादक 'vi' के साथ एक समस्या थी


13

के viलिए संपादक के रूप में उपयोग करने के साथ मुझे यह अजीब समस्या है git commit -a

सामान्य प्रवाह है: मैं टाइप करता हूं git commit -a, viप्रकट होता है, मैं अपना प्रतिबद्ध संदेश दर्ज करता हूं, और फिर इससे :wqबचाने और बाहर निकलने के लिए vi

यह ठीक काम करता है। हालांकि, कभी-कभी मैं एक टाइपो बनाता हूं और इसके बजाय :wqमैं टाइप करता हूं :Wq(क्योंकि मैं शिफ्ट के लिए उपयोग करता हूं :)। फिर, जब मैं अपने आप को सही करता हूं और :wqफिर से टाइप करता हूं , gitतो निम्न त्रुटि देता है:

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

मैं इसे कैसे ठीक करूं?


क्या के संस्करण gitऔर vi? मैं इसे vim 7.3, git संस्करण 1.7.11.1 के साथ नहीं दोहरा सकता।
क्रिस्टोफर

7.31.7.9.6 (Apple Git-31.1)
@ क्रिस्टोफर

जवाबों:


15

viएक गैर-शून्य स्थिति के साथ मौजूद है, हालांकि आपके सेटअप के बारे में अतिरिक्त विवरण के बिना, यह बताना मुश्किल है कि क्यों। यदि आप बहुत सारे प्लगइन्स का उपयोग कर रहे हैं vim, तो आप अपनी .vimrcफ़ाइल को .vimrc.backदेखने और देखने की कोशिश कर सकते हैं कि क्या आप दोहरा सकते हैं। वहाँ एक हैं कुछ सूत्रों का कहना है कि इस समस्या के बारे में बात, कम से कम सहित एक संभावित समाधान के साथ एक:

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

मैं आपके .vimrcपहले को हटाने की कोशिश करूंगा । इससे अधिक अड़चन पैदा होती है।


5
धन्यवाद, git config --global core.editor /usr/bin/vimइसे ठीक किया।
जूल २

1
@ applOOb का समाधान बेहतर है, क्योंकि यह इस तरह से हैक नहीं है।
जेफेलंट डिक

15

जैसा कि यहां बताया गया है: /programming/22699614/git-commit-messages-lost-by-vi

असली समाधान है

git config --global core.editor vim -f

विम प्रलेखन के अनुसार - -f option should be used when Vim is executed by a program that will wait for the edit session to finish


3
अंत में ... यह सही समाधान है। यह हिट करने की समस्या को भी ठीक करता है :Wऔर जब आप इसे बाद में सहेजते हैं तो यह आपके प्रतिबद्ध संदेश को अस्वीकार कर देता है।
रयानमैट

एक समाधान जो वास्तव में एक समाधान है और कुछ लंगड़ा नहीं है! मुझे वास्तव में उम्मीद है कि स्वीकृत उत्तर को पढ़ने वाले लोग अपने सामान्य vimआह्वान और उनके द्वारा उपयोग किए जा रहे हैक के बीच के अंतर को समझते हैं।
जेफेलंट डिक

1

क्या आप गोलंग विम प्लग का उपयोग करते हैं? यह पंक्ति मेरे लिए vi निकास मान समस्या का कारण बन रही है: filetype plugin indent off

.vimrcतय समस्या में पूरे गोलंग प्लगइन ब्लॉक को हटाना । भगोड़े का उपयोग करते हुए गोलंग प्लगइन स्थापित करना जितना आसान हो सकता है:ln -s $GOROOT/misc/vim ~/.vim/bundle/vim-golang

(मैंने अभी इस मुद्दे पर vim-golang github में समस्या का दस्तावेजीकरण किया है )


0

मुझे लगता है कि Git config के साथ कुछ गलत है।

तो समाधान Git config रीसेट करने के लिए है और यह मेरे लिए काम किया:

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

$(which vim)की तुलना में अधिक लचीला है /usr/bin/vim(कुछ लोगों के लिए निष्पादन योग्य नहीं हो सकता है)

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.