रूट विशेषाधिकारों के साथ मेरे उपयोगकर्ता के रूप में विम शुरू करें


10

मैं अपने कस्टम विम फ़ाइलों में ~/.vimऔर सेटिंग्स में है ~/.vimrc। हालाँकि, कभी-कभी मुझे कुछ फाइलों को /etcइस तरह से संपादित करना पड़ता है ।
अगर मैं विम को इस तरह शुरू करता हूं:

$ sudo vim /etc/rc.conf

मैं अपना कॉन्फ़िगर खो देता हूं क्योंकि विम अपने डिफ़ॉल्ट का उपयोग करता है। तो: मैं अपने उपयोगकर्ता की सेटिंग्स (जो मेरे घर निर्देशिका में हैं) को खोए बिना फ़ाइलों को संपादित करने के लिए रूट विशेषाधिकारों के साथ विम को कैसे चला सकता हूं?
मैंने कोशिश की है:

$ su username -c "vim /usr/lib/python2.7/setuptools/dist.py"

लेकिन बैश मुझे देता है Permission denied। हालांकि, उपरोक्त आदेश के लिए उदाहरण के लिए काम करता है: /etc/acpi/handler.sh। ऐसा क्यों है?

नोट: उपयोगकर्ता नाम रूट नहीं है।

जवाबों:


15

इसके बजाय sudo vim /etc/rc.confउपयोग sudoedit /etc/rc.confया sudo -e /etc/rc.conf। आपको EDITOR वातावरण चर को विम पर सेट करने की आवश्यकता हो सकती है। यह आपके सामान्य कॉन्फ़िगरेशन का उपयोग करते हुए फ़ाइल की एक कॉपी पर सामान्य उपयोगकर्ता के रूप में खुद को चलाएगा, जो आपके बाहर निकलने पर वापस कॉपी हो जाएगा।


अच्छा समाधान! मैं इसे भी देखूंगा।
रुबिक

मैंने कोशिश की sudoedit /etc/rc.confऔर sudo -e /etc/rc.confयह विम खोल देता है, लेकिन मेरा ~ / .vimrc लोड नहीं होता है। क्या मैं गलत हूं?
एपीके

@apparat export EDITOR=vimपहले प्रयास करें - यह चलाने की कोशिश कर रहा हो सकता है vi, जो मुझे नहीं पता कि क्या यह vimrc लोड होने के बावजूद भी है।
रैंडम 832

खैर, मुझे लगता है कि यह सबसे अच्छा जवाब है। तुम दोनों को धन्यवाद।
रुबिक

@ Random832 export EDITOR=vimने काम किया। मैंने सोचा था कि vi मेरे सिस्टम पर स्थापित नहीं है और केवल vim के लिए एक सहानुभूति है। धन्यवाद
apparat

6

आप -uvim को बताने के लिए उपयोग कर सकते हैं कि किस आरसी फाइल को लोड करना है। जैसे

sudo vim -u ~user/.vimrc /etc/rc.conf

यदि टाइप करना है कि हर बार आपको यह करना कठिन है, तो एक उपनाम बनाएं:

alias sudovim='sudo vim -u ~user/.vimrc'

ध्यान दें कि vim -uप्लग-इन या rc फ़ाइलों को विफल करने का कारण हो सकता है यदि वे $ HOME - $ HOME के ​​सापेक्ष अन्य फ़ाइलों को लोड करते हैं, अब उपयोगकर्ता के नहीं, बल्कि रूट का होम डायर है। इसे रूट के होम डायर में या हार्ड-कोडिंग निरपेक्ष रास्तों से उदाहरण के साथ हल किया जा सकता है।


बहुत अच्छा, धन्यवाद। मैंने इस तरह हल किया alias svim="HOME=/home/user && sudo vim -u $HOME/.vimrc":।
रुबिक

1

sudo vim -S /home/user/.vimrc /etc/rc.conf

यह इसके बराबर है:

sudo vim /etc/rc.conf + :source /home/user/.vimrc

और इसके साथ-साथ उर्फ ​​किया जा सकता है:

alias svim='sudo vim -S /home/user/.vimrc'

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