আপনি যদি সম্ভাব্যভাবে সংরক্ষণ না করে পাঠ্যটি না হারানোর বিষয়ে চিন্তা করেন তবে এই বার্তাটি আসলে বেশ গুরুত্বপূর্ণ । এটি করা উচিত নয় বিরক্তিকর বিবেচনা করা, এবং উচিত না আপনি তড়িঘড়ি swap 'র ফাইল বা কনফিগার মুছে ফেলতে কারণ vim
এটা ছাড়া চালানোর জন্য।
আপনি সম্পাদনা করার সময় vim
যে কোনও ফাইলের সম্পাদনা করার সময় এটি সম্পর্কিত স্ব্যাপ ফাইল থাকবে যা vim
পরিবর্তনের উপর নজর রাখতে পারে। আপনি যখন কোনও ফাইল সম্পাদনা করা ছেড়ে vim
দিবেন, তখন স্বয়ংক্রিয়ভাবে সম্পর্কিত সোয়াপ ফাইলটি বাতিল হয়ে যাবে। অতএব, অদলবদলের অস্তিত্ব এবং মূল ফাইলটি উপরে লেখার আপনার প্রচেষ্টা বিবেচনা এবং যথাযথ ব্যবস্থা গ্রহণের কারণ হতে হবে।
( E325: ATTENTION Found a swap file
) বার্তায় উপস্থাপিত দুটি পরিস্থিতি আসলে বেশ সাধারণ: (1) হয় অন্য কোনও vim
প্রোগ্রাম আপনি যে একই ফাইলটি সম্পাদনা করার চেষ্টা করছেন সেটি সম্পাদনা করছে (এটি আসলে অন্য একজন ব্যক্তি হতে পারে - এক্ষেত্রে এটি সত্যিকার অর্থে বোঝায় না অদলবদল করে অদলবদল ফাইল মুছতে - অথবা এটি অন্য টার্মিনাল উইন্ডো বা ট্যাবে আপনি হতে পারেন), বা (২) পূর্ববর্তী vim
সেশনটি ক্র্যাশ হয়ে গেছে (প্রায়শই এটি ঘটে যখন আপনি দূরবর্তী সম্পাদনা করছেন, এবং নেটওয়ার্ক সেশনটি বিচ্ছিন্ন হয়ে যায় - এতে যদি ভিএম সেশনটি স্বাভাবিকভাবে উপস্থিত হয় না, এবং .swp
ফাইলটি পিছনে থাকে; এই দ্বিতীয় দৃশ্যের আরেকটি উদাহরণ হ'ল আপনি দুর্ঘটনাক্রমে একটি সক্রিয় বা পটভূমি vim
সেশনযুক্ত টার্মিনাল উইন্ডো বা ট্যাবটি বন্ধ করে দিয়েছেন )।
আমি যখন এই বার্তাটির মুখোমুখি হই তখন আমি প্রথমে চিন্তা করি যে আমি এই ফাইলটি অন্য টার্মিনাল উইন্ডো বা ট্যাবে সম্পাদনা করছি কিনা, কারণ আমি সাধারণত বেশ কয়েকটি টার্মিনাল উইন্ডোতে বেশ কয়েকটি ট্যাব সহ পরিচালনা করি:
যদি আমি বুঝতে পারি যে আমি অন্য কোনও জায়গায় সম্পাদনা করছি, এবং এটিতে ফিরে আসতে পারি তবে আমি এই অতিরিক্ত অধিবেশনটির q
কীটি টিপুন (Q)uit
এবং মূল vim
সেশনের মাধ্যমে সম্পাদনাতে ফিরে আসব ।
কখনও কখনও যদি আমি পুরোপুরি নিশ্চিত না হয়ে থাকি (Q)uit
তবে আমি এবং তারপরে jobs
আমি vim
ঠিক একই টার্মিনালে চালাচ্ছি কিনা তা যাচাই করতে দৌড়ে যাই ; যদি কিছু না আসে তবে আমি অন্য কোথাও চলছি ps -ef | grep vim
কিনা তা পরীক্ষা করতে দৌড়ে এসেছি vim
(যেমন অন্য একটি টার্মিনাল উইন্ডো বা ট্যাবে)। মুল বক্তব্যটি হ'ল আমি সর্বদা মূল vim
অধিবেশনটি দিয়ে সম্পাদনা পুনরায় শুরু করার চেষ্টা করি ।
যদি আমি নিশ্চিত যে আমি মূল সম্পাদনা সেশনের আর আসতে পারবেন না, এবং আমি এখনও নিম্নলিখিত অপশন সঙ্গে উপস্থাপন করছি, তারপর আমি চাপুন r
করতে (R)ecover
।
Swap file ".notes.swp" already exists!
[O]pen Read-Only, (E)dit anyway, (R)ecover, (Q)uit, (A)bort:
টিপুন r
, আপনি এই মত একটি বার্তা দেখতে পাবেন:
Swap file ".notes.swp" already exists!
"notes" 18L, 46C
Using swap file ".notes.swp"
Original file "/private/tmp/notes"
Recovery completed. Buffer contents equals file contents.
You may want to delete the .swp file now.
Press ENTER or type command to continue
অন্যদিকে, আমি যদি এখন আর সেই বিকল্পগুলির মুখোমুখি না হই, কারণ আমি শেল প্রম্পটে আছি, তবে আমি বিকল্পটি vim
দিয়ে চালিয়ে যাচ্ছি -r
:
vim -r notes
ফলাফল বার্তা অনুরূপ হবে:
Using swap file ".notes.swp"
Original file "/private/tmp/notes"
Recovery completed. Buffer contents equals file contents.
You may want to delete the .swp file now.
Press ENTER or type command to continue
যেভাবেই হোক, ENTER
চালিয়ে যেতে টিপুন এবং আপনি নিজের ফাইলটি দেখতে পাবেন।
দ্রষ্টব্য: যদি ভিমের সন্ধান পেয়েছে সে সম্পর্কে সন্দেহ থাকে তবে এটি একটি ত্রুটি বার্তা দেবে এবং "???" দিয়ে লাইনগুলি সন্নিবেশ করবে লেখার ভিতর. যদি আপনি পুনরুদ্ধার করার সময় একটি ত্রুটি বার্তা দেখতে পান তবে "???" ফাইলটি অনুসন্ধান করুন কি ভুল তা দেখতে। আপনার প্রয়োজনীয় পাঠ্যটি কেটে পেস্ট করতে পারেন।
সর্বাধিক সাধারণ মন্তব্যটি হ'ল "??? লাইন মিসিং"। এর অর্থ হ'ল ভিম মূল ফাইলটি থেকে পাঠ্যটি পড়তে পারে না। সিস্টেমটি ক্র্যাশ হয়ে গেলে এবং মূল ফাইলের কিছু অংশ সংরক্ষণ না করা হলে এটি ঘটতে পারে।
এটি বলেছিল, আমি ???
এই চিহ্নগুলি কখনই দেখিনি , সুতরাং এটি অবশ্যই সত্যই বিরল ঘটনা।
এরপরে, অন্য ফাইলে বিষয়বস্তু সংরক্ষণ করুন (অর্থাত্ লিখুন) (সাধারণত আমি মূল ফাইলের শেষে "2" সংযুক্ত করি):
:w notes2
এরপরে, এই vim
অধিবেশনটি জোর করে ছেড়ে দিন :
:q!
এরপরে, দুটি ফাইলের তুলনা করুন:
diff notes notes2
যদি diff
কিছু কিছু না ফেরায় , তার অর্থ কোনও পার্থক্য নেই এবং অদলবদল ফাইল এবং দ্বিতীয় ফাইল উভয়ই সরিয়ে ফেলা নিরাপদ:
rm .notes.swp notes2
এই মুহুর্তে, আসল ফাইলটি খুলুন এবং এগিয়ে যান যেমন কোনও সমস্যা হয়নি:
vim notes
যদি diff
কিছু ফেরত দেয় , তার অর্থ আসল ফাইলের (সোয়াপ ফাইলের মাধ্যমে) পরিবর্তন হয়েছিল যা পুনরুদ্ধার করার জন্য ধন্যবাদ, দ্বিতীয় ফাইলটিতে সংরক্ষণ করা হয়েছে।
যেহেতু এই পরিবর্তনগুলি দ্বিতীয় ফাইলটিতে ক্যাপচার করা হয়েছে আপনি অদলবদল মুছতে এবং দ্বিতীয়টি দিয়ে মূল ফাইলটি ওভাররাইট করতে নিরাপদ:
rm .notes.swp
remove .notes.swp? y
mv notes2 notes
overwrite notes? (y/n [n]) y
এই মুহুর্তে, আসল ফাইলটি খুলুন এবং এগিয়ে যান যেমন কোনও সমস্যা হয়নি:
vim notes
এটি অনেকটা কাজের মতো মনে হয়, তবে আপনি একবার ওয়ার্কফ্লোতে অভ্যস্ত হয়ে গেলে সর্বোচ্চ 20 সেকেন্ডের মতো লাগে।