ভিআইএম সোয়াপ-ফাইল সেরা অনুশীলন?


14

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


5
অদলবদল ফাইল আপনার কাজ রক্ষার জন্য আছে। Gnu স্ক্রিন ব্যবহার বিবেচনা করুন।

1
আমি কার্যকারিতা বন্ধ করতে চাই না; এটি বিরক্তিকর তবে যেমনটি আপনি দরকারী হিসাবে বর্ণনা করছেন।
leeand00

1
আমি কীভাবে এটি সঠিকভাবে ব্যবহার করতে হয় তা জানতে চাই।
leeand00

2
@ শ্রাবল আমি tmux ব্যবহার করি
leeand00

2
আপনি যদি টিএমউক্স ব্যবহার করেন, আপনার সংযোগটি হারাতে আপনার চিন্তা করার দরকার নেই: আপনি পুনরায় সংযোগ করার সময় আপনার সেশনে পুনরায় সংযুক্ত হন। আপনি মোশ এবং @ ক্রিশ্চিয়ানব্র্যান্ডের পুনরুদ্ধার প্লাগইনে আগ্রহী হতে পারেন ।
ধনী

উত্তর:


24

আতঙ্কিত হবেন না!

ফাইলগুলি পুনরুদ্ধার করা সর্বদা নিরাপদ, কারণ আপনি নিজের নিজের লেখা না হওয়া পর্যন্ত ভিআইএম কখনও কোনও পরিবর্তন লেখেন না । সুতরাং অদলবদল ফাইল থেকে পুনরুদ্ধার এবং তারপরে সংরক্ষণ না করে বন্ধ করা কোনও পরিবর্তন করবে না।

আপনার swapfiles সংগঠিত:

আপনার সমস্ত অদলবদল ফাইল একই জায়গায় রাখার জন্য ভিম পান, যাতে আপনি সর্বদা জানেন যে সেগুলি কোথায়:

set directory^=$HOME/.vim/swap//

বা আপনি যেখানে পছন্দ করুন। ব্যবহারের //ফাইলের নাম শেষে তাই আপনি নাম দুর্ঘটনায় পাবেন না swap 'র ফাইলের নাম জন্য পরম ফাইল পাথ ব্যবহার তেজ করে তোলে। ডিরেক্টরিটি বিদ্যমান রয়েছে তা নিশ্চিত করুন, বা ভিম এটি ব্যবহার করবে না (এটি এটি আপনার জন্য তৈরি করবে না)।

দ্রষ্টব্য: এটি কেবল পরিবেশের ভেরিয়েবলগুলিতে কাজ করে, আপনি যদি একটি ভিমস্ক্রিপ্ট ভেরিয়েবল ব্যবহার করতে চান তবে আমাদের কিছু :executeজাদু ব্যবহার করতে হবে :

execute "set directory^=".my_vim_home_var."/swap//"

পার্থক্যগুলি পৃথক করুন:

তেজ সাহায্য এই অবস্থায় ব্যবহার করার জন্য একটি খুব দরকারী কমান্ড প্রস্তাব দেওয়া: :DiffOrig। এটি কোনও ডিফল্ট ভিআইএম কমান্ড নয় , তাই বাস্তবায়নটি :h :DiffOrigআপনার ভিআইএমআরসি থেকে অনুলিপি করুন । ( $VIMRUNTIME/defaults.vimআপনার ভিএম 8 থাকলে এটিতেও থাকে)। এখন, আপনি ফাইলটি পুনরুদ্ধার করতে পারবেন এবং অশোধিত সংস্করণ থেকে কী পরিবর্তন হয়েছে তার একটি ভিমডিফ পেতে কেবল ডিফআরিগ চালাতে পারেন।

আপনি যদি একাধিক সোয়াপ ফাইলের বিষয়বস্তু তুলনা করতে চান তবে প্রতিটি ফাইল আলাদা আলাদা স্ব্যাপ ফাইলের সাথে পুনরুদ্ধার করুন এবং তারপরে অস্থায়ী ফাইলগুলিতে ফলাফল লিখুন। এখন ফাইলগুলি লোড করুন এবং :diffthisপ্রতিটি ফাইলে চালান , আপনি যে পরিবর্তনগুলি চান তা করুন, মূল ফাইলটিতে আবার লিখুন এবং অস্থায়ী এবং অদলবদল ফাইলগুলি মুছুন।

কার্যকর আদেশ:

:swapname: বর্তমান বাফার ( :h :swapname) এর জন্য অদলবদল ফাইলটির জন্য ভিআইএম নামটি ব্যবহার করুন :recover: আপনি নির্বাচিত ফাইলটি পুনরুদ্ধার করুন, যখন আপনি ভিএম শুরু করেন এবং চাপুন R( :h :recover)

