gVim साइबर एडिटर के तहत git एडिटर के रूप में


8

मैं msysgit का उपयोग करता हूं और मैं अपने git संपादक के रूप में gvim रखना चाहता हूं।

मैं git bash के बजाय cygwin bash का उपयोग करता हूं।

चल रहा है

$ /cygdrive/c/Program\ Files\ \(x86\)/Vim/vim73/gvim.exe 

शुरू होता है। लेकिन अगर मैंने इसे संपादक के रूप में सेट किया है:

$ git config core.editor /cygdrive/c/Program\ Files\ \(x86\)/Vim/vim73/gvim.exe

और चलाने के लिए मुझे मिलता है:

/cygdrive/c/Program Files (x86)/Vim/vim73/gvim.exe: -c: line 0: syntax error near unexpected token `('

मैं तब बची हुई बैकस्लैश जोड़ देता हूं जहां जरूरत होती है:

$ git config core.editor /cygdrive/c/Program\\\ Files\\\ \\\(x86\\\)/Vim/vim73/gvim.exe

यह अभी भी मुझे देता है:

/cygdrive/c/Program\ Files\ \(x86\)/Vim/vim73/gvim.exe: /cygdrive/c/Program Files (x86)/Vim/vim73/gvim.exe: No such file or directory
error: cannot run /cygdrive/c/Program\ Files\ \(x86\)/Vim/vim73/gvim.exe: No such file or directory
error: There was a problem with the editor '/cygdrive/c/Program\ Files\ \(x86\)/Vim/vim73/gvim.exe'.

बात यह है, मैं "चला नहीं सकता" के बाद से स्ट्रिंग को कॉपी कर सकता हूं और इसे पेस्ट कर सकता हूं और यह चलता है। मुझे लगता है कि यह प्रोग्राम फाइल्स (x86) में स्पेस या कोष्ठक के कारण हो सकता है (वे पृथ्वी पर क्या सोच रहे थे?)।

चूंकि साइबरविन ने इसे संभालना ठीक समझा, इसलिए मुझे लगा कि मैं कह / usr / लोकल / बिन में सिमलिंक बना सकता हूं, क्योंकि यह मेरे $ पेट और सेट में है

$ git config core.editor /usr/local/bin/gvim

मैं पुष्टि करता हूं कि / usr / स्थानीय / बिन / gvim gvim शुरू होता है। फिर भी, कमिटमेंट चलाने से मुझे:

error: cannot spawn /usr/local/bin/gvim.exe: No such file or directory
error: There was a problem with the editor '/usr/local/bin/gvim.exe'.

परेशान करने वाले core.editor और प्रयास कर रहे हैं

$ export GIT_EDITOR=/usr/local/bin/gvim.exe 

मुझे वही त्रुटि देता है।

यह SO उत्तर बताता है कि मैं संपादक को खोलने के लिए स्क्रिप्ट का उपयोग करता हूं।

मैं / usr / लोकल / बिन और से सॉफ्ट लिंक gvim.exe हटाता हूं

$ cat > gvim
#!/bin/sh
/cygdrive/c/Program\ Files\ \(x86\)/Vim/vim73/gvim.exe

$ chmod u+x gvim

मैं स्क्रिप्ट चलाने का परीक्षण करता हूं, यह काम करता है, जीवीएम शुरू होता है।

$ gvim

दुर्भाग्य से जब मैं कमिट करता हूं तो मुझे एक त्रुटि मिलती है

$ git commit
error: cannot spawn /usr/local/bin/gvim: No such file or directory
error: There was a problem with the editor '/usr/local/bin/gvim'.

मैं gitim को git एडिटर के रूप में उपयोग करने के लिए क्या कर सकता हूं? क्या किसी ने कोशिश की है? क्या मैंने गलतियाँ की हैं? मैं एक नौसिखिया होने के लिए स्वीकार करना चाहिए जब यह लिनक्स की बात आती है।


क्या आपने इसके बजाय cygwin vi का उपयोग करने की कोशिश की है? क्या आपने कमांड की कोशिश की है which gvim?
सायं

जो gvim outputs / usr / स्थानीय / बिन / gvim, केवल जब नरम लिंक या स्क्रिप्ट है। मुझे शायद gVim चाहने का अपना कारण स्पष्ट करना चाहिए। मैं इसे रोजाना इस्तेमाल करता हूं और जैसा चाहता हूं, वैसा सेट किया है। अगर मैं किसी अन्य का उपयोग करता हूं तो मेरे पास बनाए रखने के लिए दो संपादकों की सेटिंग होगी।
जॉनी

आप अपनी आरसी फ़ाइलों के लिए सिम्बलिंक या रेपो का उपयोग करने पर विचार कर सकते हैं।
सोमन्त्र

आपको एक साइबर फ़ाइल शेल स्क्रिप्ट के बजाय एक बैच फ़ाइल के साथ ऐसा करना पड़ सकता है। इसके अलावा, विंडोज आधारित gVim और cgywin के बीच घर के पर्यावरण चर संघर्षों से सावधान रहें $ HOME के ​​रूप में सेट किया जाएगा।
हेपेटाइट

@ मैं ने इसके लिए बैट फाइल बनाने की कोशिश की। कोई भाग्य नहीं। मुझे अपने प्रश्न में उल्लिखित त्रुटि नहीं मिल सकती है। और आप संघर्षों के बारे में सही हैं। मेरा जीवीएम के साथ टकराव नहीं बल्कि गित के साथ हुआ है। git config - cygwin के अंतर्गत gggg, cygwin होम में सेव करता है, उसी के तहत msysgit विंडोज़ होम में सेव करता है।
जॉनी

जवाबों:


6

git config उद्धरणों के एक स्तर को हटाने के लिए लगता है, इसलिए दूसरे को जोड़ें। यह मेरे लिए काम करता है (दूसरे संपादक के साथ):

git config core.editor "\" c: / Program Files (x86) /Vim/vim73/gvim.exe/ "

(ध्यान दें कि मार्ग के आस-पास के भागे हुए कोट्स, यह तब शुरू होता है, जब भी संपादक शुरू होता है जैसे कि git कमिट "c: / Program Files (x86) /Vim/vim73/gvim.exe"। व्याख्या करने की कोशिश न करें () जो भी इसका मतलब समझता है।)


0

जब पथनाम में रिक्त स्थान के साथ काम करते हैं, तो आमतौर पर उन्हें उद्धरणों में संलग्न करना एक अच्छा विचार होता है। इससे आपकी समस्या दूर हो जाएगी:

git config core.editor "/cygdrive/c/Program\ Files\ \(x86\)/Vim/vim73/gvim.exe"

दुर्भाग्य से नहीं। / cygdrive / c / Program \ Files \ (x86) /Vim/vim73/gvim.exe: / cygdrive / c / Program Files (x86) /Vim/vim73/gvim.exe: ऐसी कोई फ़ाइल या निर्देशिका त्रुटि: नहीं चल सकती / cygdrive / c / Program \ Files \ (x86) /Vim/vim73/gvim.exe: ऐसी कोई फ़ाइल या निर्देशिका त्रुटि: संपादक '/ cygdrive / c / Program \ Files \ (x86) / Vim / के साथ कोई समस्या नहीं थी vim73 / gvim.exe '। पथ सही है, हालांकि, / cygdrive / c / Program \ Files \ (x86) /Vim/vim73/gvim.exe
जॉनी

मुझे खेद है, मैंने इसे साइबरविन के साथ आज़माया लेकिन मैंने साइबरविन-गिट पैकेज का इस्तेमाल किया। क्या आप मुझे बता सकते हैं कि आपने कैसे साइबरविन और एमएससिट्ज को कनेक्ट किया है?
p.vitzliputzli

मैंने msysgit स्थापित किया और लंबे समय तक git bash का उपयोग किया। मुझे ठीक से याद नहीं है कि मैंने साइबरविन का उपयोग क्यों शुरू किया था, लेकिन मैंने जो भी किया (क्या) क्या मैंने अपने साइबर $ PATH में Git (/ cygdrive / c / Program Files (x86) / Git / bin) के लिए रास्ता जोड़ दिया है।
जॉनी

0
#!/bin/dash -e
if [ "${1#/}" != "$1" ]
then k=$(cygpath -w "$1")
elif [ "$#" != 0 ]
then k=$1
fi
exec gvim ${k+"$k"}
  1. अगर कोई रास्ता नहीं है, कोई रास्ता नहीं है

  2. यदि रास्ता खाली है, तो खाली रास्ता पास करें

  3. यदि मार्ग सापेक्ष है, तो पास के रूप में है

  4. यदि पथ निरपेक्ष है, तो Windows प्रारूप में कनवर्ट करें

फिर मैंने ये चर निर्धारित किए:

export EDITOR=gvim.sh
export GIT_EDITOR='dash /usr/local/bin/gvim.sh'
  1. EDITOR स्क्रिप्ट को Git के साथ काम करने की अनुमति देता है

  2. GIT_EDITOR स्क्रिप्ट को हब कमांड के साथ काम करने की अनुमति देता है

स्रोत

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