मेरे पास विंडोज मशीन नहीं है, लेकिन मै मैक ओएस एक्स 10.6 सिस्टम पर इस समस्या को पुन: उत्पन्न और अलग करने में सक्षम था।
या तो बनाने C:\TMP
या C:\TEMP
(:help 'directory'
का कहना है दोनों विंडोज पर directory
विकल्प का डिफ़ॉल्ट मान में हैं विम के बनाता है), या directory
विकल्प के मूल्य के लिए एक मौजूदा निर्देशिका जोड़ें।(फिर से, कोई विंडोज यहाँ)
मैं अपने घर निर्देशिका के अंतर्गत एक विम विशेष अस्थायी निर्देशिका का उपयोग करें और दो पीछे चल स्लैश (~/tmp/.vim-swaps//
) जोड़ें। इस प्रकार की सेटिंग स्वैप फाइलों को केंद्रीकृत करती है लेकिन उन्हें संपादित किए जा रहे फ़ाइलों की निर्देशिकाओं के आधार पर अद्वितीय नाम देती है। :help :swapname
में :help 'directory'
में :help :swapname
के साथ-साथ "यदि कोई निर्देशिका दो पथ विभाजक में समाप्त होती है" में "लाभ" और "नुकसान" देखें।
उपयोग ^=
अपने निर्देशिका पहले जोड़ें करने के लिए (इतना है कि यह हमेशा प्रयोग किया जाता है, यदि वह मौजूद है):
set directory^=C:\\some\\existing\\directory//
या, +=
का उपयोग अपने निर्देशिका संलग्न करने के लिए (इतना है कि यह केवल अगर यह प्रयोग किया जाता है मौजूद है और कोई अन्य लागू directory
प्रविष्टियों मौजूद हैं):
set directory+=C:\\some\\existing\\directory//
Charles’ answer पता चलता है कि $TMP
(एक वातावरण चर के लिए एक संदर्भ) हो सकता है एक अच्छा मूल्य विंडोज के लिए:
set directory+=$TMP//
मूल कारण :Gdiff
के सूचकांक "छद्म" फ़ाइल का पथ नाम के साथ संयुक्त directory
विकल्प का डिफ़ॉल्ट मान से संबंधित है।
एक :Gdiff
देखने के सूचकांक पक्ष के लिए बफर एक विशेष पथ कि fugitive:///path/to/repository/.git//0/path/to/file/under/repository
तरह लग रहा है (भगोड़ा कैप्चर पढ़ता है और ऐसा नाम बफ़र्स के लिए लिखते हैं और Git "पाइपलाइन" आदेशों लागू द्वारा सूचकांक करने के लिए उन्हें रीडायरेक्ट) का उपयोग करता है।
directory
में पहली प्रविष्टि आमतौर पर .
होती है। इसका अर्थ यह है कि विम एक ही निर्देशिका में स्वैपफ़ाइल को संपादित फ़ाइल के रूप में रखने का प्रयास करेगा (यानी foo/bar.txt
foo/.bar.swp
का उपयोग करने का प्रयास करेगा)। यदि यह पसंदीदा स्वैपफ़ाइल नहीं बनाया जा सकता है, तो directory
से आने वाली प्रविष्टियों का प्रयास किया जाएगा।
.
पहले
directory
के रूप में साथ
, fugitive:///path/to/repository/.git//0/path/to/file/under/repository
के लिए पसंदीदा swapfile fugitive:///path/to/repository/.git//0/path/to/file/under/.repository.swp
हो जाएगा। इस पथनाम के प्रमुख घटक (fugitive:
, path
, to
, आदि) शायद मौजूद नहीं हैं, इसलिए विम directory
से अगली प्रविष्टि पर जायेगा। यदि अन्य directory
प्रविष्टियों में से कोई भी स्वैप फ़ाइलों को बनाने के लिए उपयोग योग्य नहीं है (उदा। वे मौजूद नहीं हैं), तो आपको त्रुटि E302 मिलती है।
मैं set directory=.,~/no-such-dir,/var/no-such-dir,/no-such-dir
का उपयोग करके एक यूनिक्स y सिस्टम पर आपकी समस्या को पुन: पेश करने में सक्षम था (अर्थात डिफ़ॉल्ट यूनिक्स मूल्य लेने और no-such-dir
को tmp
की घटनाओं को बदलना)। वास्तव में "नो-ऐसे-डीआईआर" निर्देशिका में से कोई भी अस्तित्व में नहीं था। जब मैं :Gdiff
का उपयोग करता हूं तो मुझे वही त्रुटि मिलती है।
:help :set^=
केवल "जोड़ें" कहते हैं, लेकिन कोड से पता चलता है कि set listopt^=…
कैसे set listopt+=…
संलग्न कर देता है के लिए इसी तरह पहले जोड़ता है (उत्तरार्द्ध के रूप में करने के लिए प्रलेखित है)। दोनों को आवश्यक रूप से कॉमा को सम्मिलित करना चाहिए (हालांकि इस क्षेत्र में बग हो सकते हैं)।
मेरे पास * _exact_ * एक ही समस्या है - कृपया हमें बताएं कि यह कैसे हल किया गया है या नहीं! – Charles