উত্তর:
একটি বিল্টিন বিকল্প নেই, যদিও :help 'autosave'
(টুডট.এক্সটিএস্টে) এই জাতীয় বিকল্পটি কী করতে পারে তার একটি বিবরণ উল্লেখ করে।
এটি বাস্তবায়নের একটি সম্ভাব্য উপায় CursorHold
হ'ল অটোকমন্ড ইভেন্টটি ব্যবহার করা । এই ইভেন্টটি ট্রিগার করা হয় যখন ব্যবহারকারী 'updatetime'
মিলিসেকেন্ডের জন্য কোনও কী টিপেনি।
autocmd CursorHold * update
:update
যদি এটা রুপান্তরিত করা হয়েছে কমান্ড শুধুমাত্র বাফার পরিমাণ সঞ্চয় হয়। Alsoোকানো মোড সক্রিয় থাকাকালীন আপনিও যদি এটি ঘটতে চান, CursorHoldI
ইভেন্ট তালিকায় যোগ করা যেতে পারে।
autocmd CursorHold,CursorHoldI * update
আরেকটি বিকল্প হ'ল 'autowrite'
বিকল্প, যা বাহ্যিক কমান্ড চালানোর আগে বাফারটি সংরক্ষণ করবে (চালানোর আগে সংরক্ষণের জন্য দরকারী :make
) বা অন্য কোনও বাফারে স্যুইচ করতে হবে।
ভিমের একটি অটো-সেভ বৈশিষ্ট্য রয়েছে তবে এটি এটি "পুনরুদ্ধার" ফাইলটিতে সংরক্ষণ করে।
আপনি যখন কোনও দস্তাবেজ সম্পাদনা করবেন, উদাহরণস্বরূপ MyFile.txt
vim পুনরুদ্ধার ফাইলটি তৈরি করবে .MyFile.txt.swp
। যদি আপনার সিস্টেমটি ক্র্যাশ হয়ে থাকে বা আপনার সেশনটি মারা গিয়েছিল, তবে আপনি পুনরায় সংযোগ করতে পারেন এবং টাইপ করে আপনি যেখানে ফিরে গিয়েছিলেন সেখান থেকে পুনরুদ্ধার করতে পারেন:
vim -r MyFile.txt
এটি সম্পাদনা করার জন্য ফাইলটি খুলবে এবং আপনি এতে সর্বশেষ পরিবর্তনগুলি পুনরুদ্ধার করবেন।
তারপরে আপনি পুনরুদ্ধার করা সংস্করণটি স্বাভাবিক উপায়ে সংরক্ষণ করতে পারেন :w
।
দুর্ভাগ্যক্রমে, আপনি যখন ভিম থেকে প্রস্থান করবেন, তখন এটি .MyFile.txt.swp
চারপাশে চলে যাবে এবং আপনাকে এটি ম্যানুয়ালি সরানো দরকার:
rm .MyFile.txt.swp
দেখুন "রিকভারি" ম্যান পৃষ্ঠা এছাড়াও অধ্যায় 11
:wq
বা :q!
বা ZZ
বা ইত্যাদি), swap 'র ফাইলগুলো স্বয়ংক্রিয়ভাবে অপসারণ করা উচিত।
আমি একটি প্লাগইন তৈরি করেছি ভিম -অটোস্যাভ যা আপনার বাফারগুলিকে পর্যায়ক্রমে সংরক্ষণ করতে টাইমারের ভিম 8 বৈশিষ্ট্য ব্যবহার করে।
প্রতিবার ফোকাস হারিয়ে গেলে আমি আমার ভিমে সমস্ত কিছু সংরক্ষণ করি।
autocmd FocusLost <your-patterns-here> silent! wall
আমার নিদর্শনগুলি বেশ দীর্ঘ এবং আমি এগুলি কয়েকটি স্বতঃআরকম্ডগুলিতে ব্যবহার করি তবে সম্পূর্ণতার জন্য এটি দেখতে এটির মতো দেখাচ্ছে:
if exists(':keeppatterns')
let s:keeppatterns = 'keeppatterns '
else
let s:keeppatterns = ''
endif
augroup AutoSaveGroup
" :help file-pattern has some info,
" but some of it is is buried in the PATTERNS section of usr_40.txt
let s:autoPattern = "*.{c,h,[ch]pp,[acjt]s,inl,cg,cgfx,fx,py,bat,cmd,jam,vim,yml,yaml,vsprops,erb,rb,html,htm},SCons*,*vimrc"
autocmd!
execute "autocmd FocusLost" s:autoPattern "silent! wall"
execute "autocmd BufWritePre" s:autoPattern s:keeppatterns . 'call FixFormatting(expand("<afile>"))'
execute "autocmd FileChangedRO" s:autoPattern "silent !p4 edit %:p"
execute "autocmd FileChangedRO" s:autoPattern "write!"
autocmd FocusLost *.txt silent! wall
augroup END
যেমনটি অন্যেরা সূচিত করেছে, ভিমে একটি অদলবদল (.swp) রয়েছে যা আপনার আসল ফাইলটি যেখানেই তৈরি হবে তবে আপনার .vimrc ফাইলে আপনি .swp ডিরেক্টরিটি সেট করতে পারেন।
আপনাকে ডিরেক্টরিটি তৈরি করতে হবে mkdir
এবং তারপরে আপনার .vimrcটিকে সেই স্থানে সেট করতে হবে।
set backup " make backup files
set backupdir=~/.vim-tmp,~/.tmp,~/tmp,/var/tmp,/tmp
তেজ-কর্মক্ষেত্র প্লাগইন মোটামুটি স্বনির্ধারিত স্বয়ংক্রিয় সংরক্ষণ বৈশিষ্ট্য যা আপনার প্রয়োজন অনুসারে হতে পারে। ডিফল্টরূপে, ওয়ার্কস্পেস সেশনে (এটির মূল বৈশিষ্ট্য) থাকাকালীন এটি অটোস্যাভ সক্ষম করে, তবে আপনি যদি ( let g:workspace_autosave_always = 1
) সন্ধান করেন তবে আপনি সর্বদা এটি স্বয়ংক্রিয় সংরক্ষণে সেট করতে পারেন ।
যখনই পাঠ্য পরিবর্তন হবে বাফারটি সংরক্ষণ করার চেষ্টা করুন:
autocmd TextChanged,TextChangedI <buffer> silent write
এটি আমার পক্ষে কাজ করে।