मैं अपने डिफ़ॉल्ट के बजाय उपयोग vim -u filenameकरने के लिए उपयोग कर सकता filenameहूं .vimrc। मैं इस विधि का उपयोग कर रहा हूँ जब उपयोगकर्ता संदर्भों ( su) को स्विच करने के लिए उपयोग कर रहा हूं, .vimrc भले ही सुपरयूजर के रूप में चल रहा हो।
मैं उसी फ़ोल्डर के लिए भी कैसे प्राप्त कर सकता हूं जो डिफ़ॉल्ट रूप से है ~/.vimताकि मैं कमांड लाइन से वैकल्पिक फ़ोल्डर में विम को इंगित कर सकूं ?
मैं क्या हासिल करना चाहता हूं
ठीक है, उपयोगकर्ता joe( HOME=/home/joe) और उपयोगकर्ता root( HOME=/root) मान लें । उपयोगकर्ता के joeपास एक उपनाम सेट है vimजिसके लिए यह दिखता है (लेकिन मूल रूप $HOMEसे इस गतिशील बनाने के लिए चर का उपयोग करके सेट किया गया है ):
alias vim='vim -p -N -n -i NONE -u "/home/joe/.vimrc"'
तब उपयोगकर्ता (लेकिन जोड़ा जादू के साथ) joeकी तर्ज पर कुछ करता है sudo su -, जिसके परिणामस्वरूप .bashrcऔर अन्य उपहारों /home/joeको लोड किया जाना चाहिए root। उपयोगकर्ता rootअब vimसेट के लिए सटीक एक ही उपनाम है जैसा कि ऊपर दिखाया गया है।
समस्या यह है कि .vimrcइसका उपयोग विभिन्न प्रणालियों और विभिन्न परिदृश्यों में किया जाता है। अक्सर जो के खाते को कहा जाता है joe, लेकिन कभी-कभी यह कुछ ऐसा होगा local.joeया कुछ और होगा, जिसके परिणामस्वरूप एक अलग मूल्य होगा $HOME। इसलिए हार्ड ~/.vimफोल्डर को फोल्ड करने के लिए एब्सोल्यूट पाथ कोडिंग अच्छा आइडिया नहीं लगता। हालाँकि, हमारे ऊपर के परिदृश्य में उपयोगकर्ता के rootपास एक फ़ोल्डर नहीं है /root/.vim, हालाँकि, लोड .vimrc( /home/joe/.vimrc) के माध्यम से डिफ़ॉल्ट रूप से मौजूद होने की उम्मीद है ।
मैं क्या हासिल करना चाहता हूं - अधिमानतः कमांड लाइन पर - /home/joe/.vimजब शुरू किया गया है तब से प्लगइन्स आदि का उपयोग करने के लिए विम को प्राप्त करना है root(यह मानते हुए aliasसेट किया गया है - अन्य मामलों को अनदेखा किया जा सकता है)। यदि VimScript के माध्यम से कुछ गतिशील विधि है, तो कृपया संकेत प्रदान करें। लेकिन जैसे चर का उपयोग करते हुए $HOMEमैं एक पकड़ 22 को ले जाएगा, मुझे लगता है।
ln। जैसे 'mv ~ / .vim ~ / .vim-जो भी && ln -s ~ / .vim-जो भी ~ / .vim` हो, उसके लिए वही करें.vimrc। कुछ बैश उर्फ के साथ सब कुछ लपेटें ताकि आप आसानी से एक तरह से या दूसरे को स्विच कर सकें