मैं अपने डिफ़ॉल्ट के बजाय उपयोग 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
। कुछ बैश उर्फ के साथ सब कुछ लपेटें ताकि आप आसानी से एक तरह से या दूसरे को स्विच कर सकें