فيم (محرر نصوص)
فيم هو محرر نصوص طُور وأطلق من قبل برام مولينار عام 1991 لأجهزة حواسيب أميجا. تم إنشاء فيم كنسخة ممتدة للمحرر في آي Vi مع وجود العديد من الخصائص الإضافية المصممة لتكون مفيدة في تحرير الشيفرة المصدرية للبرامج. الاسم الكامل لفيم هو "في آي المحسن" "Vi IMproved"، وبسبب كونه متعدد المنصات فهو منتشر الاستعمال على أنظمة التشغيل الشبيهة بيونكس.
وينضم فيم إلى عائلة البرمجيات الحرة والبرمجيات المفتوحة المصدر وتندرج بعض بنود رخصة استخدامه تحت مظلة العمل الخيري لتشجيع المستخدمين على التبرع لأطفال أوغندا وتعتبر هذه الرخصة متوافقة مع رخصة جنو العمومية، وعلى الرغم من تخصيصه لأنظمة أميجا في بدايته إلا انه تم تطويره للعمل على معظم منصات أنظمة التشغيل وفي عام 2006 تم انتقائه كأشهر محرر نصوص من قبل قراء مجلة لينكس جورنال.
بدأ برام مولينار العمل على تطوير فيم لأجهزة أميجا في عام 1988 وفي عام 1991 قام بإطلاق النسخة الأولى من فيم وهي النسخة 1.14، وقام برام مولينار بتطوير فيم على المحرر "ستيفي" الذي قام بتطويره كل من تيم ثومبسون وتوني أندروس وجي أر (فرِد) وكان مخصصا لأنظمة "أتاري أس تي".
مثل في آي، لا تقتصر واجه فيم على القوائم والأيقونات وانما تمتد إلى أوامر تحريرية على واجهة المستخدم النصية، كما ويوجد أيضا لفيم واجهة رسومية تسمى "جي فيم" حيث تم إضافة قوائم وأدوات إلى الأوامر المشهورة في الواجهة الرسومية المبنية على واجهة سطر الأوامر الأصلية، وبالطبع هذا لا يعني ان واجهة سطر الأوامر تفتقد إلى ما يوجد في الواجهة الرسومية بل على العكس من ذلك حيث يعتبر اسخدام واجهة سطر الأوامر فعالا أكثر من أي أنماط أخرى للتحرير.
يحوي فيم على مقالة بسيطة تقود المستخدمين الجدد إلى طريقهم في عملية تحرير النصوص وتعليمهم أنماط الاستخدام وكيفية تنفيذ الأوامر ويمكن قراءة هذه المقالة بتنفيذ الأمر "فيم"، هذا بالإضافة إلى وجود دليل الاستخدام "Vim Users Manual" الذي يحوي كل شيء يحتاجه المستخدم لتحرير النصوص على فيم، ويمكن قراءة دليل الاستخدام من نفس محرر النصوص أو من الويب. كما ويحوي فيم أدوات للمساعدة ويمكن استعمالها بتنفيذ الأمر "الأمر help:" وهذه الأدوات تساعد المستخدمين على تصفح الأوامر والإضافات.
تعد عملية التخصيص في فيم من أهم نقاط القوة في هذا المحرر الفعال حيث يمكن السيطرة على الواجهة الرئيسية للمحرر بالتحكم بعدد كبير من خيارات التخصيص المتواجدة بهدف جعل المحرر بيئة مريحة لكل مستخدم حسب احتياجاته، وكجزء من عملية التخصيص يمكن لكل مستخدم أن يقوم بتعيين مفاتيح التحكم في لوحة المفاتيح التي يرغب بها لتنفيذ أمر معين فعلى سبيل المثال يمكن للمستخدم أن يقوم بتعيين المفاتيح (ALT + F5) لتنفيذ أمر حفظ الملف بينما قد يكون ذلك غير مريح لمستخدم اَخر فيقوم بتعيين المفاتيح (CTRL + S) لحفظ تعديلات الملف.
هناك عدد هائل من الإضافات (Plugins) الموجودة للمحرر فيم والتي تقوم بإضافة وظائف جديدة للمحرر أو توسيع نطاق وظائف موجودة في الأصل ويتم كتابة هذه الإضافات باستخدام لغة برمجة نصية مخصصة لأغراض التطوير على منصة المحرر وتسمى "فيم سكريبت" (vimscript) ويمكن أيضا تطوير الإضافات باستخدام لغات برمجة أخرى مثل لوا (Lua) "تم دعم هذه اللغة في الإصدارة رقم 7.3 من فيم" وبيرل (Perl) وبايثون (Python) وروبي (Ruby) وتكل (Tcl) "أو تي سي أل" وراكيت (Racket) "المعروفة رسميا باسم PLT Scheme".
و نظراً لهذه المرونة التي يقدمها فيم فقد ظهرت الكثير من المشاريع التي تقوم بتجميع النصوص البرمجية المعقدة ووضعها بين أيدي المستخدمين لتحويل فيم إلى أداة لتنفيذ مهام معقدة ومحددة وأيضا لتطوير الإضافات وإضافة نكهات مختلفة لتصرفات ووظائف المحرر، وكمثال لذلك هناك المشروع "فيم أوت لاينر" (VimOutliner) الذي يسمح لمستخدمي الأنظمة الشبيهة بيونكس القيام بتنظيم النصوص في المقاطع المختلفة على شكل هيكلية شجرية (Tree Structure)، وهناك أيضاً المشروع كريم الذي يهدف إلى جعل فيم بيئة تحرير نصية أشبه ببيئة (النقر والكتابة).
من البديهي أن يكون فيم متوافقا مع في آي نظراً لبناء فيم منذ البداية على أساس المحرر في آي من ناحية الوظائف والتصرفات ولكن ذلك يكون مرئياً في حالة تفعيل نمط محاكاة في آي، أما عند عند تثبيط نمط المحاكاة فإن فيم يحوي الكثير من التحسينات التي تجعله يتفوق على في آي وتجدر الإشارة هنا إلى أن فيم لن يكون متوافقاً بنسبة 100% مع في آي حتى في حالة تفعيل نمط المحاكاة نظراً لمواصفات يونكس المنفردة (Single Unix Specification) بالإضافة لمواصفات ومعايير بوسيكس (POSIX) ومن الأمثلة على عدم توافق فيم مع في آي هو أن فيم لا يدعم نمط في آي المفتوح (vi's open mode) انما يدعم النمط المرئي (visual mode).
و من الأمثلة على التحسينات التي أضافها فيم فوق في آي:
و الكثير الكثير من الميزات الأخرى سواء أكانت جزء من المحرر نفسه أو على شكل إضافة.
بينما كان في آي مخصصاً للعمل على بيئات يونكس فإن فيم تم دعمه على عدد كبير من المنصات والأنظمة منها:
نسرد تالياً قائمة بأهم أوامر التحرير النصية الخاصة ب فيم: