سؤال

بعد فتح ملف في emacs (فوق نظام ملفات SSHFS المكتوب SSHFS) أحصل على روابط رمزية مثل هذا:

.#jobid.php -> ddh@localhost.localdomain.31678:1260471633

لقد قررنا أن هذه ملفات قفل emacs.

يتم تركيب نظام sshfs filessystem مع rewile_symlinks و transform_symlinks ، ولكن يبدو أنه يرفض إعادة الرابط "النص" عبر readlink حتى لا تزيلها emacs.

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

المحلول

في حال كنت تبحث عن وثائق ، تشير Emacs إلى هذه الملفات كـ أقفال الملف.

بدلاً من استخدام SSHFS/FUSE ، يمكنك الوصول إلى الملفات البعيدة مباشرة من EMACs:

C-x C-f /ssh:host.name:/path/to/file RET

لا تقوم EMACS بإنشاء قفلات ملف عند تحرير الملفات عن بُعد بهذه الطريقة- ابحث عن "Tramp" لمزيد من المعلومات حول تحرير الملفات عن بُعد. (لسوء الحظ ، أعتقد أن Emacs لا يمكن أن تقول أن نقطة التثبيت في الصمامات مدعومة بنظام ملفات عن بُعد أو أن إنشاء قفلات الملفات عليه مشكلة.)

نصائح أخرى

يتم استخدام هذه الارتباطات من قبل EMACs لمنع حالات EMACs متعددة من تعديل نفس الملف. symlink بشكل طبيعي يختفي عند حفظ الملف ، ولكن يبدو أن Fuse-Sshfs يتداخل مع هذه العملية لأن هدف Symlink ليس ملفًا حقيقيًا (ليس من المفترض أن يكون ، لكن SSHFS يتوقع ذلك).

لسوء الحظ ، لا أعرف طريقة لتعطيل هذه الميزة أو إجبار emacs على تخزين هذه الارتباطات في دليل مختلف (أستخدم emacs بشكل غير متكرر ولم أجد أي شيء في الدليل) ، لذلك قد تضطر إلى حذفها بشكل دوري فقط أنا أخشى يدويًا.

ال follow_symlinks تجمع الخيار Synlinks على النظام البعيد لتظهر كملفات فعلية. يكون هذا مفيدًا عندما يشير Symlink إلى هدف على المضيف البعيد خارج الدليل الذي يتم تركيبه عبر SSHFs ، لكنه يكسر افتراضات Emacs لأنه عندما يخلق Emacs عصيدة ، فإنه يتوقع نفس المسار لتبدو وكأنه ترابط لاحقًا.

ومع ذلك ، يجب أن تكون قادرًا على جعل جميع الارتباطات على المضيف البعيد تعمل بشكل صحيح مع الاستمرار في الظهور كعلاقات مع الاستخدام transform_symlinks الخيار (وليس follow_symlinks) ودائمًا تصاعد جذر النظام عن بُعد (بدلاً من مجرد دليل منزلك أو شيء من هذا القبيل). يجب أن يسمح هذا لـ EMACs بإساءة استخدام Synlinks كقفل مع الاستمرار في الوصول إلى أهداف Symlink عن بُعد.

يتم إنشاء هذه الارتباطات بواسطة EMACs عندما يزور المخزن المؤقت ملفًا ، ويمنعون حالتين من EMAC من تحرير نفس الملف (كما هو مذكور في إجابات أخرى). يشير Emacs إلى هذا على أنه "اكتشاف الصدام".

لسوء الحظ ، فإن الطريقة الوحيدة لمنع هذا السلوك في GNU emacs هي في وقت الترجمة. تصف مستندات المصدر كيفية القيام بذلك عن طريق تغيير رأس.

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

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