إنشاء نسخة احتياطية محلية عند تحرير الملفات البعيدة عبر NetRW في VIM

StackOverflow https://stackoverflow.com/questions/563385

  •  05-09-2019
  •  | 
  •  

سؤال

أنا أعمل مع العديد من الملفات باستخدام VIM ومكون البرنامج المساعد NetRW. أنا أيضا الاستمرار في النسخ الاحتياطية الزائدة عن طريق تغيير &backupext (وجدت في توثيق).

أثناء العمل في ملف بعيد (SCP: //server/folder/file.txt)، لاحظت أنه عندما أحفظه، لا يتم إجراء نسخة احتياطية حتى.

هل هناك طريقة يمكنني الحصول على نسخة احتياطية مصنوعة تلقائيا (وفقا لإعدادات النسخ الاحتياطي VIM) في كل مرة أحفظ فيها ملف بعيد؟

هل كانت مفيدة؟

المحلول

لا أعتقد أن هناك إعداد بسيط للتبديل. يمكنك محاولة النص البرمجي على الرغم من - أضف بنفسك BufWriteCmd أوتوكلاند لكتابة نسخة احتياطية. جرب استخدام set verbose=9 لتصحيح الأخطاء (ومعرفة كيف يقوم Netrw بذلك).

نصائح أخرى

ناضلت ذات مرة مع تبديل هذه المشكلة: الحفاظ على السجلات المحلية للتغييرات التي أجريتها غير مرتبطة شجرة المصدر على غير مرتبطة آلة عن بعد.

حافظت على نسخة محلية من شجرة المصدر بأكملها ومستودع SVN محلي لإصدار الملفات. بدلا من استخدام NetRW وتبحث عن طريقة لحفظ النسخ الاحتياطية محليا، قمت بتحرير كل شيء محليا وتحتاج إلى وسيلة لإنشاء تغييراتي تلقائيا على الجهاز البعيد.

الحل 1: استخدام أوتوكلاند bufwritepost لاستدعاء SCP لنسخ الملف بعد كتابةه. يمكن أن يعمل هذا بكفاءة كافية إذا كان النظام يسمح للعمليات بمشاركة واصفات الملفات، نظرا لأنه من الممكن تشغيل جلسة SSH الرئيسية إلى الجهاز البعيد ومشاركة الاتصال للجلسات اللاحقة. إذا كنت أقل حظا (كنت أعمل على جهاز Windows في ذلك الوقت)، فقد يكون الوقت الذي يستغرقه التفاوض على اتصال جديد لكل ملف مؤلما

الحل 2: لنظام التشغيل Windows، استخدم Winscp., ، الذي يحتوي على وضع "الحفاظ على جهاز التحكم عن بعد"، حيث يراقب الدليل وجميع الدلائل الفرعية الخاصة به للتغييرات ثم نشر التغييرات تلقائيا، مع إعطاء مجموعة من القواعد (أنماط تجاهلها، وضع النقل لوضع الملفات المختلفة، إلخ).

الحكم الجيد من استخدام بروتوكول SCP الخاص بك، يبدو أنه سيكون أسهل بكثير بالنسبة لك لاستخدام الصمامات sshfs., ، والتي من شأنها أن تمكنك من دعم سلوك نظام الملفات العادي بدلا من مجرد واجهة PUST / SUTT نوع CRUD.

البرنامج المساعد NetRW يتجاوز تماما :write القيادة، الطريقة الوحيدة للحصول على وظيفة "النسخ الاحتياطي" مرة أخرى هي أن تفعل ذلك بنفسك باستخدام أوتوكومدز.

أدرك أنه ليس إجابة مباشرة على السؤال الأصلي - ومع ذلك، فإن ما تفعله يبدو وكثيرا يشبه الكثير من المخزنة البسيطة - فهل هناك سبب لماذا لن تجعل الملفات البعيدة مثل مستودع GIT، ثم استنساخ المستودع محليا ودفع التغييرات بعد التحرير؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top