সহায়তাটি দেখুন:

: তেজ একটি সম্পূর্ণ পুনরুদ্ধার ব্যবহারকারীর সহায়িকার অধ্যায় আছে :usr_11.txt
: swap 'র ফাইল তেজ এর রেফারেন্স সাহায্যের :h swap-file, h recovery
(swap' র ফাইল অবস্থান সেট করার জন্য) ডিরেক্টরির অপশনটি সাহায্য::h 'directory'

সম্পাদনা: ডিরেক্টরি নির্ধারণের জন্য পরিবর্তিত উদাহরণ, যেমনটি @ বি লেয়ারের মন্তব্যে উল্লেখ করা হয়েছে


আপনি যখন একাধিক সোয়াপ ফাইলগুলি শেষ করবেন তখন কী হবে? অনেক গুলো সংযোগ ফেলে দেওয়ার কারণে?
leeand00

1
আমি উল্লেখ করেছি "পার্থক্যগুলি আলাদা করুন" এর দ্বিতীয় অনুচ্ছেদে in একবার আপনি কী পরিবর্তনগুলি নিজের তৈরি সমস্ত অস্থায়ী ফাইল এবং পুরানো অদলবদল ফাইলগুলি মুছে রাখতে চান তা নির্ধারণ করতে (এখন আপনি জানেন যে সমস্ত সোয়াপ ফাইলগুলি কোথায় রয়েছে) তা নির্ধারণ করতে আলাদাভাবে ব্যবহার করেছেন।
ফ্লিমিংফ্লেমিং

1
এফওয়াইআই, আপনার ব্যবহার করার দরকার নেই exec... set directory^=$HOME/.vim/swap//যতক্ষণ না $HOMEএকটি প্রাথমিক পরিবেশের পরিবর্তনশীল ততক্ষণ ঠিক কাজ করে । দেখুন :h expand-env। সাথে কাজ করে dictionary, undodirএবং backupdirকয়েকজনের নাম লিখতে।
বি লেয়ার

আমাকে সে সম্পর্কে মনে করিয়ে দেওয়ার জন্য ধন্যবাদ! আমি পরিবর্তে সেখানে আমার কনফিগারেশনে একটি উইমস্ক্রিপ্ট ভেরিয়েবল ব্যবহার করি, সুতরাং কার্যকর করুন, এবং ভুলে যাওয়া পরিবেশের ভেরিয়েবলগুলি এর প্রয়োজন নেই। এটি ভেবে, আমার পরিবর্তে পরিবেশের পরিবর্তনশীল সেট করার জন্য আমার সম্ভবত ভিএম ব্যবহার করা উচিত।
ফ্লিমিংফ্লেমিং

2

ব্যক্তিগতভাবে, আমি অদলবদল এবং ব্যাকআপ ফাইলগুলি বন্ধ করে দিয়েছি, কারণ এটি সর্বত্র স্ব্যাপ ফাইল এবং ব্যাকআপ ফাইলগুলি তৈরি করে এবং প্রায়শই বিবাদ সৃষ্টি করে। ভিমের অবিচলিত-পূর্বাবস্থা অনেক বেশি নির্ভরযোগ্য এবং ত্রুটিমুক্ত হয়েছে।

ভিমের বর্তমানে অবিচ্ছিন্নভাবে পূর্বাবস্থা আছে, এটি ব্যাকআপের অনেক বেশি সূক্ষ্ম দানযুক্ত পদ্ধতি। প্রতিবার, আপনি টিপুন Esc, ফাইলের বর্তমান অবস্থা ক্যাপচার করা হয়।

আপনার পূর্বাবস্থায় ইতিহাসটি ব্রাউজ করতে আপনি গুন্ডো , বা পূর্বে -গাছের:undolist মতো প্লাগইন ব্যবহার করতে পারেন।

এইভাবে ভিএম ব্যবহার করতে:

  • এমন একটি ডিরেক্টরি তৈরি করুন যেখানে আপনি প্রতিটি ফাইলের ইতিহাস সম্পাদনা করবেন
  • ডিরেক্টরিটি ব্যবহার করতে ভিমকে বলুন
  • অবিচ্ছিন্ন পূর্বাবস্থায় সক্ষম করুন

শেলের মধ্যে:

mkdir ~/.vim/undodir

ভিমে

set undodir=~/.vim/undodir
set undofile

সোয়াপ ফাইলগুলি বন্ধ করতে: :set noswapfile


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