मेरे पास एक विम स्क्रिप्ट है जो बाहरी शेल स्क्रिप्ट को कॉल करती है और आउटपुट को वर्तमान बफर में पढ़ती है। यह यूनिक्स सिस्टम में ठीक काम करता है। मैं स्क्रिप्ट ओएस-अज्ञेयवादी बनाने की कोशिश कर रहा हूं, इसलिए मैं इसे विंडोज उपयोगकर्ताओं के लिए भी काम करना चाहता हूं। यहाँ स्क्रिप्ट से प्रासंगिक लाइन है:विम स्क्रिप्ट में विंडोज वातावरण चर का उपयोग कैसे करें?
:exe ":0r !$HOME/bin/shell_script"
विम के डॉक्स के अनुसार, $HOME
भी विंडोज उपयोगकर्ताओं के लिए ठीक का अनुवाद करना चाहिए। आदेश मोड में विन XP पर जाँचने का उपयोग करना,
:echo $HOME
कर वास्तव में "C: \ दस्तावेज़ और सेटिंग्स \ my_user" उत्पादन करता है।
लेकिन, मेरा विम लिपि (बैकस्लैश के लिए समायोजित) डॉस cmd.exe खिड़की में एक संदेश कह
$ HOME \ बिन \ shell_script "नहीं मिला साथ Windows मशीन पर विफल रहता है।
दूसरे शब्दों में, विम यह cmd.exe को पार करने से पहले $HOME
का मूल्य का विस्तार करने के लिए नहीं दिखाई देता है।
मैं %APPDATA%
उपयोग नहीं कर सकते, क्योंकि या तो विम वर्तमान मुद्दों के रूप में %
की व्याख्या एनटी फ़ाइल और फ़ाइल नाम को APPDATA
पर पूर्व/संलग्न करता है। अजीब है कि विम %
का विस्तार करता है लेकिन $HOME
का विस्तार नहीं करता है।
मुझे $HOME
कैसे सही तरीके से विस्तारित किया जा सकता है? क्या ऐसा इसलिए है क्योंकि मैं विम स्क्रिप्ट में exe
का उपयोग कर रहा हूं?
यह प्रश्न (पीछे) स्लेश के बारे में नहीं है।यहां समस्या यह है कि खोल सिर्फ '$ HOME' – doubleDown