فيم E194:لا يوجد اسم ملف بديل ليحل محل "#"
سؤال
أنا أستخدم البرنامج المساعد ctrlp.vim وهو في الأساس مكتشف الملفات.لقد اتبعت خطوات التثبيت كما هو مذكور هنا:
http://kien.github.io/ctrlp.vim/#installation (باستخدام بوابة)
يعمل المكون الإضافي الخاص بي بشكل جيد وكما هو متوقع، ولكن عند بدء تشغيل vim، تظهر لي رسالة الخطأ التالية:
Error detected while processing FuncUndefined Auto commands for "*":
E194: No alternate file name to substitute for '#': runtime autoload/ctrlp#utils#cachedir.vim
Press ENTER or type command to continue
على إزالة set runtimepath^=~/.vim/bundle/ctrlp.vim
من vimrc الخاص بي، يختفي الخطأ ولكن من الواضح أن المكون الإضافي الخاص بي يتوقف عن العمل وهو أمر غير مرغوب فيه.
الرجاء المساعدة.
المحلول
تنسيق هذا الأمر خاطئ:بدلاً من
runtime autoload/ctrlp#utils#cachedir.vim
ينبغي أن يكون
runtime autoload/ctrlp/utils/cachedir.vim
ال #
يتم استخدام الفاصل عندما الاتصال وظائف التحميل التلقائي، ولكن :runtime
يتطلب مسارًا، مع فواصل المسار.هناك، المعرفات الخاصة مثل #
و %
سارية المفعول، وهذا يسبب الخطأ.
لإصلاح ذلك، اكتشف من أين تم إصدار هذا الأمر الخاطئ.
:verbose autocmd FuncUndefined
هي بداية جيدة.
نصائح أخرى
لقد واجهت نفس الخطأ مع إصدار Windows من GVim 8.1 عند محاولة كتابة ملف [بدون اسم] المخزن المؤقت لاسم الملف الذي يحتوي على #include
.وضع أ \
قبل كل #
في اسم الملف يعمل على حل المشكلة.
اعتقدت أنه سيتعارض مع اتفاقية Windows المتمثلة في استخدام الخطوط المائلة العكسية لفصل المجلدات في مسارات الملفات، لكنه لم يحدث.