আমি কীভাবে অনফিল ব্যবহার করতে পারি?


36

উইম.আর.জে সর্বশেষ সংবাদ আইটেমটি আপনার ইতিহাস সংরক্ষণ করতে 'আনডোফিল' ব্যবহার করার বিষয়ে কথা বলে এবং পুনরায় বুট করার পরেও পরিবর্তনগুলি পূর্বাবস্থায় ফেরাতে:

আমি নিজেকে ব্যবহার করে যে বৈশিষ্ট্যটি উপভোগ করি তা অনেক ব্যবহারকারীদের কাছে জানা যায় না, কারণ আমি গত সপ্তাহান্তে খুঁজে পেয়েছি। আপনার পছন্দ অনুযায়ী যতগুলি স্তরের পূর্বাবস্থায় ফিরে আসার পাশাপাশি, ভিম কোনও ফাইলে পূর্বাবস্থায় থাকা তথ্য সংরক্ষণ করারও প্রস্তাব দেয়। সুতরাং আপনি ভিম থেকে প্রস্থান করতে পারেন, আপনার কম্পিউটারটি পুনরায় বুট করতে পারেন এবং এখনও আপনার করা পরিবর্তনগুলি পূর্বাবস্থায় ফিরিয়ে নিতে পারেন। 'আনডোফিল' এর জন্য সহায়তা দেখুন। (ব্রাম মোলেনার)

আমি কীভাবে এই বৈশিষ্ট্যটি সক্ষম ও ব্যবহার করতে পারি?


উত্তর:


37

সর্বাধিক সহজ সংস্করণটি: ~/.vim/undo-dir/ডিরেক্টরি তৈরি করুন এবং নিম্নলিখিতগুলিতে যুক্ত করুন .vimrc:

set undodir=~/.vim/undo-dir
set undofile

যাইহোক, এটি ত্রুটিহীন নয়, এবং এটি পড়তে ভাল। আমার নিজের থেকে .vimrc:

" Let's save undo info!
if !isdirectory($HOME."/.vim")
    call mkdir($HOME."/.vim", "", 0770)
endif
if !isdirectory($HOME."/.vim/undo-dir")
    call mkdir($HOME."/.vim/undo-dir", "", 0700)
endif
set undodir=~/.vim/undo-dir
set undofile

আমি পূর্বাবস্থায় ফিরিয়ে ফেলা ফাইলের সাথে এলোমেলো ডিরেক্টরি না খেয়ে পছন্দ করি। সুতরাং আমি undodirবিকল্পটি সেট করেছিলাম , যা তাদের সমস্তকে একটি পূর্ববর্তী ডিরেক্টরিতে রাখে। এটি একটি সমস্যা ছেড়ে দেয় — আমি অলস, এবং আমার সমস্ত মেশিনে ডিরেক্টরিটি তৈরি করার মতো মনে হয় না (আমি একটি মেশিনের একত্রে আমার সিঙ্ক করতে একটি সংস্করণ নিয়ন্ত্রণ ব্যবস্থা ব্যবহার করি .vimrc)। ধন্যবাদ, Vim চেক করা এবং ডিরেক্টরিগুলি উপস্থিত না থাকলে তাদের তৈরি করা যথেষ্ট সহজ।

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

শেষ অবধি, কোনও সিস্টেম অস্থায়ী ডিরেক্টরি না হওয়া, এটি সিস্টেম অস্থায়ী ক্লিনআপ নীতি সাপেক্ষে নয়। প্রায়শই, এটি মোটামুটি সংক্ষিপ্ত — এক সপ্তাহ বা তার বেশি। তবে এটি চিরকাল বাড়তে থেকে বাঁচতে আমি নিম্নলিখিতগুলিকে আমার মধ্যে রেখেছি crontab:

# m h  dom mon dow   command
 43 00 *   *   3     find /home/anthony/.vim/undo-dir -type f -mtime +90 -delete

সুতরাং 90 দিন পরিবর্তিত না হওয়ার পরে সেগুলি মুছে ফেলা হয়েছে। (সত্যি বলতে কী, এগুলি আসলে এত বড় নয়, আপনি সহজেই কীভাবে সস্তা ডিস্কের সাহায্যে এগুলি চিরতরে রেখে যেতে পারেন But তবে আপনার মেশিনটি যদি কখনও আপস করে তবে আপনার নিজের গোপনীয়তার বিষয়টিও বিবেচনা করুন))


বিস্তারিত উত্তরের জন্য ধন্যবাদ_ডারবার্ট! আমি জানি এটি একটি পুরানো প্রশ্ন, তবে আমি পুরানো ভিম পূর্বাবস্থার ফাইলগুলি ( vi.stackexchange.com/questions/16053/… ) মুছে ফেলার একটি ভিমস্প্রিপ্ট পদ্ধতি নিয়ে আসার চেষ্টা করছি । আমি মনে করি এটি সেভাবে করা আরও পরিষ্কার হবে তবে এটি সহজ নয় ing আপনি কি কখনও কখনও পুরানো ভিআইএম ফাইলগুলি মুছতে একটি ভিমস্ক্রিপ্ট ব্যবহার করার কথা ভেবেছিলেন? যদি তা না হয় তবে আপনি কি এখনও কোনও উইমস্ক্রিপ্টের উপরে ক্রন্টব ব্যবহার করবেন?
লোগান

1
@ লোগান একটি ভিআইএম স্ক্রিপ্ট ব্যবহার করা কেবল তখনই কাজ করবে যখন ভিএম চলমান থাকবে, এবং যদি একাধিক ভিআইএম চালু থাকে তবে কী হবে? এই ক্রোন লাইনটি সহজ, এই সমস্যাগুলি থেকে ভোগেন না এবং স্পষ্টভাবে সঠিক ...
ডার্বোবার্ট

দেখে মনে হচ্ছে mkdir()ফাংশনটি প্যারামিটারের "p"বিকল্প সহ একাধিক ডিরেক্টরি কাঠামো তৈরি করতে সহায়তা করে {path}। সুতরাং উপরের স্ক্রিপ্টটি কিছুটা সহজ করা যায়। call mkdir($HOME."/.vim/undo-dir", "p", 0700)আমার জন্য কমপক্ষে 7.4.160 ভিমে কাজ করে ।
jdhao
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.