यह सुनिश्चित करने के लिए कि फ़ाइल में कोई परिवर्तन नहीं किए गए हैं


11

वैसे भी मैं यह सुनिश्चित कर सकता हूं कि कोई फ़ाइल लॉक हो ताकि मैं उसमें कोई बदलाव न कर सकूं। क्या किसी फ़ाइल को vim में लॉक / अनलॉक करने के लिए कोई कमांड है। कुछ समय मैं एक फाइल को रीडायनली मोड में रखना चाहूंगा।

जवाबों:


12

आप फ़ाइल को केवल पढ़ने के लिए सेट कर सकते हैं और संशोधित करने के लिए नहीं

:set readonly
:set nomodifiable

अधिक मदद के लिए देखें:

:h 'readonly'
:h 'modifiable'

1
आप सेट (देखें ) के साथ फ़ाइल को स्वचालित रूप से उपयोग vim -Rया viewखोलने के लिए भी कर सकते हैं । readonly:help -R
मार्टिन टूरनोइज

9

विकल्प -Rसेट करने के लिए फ़ाइल खोलने पर ध्वज का उपयोग करके फ़ाइल को खोलने का सबसे आसान तरीका है readonly

vim -R filename.txt
vi -R filename.txt

विम के लिए, आप viewएक फ़ाइल खोलते समय कमांड का उपयोग कर सकते हैं , जो इसके बराबर है vim -R:

view filename.txt

ध्यान दें कि readonly विकल्प एक जबरन लिखने से नहीं रोकता है । यदि आप :w!फ़ाइल का उपयोग करते हैं, तो इसकी परवाह किए बिना लिखा जाएगा। हालांकि, "लुक टच नहीं" के लिए एक सुरक्षा उपाय के रूप में, -Rआकस्मिक लेखन को रोकने में बहुत मददगार हो सकता है।

आपके द्वारा उपयोग किया जा सकने वाला एक और समाधान एक खाली फ़ाइल बफर खोलने के लिए है, और उस फ़ाइल को पढ़ें जिसे आप देखना चाहते हैं:

vim
# Then, from inside vim:
:r filename.txt

यह काफी सुरक्षित है क्योंकि आपके पास एक अनाम बफ़र है - आप गलती से आपके द्वारा पढ़ी गई फ़ाइल को अधिलेखित नहीं कर सकते हैं (हालांकि यदि आप फिर से फ़ाइल नाम टाइप करते हैं तो आप जानबूझकर ऐसा कर सकते हैं)। हालाँकि आपको अपनी सेटिंग्स के आधार पर इस तरह से हाइलाइट करने वाला स्वचालित सिंटैक्स नहीं मिल सकता है।


कई यूनियनों पर, viewबाइनरी अक्सर बाइनरी की एक हार्ड-लिंक होती है vi, और उन प्रणालियों पर, यहां तक ​​कि नियमित रूप से vi, जब यह देखता है कि इसे लागू किया गया है view, तो फ़ाइल को केवल-पढ़ने के लिए मोड में खुलेगा। तो यह केवल विम नहीं है
ओलिवियर दुलैक

@OlivierDulac, शायद नहीं, लेकिन मैं नहीं यह में निर्दिष्ट POSIX-या तो देख पा रहे हैं के लिएex या के लिएvivi -R है निर्दिष्ट।
वाइल्डकार्ड

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