विम में रीड-ओनली मोड से मैं कैसे बाहर निकल सकता हूं?


38

मैंने एक फाइल को आसानी से मोड में खोला; क्या पठन मोड से बाहर निकलने का कोई तरीका है?


रीडॉनली मोड में कौन सी सीमाएं हैं जो आपको परेशान कर रही हैं? यदि यह सिर्फ इतना है कि आप फ़ाइल को लिखना चाहते हैं, भले ही आप इसे केवल पढ़ने का विरोध करते हैं, तो कमांड !को जोड़ने wसे चाल चलेगी, जैसा कि माइकल ने कहा है।
बनगुंगिन

1
@ user1129682 wहर बार जब मैं बचाना चाहता हूं तो विस्मयादिबोधक चिह्न लगाने की याद रखना सिर्फ असुविधा है । हेह
गलत नाम

जवाबों:


43

आप ऐसा कर सकते हैं:

:set noro

यह रीड-ओनली फ्लैग को अनसेट करता है, लेकिन यदि अंतर्निहित फाइल अभी भी आपके द्वारा लिखने योग्य नहीं है, तो विम अभी भी इसे लिखने में असमर्थ होगा।


इसे कैसे उल्टा करें और केवल पढ़ने के लिए वापस जाएं?
लुई होंग

2
@ लुईसहॉन्ग बहुत आसानी से :set ro:।
फिलिप कर्न्स

1
यह सही है यदि आप एक लिखने योग्य फ़ाइल खोलते हैं, viewलेकिन फिर इसे संपादित करने का निर्णय लेते हैं।
वारबकी

9

आप chmodविम के भीतर से भाग सकते हैं :

:!chmod +w %

!का मतलब है एक शेल कमांड चलाना, और %वर्तमान फ़ाइल नाम है। आप केवल फ़ाइल लिखने को बाध्य कर सकते हैं:

:w!

3

माइकल Mrozek के जवाब के अलावा , आप अपने लिए एक पंक्ति जोड़ सकते हैं .vimrcजो आपको एक ऐसी फ़ाइल को लिखने की अनुमति देता है जिसे आपने एलिवेटेड अनुमतियों के साथ खोलने की उपेक्षा की है:

" Allows writing to files with root priviledges
cmap w!! w !sudo tee % > /dev/null

यदि फ़ाइल केवल पढ़ी जाती है, तो आपको केवल दर्ज करना :w!!होगा, आपको अपने पासवर्ड के लिए संकेत दिया जाएगा और फिर फ़ाइल को सफलतापूर्वक लिखा जाएगा।


2

:set noroनौकरी करते समय , यह जांच नहीं करता है कि क्या फ़ाइल किसी अन्य विम उदाहरण द्वारा खोली गई है या यदि बाहरी रूप से बदली गई है तो फ़ाइल को अपडेट करता है।

इसे संपादन योग्य बनाने के लिए और स्वैप फ़ाइलों की जांच करें (जो कि डिफ़ॉल्ट फ़ाइल को vim के साथ खोलने के लिए है) बस एडिट कमांड (: एडिट एडिट) का उपयोग करें:

:e

ध्यान दें, अगर फ़ाइल में कभी भी छेड़छाड़ की गई है (विम के बाहर भी), तो यह वर्तमान बफर में बदलावों को अपडेट करेगा (जो मुझे सामान्य रूप से वांछनीय लगता है)।


1

यहाँ मैं जा रहा हूँ, हालांकि थोड़ी देर, शायद आप पहले से ही अपने संदेह को हल कर चुके हैं;) मैंने किसी भी तरह की टिप्पणियों में नहीं देखा है जो मुझे विम के साथ पता है , इसलिए, मैं इसे जोड़ता हूं:

आप किसी फ़ाइल को संपादित कर रहे हैं के बाद, आप प्रेस :wया :wq, और आप कष्टप्रद संदेश " E45 'केवल पढ़ने के लिए' विकल्प सेट है (ऐड! ओवरराइड करने के लिए) "

E45 आसानी से सेट किया गया है (ओवरराइड में जोड़ें)

आपको लिखना आता है

:w !sudo tee %

w! सुडो टी%

  • w बफर लिखते हैं,
  • !sudo सुडोल के साथ शेल को कॉल करता है,
  • teevim :wटी के साथ आउटपुट के आउटपुट को रीडायरेक्ट करता है , और
  • % वर्तमान फ़ाइल नाम है

और वह चाल चलनी चाहिए। ध्यान दें कि यह फ़ाइल को vim में पुनः लोड करने के लिए संकेत देगा, जिसके लिए आपको L दबाना होगा

यहाँ छवि विवरण दर्ज करें

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