عزيزي مستخدمي هذا البرنامج المساعد! آسف، لكنني لم أعد أحتفظ به! إذا كان أحدكم مهتمًا بالحفاظ عليه، فيرجى الاتصال بي وسأضيفك كمساهم.
الحفظ التلقائي - يحفظ التغييرات على القرص تلقائيًا دون الحاجة إلى استخدام :w
(أو أي ربط به) في كل مرة يتم فيها تعديل المخزن المؤقت أو بناءً على الأحداث المفضلة لديك.
مستوحاة من نفس الميزة في محرر النصوص RubyMine.
افتراضيًا، سيتم حفظ الحفظ التلقائي في كل مرة يتم فيها تغيير شيء ما في الوضع العادي وعندما يغادر المستخدم وضع الإدراج. هذا التكوين عبارة عن مزيج بين "الحفظ قدر الإمكان" و"محاولة تجنب تعطيل المكونات الإضافية الأخرى التي تعتمد على أحداث كتابة الملفات".
استخدم vundle أو قم بتنزيل الإصدار المعبأ من vim.org.
يتم تعطيل الحفظ التلقائي بشكل افتراضي، قم بتشغيل :AutoSaveToggle
لتمكينه/تعطيله.
إذا كنت تريد تمكين المكون الإضافي عند بدء التشغيل، استخدم خيار g:auto_save
.
" .vimrc
let g: auto_save = 1 " enable AutoSave on Vim startup
من الممكن أيضًا تجاوز قيمة g:auto_save
العامة بشكل فردي لكل مخزن مؤقت أو نافذة. على سبيل المثال، إذا قمت بتمكين الحفظ التلقائي على مستوى العالم، فيمكنك إلغاء الاشتراك في بعض الملفات. والعكس صحيح، يمكنك الاشتراك في بعض الملفات، عندما يكون الحفظ التلقائي معطلاً على مستوى العالم.
let g: auto_save = 0
augroup ft_markdown
au !
au FileType markdown let b: auto_save = 1
augroup END
سيتم عرض الحفظ التلقائي على سطر الحالة في كل عملية حفظ تلقائي بشكل افتراضي:
(AutoSave) saved at 08:40:55
يمكنك إسكات الشاشة باستخدام الخيار g:auto_save_silent
:
" .vimrc
let g: auto_save_silent = 1 " do not display the auto-save notification
يمكن تعديل الأحداث التي سيتم حفظها بواسطة الحفظ التلقائي باستخدام خيار g:auto_save_events
. سيؤدي استخدام InsertLeave
و TextChanged
فقط، الافتراضي، إلى حفظ كل تغيير في الوضع العادي وفي كل مرة تترك فيها وضع الإدراج.
" .vimrc
let g: auto_save_events = [ " InsertLeave " , " TextChanged " ]
أحداث أخرى قد ترغب في استخدامها:
TextChangedI
بعد إجراء تغيير على النص الموجود في المخزن المؤقت الحالي في وضع الإدراج.CursorHold
كل مقدار من المللي ثانية كما هو محدد في خيار updatetime
في الوضع العادي.CursorHoldI
سأفعل نفس الشيء في وضع الإدراج.CompleteDone
أيضًا بتشغيل عملية الحفظ بعد كل حدث إكمال. قد لا تكون بعض هذه الأوامر متاحة، اعتمادًا على تثبيت Vim لديك. راجع نظرة عامة على الأوامر التلقائية للحصول على قائمة كاملة ( :h autocommand-events
).
تحذير! يُنصح بتوخي الحذر عند استخدام خيار updatetime
لأنه أظهر أنه يسبب مشاكل عند ضبطه على حجم صغير جدًا. يبدو أن 200 أصغر من أن يعمل مع بعض المكونات الإضافية الأخرى. استخدم 1000 لإعداد أكثر تحفظًا.
إذا كنت بحاجة إلى ربط الحفظ التلقائي (مثل إنشاء العلامات بعد الحفظ، أو إلغاء الحفظ مسبقًا) فاستخدم خيارات g:auto_save_postsave_hook
أو g:auto_save_presave_hook
:
" .vimrc
" This will run :TagsGenerate after each save
let g: auto_save_postsave_hook = ' TagsGenerate '
" This will run AbortIfNotGitDirectory function before each save
let g: auto_save_presave_hook = ' call AbortIfNotGitDirectory() '
" Example hook from vim-auto-save-git-hook plugin
function ! AbortIfNotGitDirectory ()
if ...
let g: auto_save_abort = 0
else
let g: auto_save_abort = 1
endif
endfunction
افتراضيًا، تتم كتابة المخزن المؤقت الحالي فقط (مثل :w
). يمكنك اختيار كتابة جميع المخازن المؤقتة عند الحفظ التلقائي باستخدام خيار g:auto_save_write_all_buffers
(مثل :wa
).
" .vimrc
let g: auto_save_write_all_buffers = 1 " write all open buffers as if you would use :wa
يعد doc/auto-save.txt
نسخة محولة من الملف README.md
. لا تقم بتحريره مباشرة. بدلاً من ذلك، قم بتثبيت md2vim وتشغيل البرنامج النصي update_doc_from_readme.sh
.
تم التطوير في 907th/vim-auto-save repo. من فضلك، الإبلاغ عن أي أخطاء و/أو اقتراحات هناك. ورحب بأي مساهمة!
يتم توزيعها بموجب ترخيص MIT (انظر LICENSE.txt).
حقوق الطبع والنشر (ج) 2013-2021 أليكسي تشيرنينكوف