কেবল ফাইল পড়তে পরিবর্তনগুলি অবরুদ্ধ করা হচ্ছে


14

কেবলমাত্র পঠনযোগ্য ফাইল সম্পাদনা করার জন্য ভিম ব্যবহার করার সময় এটি প্রথমবার সম্পাদিত হওয়ার পরে কেবল একটি সতর্কতা সরবরাহ করবে তবে কোনও পরিবর্তন ঘটতে দেবে। আমি বুঝতে পারি যে এই আচরণটি অন্য কারও নামে ফাইলটি সংরক্ষণের উদ্দেশ্যে কারও পক্ষে কার্যকর হতে পারে; তবে আমি মাঝে মাঝে এমন ফাইলগুলি খুলি যা আমার কাছে লেখার অ্যাক্সেস নেই, তারপরে ভুলে গিয়ে পরিবর্তনগুলি করে।

এমন কোনও মোডে প্রবেশ করা কি সম্ভব যেখানে ভিম ফাইলটি দেখার অনুমতি দেবে কিন্তু পরিবর্তনগুলির যে কোনও বিকল্পকে ব্লক করবে?

উত্তর:


13

আমি একটি সমাধান খুঁজে পেয়েছি। সেটিংস nomodifiableফাইল সম্পাদনা করা (সহায়তা উইন্ডো হিসাবে ব্যবহৃত) প্রতিরোধ করে। আমি সেট করেছি এবং এটি কোনও অটোসিএমডিতে সংযুক্ত করেছি modifiableকিনা readonlyতার উপর নির্ভর করে সেট করতে বা আনসেট করার জন্য একটি সাধারণ ফাংশন তৈরি করেছি।

" Don't allow editing of read only files
autocmd BufRead * call RONoEdit()

function! RONoEdit()
  if &readonly == 1
    set nomodifiable
  else
    set modifiable
  endif
endfunction

4
আপনি এটি করে আরও খাটো করে তুলতে পারেন:let &modifiable = !&readonly
মার্টিন টর্নয়েজ

@ কার্পেটস্মোকার ওয়ান লাইনার হিসাবে আরও অনেক ভাল, ধন্যবাদ! তবে এটি এখনও হতে হবে: autocmd BufRead * let &modifiable = !&readonly
জিরো কেলভিনকিবোর্ড

এটির সাহায্যে কোনও readonlyফাইল খোলার পরে একটি নতুন বাফার তৈরির পরে নতুন বাফারটি শেষ হয় nomodifiable
প্রেক্সিওলিটিক

এটি নির্দেশ করার জন্য ধন্যবাদ, আমি লক্ষ্য করি নি। আমি নিশ্চিত না যে কিভাবে একটি নতুন বাফার পরীক্ষা করতে হবে।
জিরো কেলভিনকিবোর্ড

1
@ প্রক্সিওলিটিক: আমি সবেমাত্র একটি উত্তর পোস্ট করেছি যাতে এর সমাধান করা উচিত, এটি কাজ করে কিনা তা আমাকে জানান।
s4y

7

এটি আপনার .vimrc এ যুক্ত করুন:

autocmd BufRead * let &l:modifiable = !&readonly

এটি কেবলমাত্র বর্তমান বাফারকে প্রভাবিত করার জন্য @ জিরো কেলভিনকিবোর্ডের জবাবটি তৈরি করে।
s4y

0

উপরের উত্তরগুলি যতটা সঠিক, অ্যাকাউন্টে নেওয়ার মতো আরও একটি বিষয় রয়েছে: যতক্ষণ না ফাইল "কেবল পঠনযোগ্য" থাকে ততক্ষণ ফাইলের বিষয়বস্তু পরিবর্তনের কোনও উপায় থাকা উচিত না যদি না আপনি ফাইলটির মালিক হন বা না ফাইলটি লিখনযোগ্য করার অধিকার রয়েছে। এবং তারপরেও ভিম ​​ফাইলটিতে পরিবর্তনগুলি লিখবে না যতক্ষণ না আপনি স্পষ্টভাবে "কেবলমাত্র পঠনযোগ্য" রাষ্ট্র দ্বারা ": w!" ওভাররাইড করবেন না।

যদি আপনি প্রকৃতপক্ষে কেবলমাত্র পঠনযোগ্য বলে মনে করা হয় এমন কোনও ফাইল সম্পাদনা করতে পারেন তবে আপনি অধিকারগুলি আবার যাচাই করতে চাইতে পারেন, সেখানে কোনও সুরক্ষা ভুল কনফিগারেশন থাকতে পারে। যদি আপনি কেবল ভিএম ফাইলটি সম্পাদনা করতে অক্ষম করেন তবে সম্পাদনার অন্যান্য উপায়গুলি এখনও স্থির থাকবে তাই যদি ফাইলটি পরিবর্তন না করা হয় তবে তার অধিকারগুলি সঠিকভাবে সেট করা উচিত। উইন্ডোজগুলিতে, আপনি প্রত্যেকের কাছে ডানদিকে পরিবর্তনকে স্পষ্টভাবে অস্বীকার করে ফাইলটিকে কেবল পঠন করতে বাধ্য করতে পারেন, লিনাক্সে আপনি "অপরিবর্তনীয়" বর্ধিত বৈশিষ্ট্য (chattr + i) ব্যবহার করতে পারেন।


2
আমি খুব স্পষ্ট না হলে দুঃখিত। এই প্রশ্নটি দুর্ঘটনাক্রমে কেবল পঠনযোগ্য ফাইল পরিবর্তন করার বিষয়ে নয়; আমি কোনও ফাইলের বাফার সম্পাদনা করতে সক্ষম হওয়া থেকে নিজেকে আটকাতে চেয়েছিলাম যার জন্য আমার কাছে লেখার অ্যাক্সেস নেই। কখনও কখনও আমি দুর্ঘটনাক্রমে রুট ব্যবহারকারীর চেয়ে নিয়মিত ব্যবহারকারী হিসাবে সিস্টেম কনফিগারেশন ফাইলগুলি খুলি। এই ক্ষেত্রে আমার কাছে ফাইলে লেখার অ্যাক্সেস নেই, সুতরাং বাফারটি কেবল পঠিত হিসাবে উপস্থিত হবে তবে ভিম এখনও আমাকে বাফার সম্পাদনা করার অনুমতি দেবে। যখন আমি সংরক্ষণ করার চেষ্টা করি তখন আমার পক্ষে লেখার অ্যাক্সেস না থাকায় পারি না। আমি চেয়েছিলাম যে এই ক্ষেত্রে ভিফ বাফারের পরিবর্তনগুলি ব্লক করে।
জিরো কেলভিনকিবোর্ড

আহ আমি দেখি. আমি ধারণা পেয়েছি যে আপনি এটি একটি ব্যর্থসেবক হিসাবে চেয়েছিলেন। তখন আমার উত্তরটিকে উপেক্ষা করুন :)
মিক্কি

ওপি'র অর্থ হ'ল যখন কেউ ওএস-এ কেবল পঠনযোগ্য নয় এমন একটি ফাইল খোলেন, তবে তিনি বর্তমানে পরিবর্তন করতে (বা উপযুক্ত বিবেচনা করতে) চান না এবং নিজেকে এতে সীমাবদ্ধ রাখতে চান না। আমি ঠিক একই চিন্তা করছি, এভাবে গুগল থেকে এখানে যাচ্ছি!
ভায়োল্যাটার্টিন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.