فيم (محرر نصوص)

فيم  هو محرر نصوص طُور وأطلق من قبل برام مولينار عام 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).

و من الأمثلة على التحسينات التي أضافها فيم فوق في آي:
 الإكمال التلقائي للكلمات والجمل ومقارنة النصوص ودمج الملفات «و هو ما يعرف أيضاً ب فيم ديف (vimdiff)».
 نظام شامل ومتكامل للمساعدة.
 تعبير نمطي موسع (regular expressions).
 تطوير المحرر باستخدام لغات البرمجة النصية سواء أكانت اللغة النصية الخاصة أو لغات نصية أخرى مثل بيرل (Perl) وبايثون (Python) وروبي (Ruby) وتكل (Tcl) وغيرها.
 واجهة رسومية لمنصة المحرر والمعروفة ب «جي فيم» (gvim).
 إضافات محدودة شبيهة ببيئة التطوير المتكاملة.
 تحكم بفأرة الحاسوب في الواجهة الرسومية وواجهة سطر الأوامر.
 طي الجمل (كما هو الحال في محررات النصوص عند النقر على إشارة + لإظهار الجمل وإشارة - لطيها).
 تحرير الملفات المضغوطة وملفات الأرشيف مثل ملفات جي زيب (gzip)، بي زيب 2 (bzip2)، زيب (zip)، وتار (tar).
 تحرير الملفات عبر بروتوكولات الملفات والاتصال مثل أس أس أتش (SSH)، بروتوكول نقل الملفات المسمى أف تي بي (FTP)، وبروتوكول نقل النص الفائق أتش تي تي بي (HTTP).
 الحفاظ على حالة التحرير (session state preservation).
 مدقق أخطاء لغوي.
 تقسيم شاشة التحرير بشكل أفقي وعامودي مما يتيح للمستخدم القدرة على تحرير أكثر من ملف في نفس الوقت وعلى نفس نافذة التحرير.
 دعم علامات التبويب حيث يمكن للمستخدم فتح أي عدد من علامات التبويب لتحرير الملفات.
 دعم معايير اليونيكود بالإضافة لدعم لغات بشرية عديدة.
 دعم تعليم الصيغة (syntax highlighting).
 دعم عملية البحث بطرق عديدة.
 دعم تأريخ مكان المؤشر (cursor position histories).
 دعم إرجاع الحالة وتكرير الحالة (undo/redo).
و الكثير الكثير من الميزات الأخرى سواء أكانت جزء من المحرر نفسه أو على شكل إضافة.

الأنظمة المدعومة 

بينما كان في آي مخصصاً للعمل على بيئات يونكس فإن فيم تم دعمه على عدد كبير من المنصات والأنظمة منها:
 أميغا أو أس (AmigaOS) «المنصة الابتدائية»
 أتاري (Atari)
 لينكس مينت (MINT)
 بي أو أس (BeOS)
 دوس (DOS)
 ميكروسوفت ويندوز 95/98/مي/أن تي/2000/أكس بي/سيرفر 2003/فيستا/سيرفر 2008/7
 أي بي أم أو أس 2 وأو أس 390 (IBM OS/2 and OS/390)
 مورف أو أس (MorphOS)
 أوبن في أم أس (OpenVMS)
 كيو أن أكس (QNX)
 ريسك أو أس (RISC OS)
 يونكس (Unix)
 جنو/لينكس (GNU/Linux)
 بي أس دي (BSD)
 ماك أو أس (Mac OS) حيث تقوم شركة أبل الأمريكية بتنصيب فيم في كل نسخ نظامها ماك أو أس أكس
 أندرويد (Android)
 أي أو أس(iOS)

تواريخ الإصدارات

قائمة بأشهر أوامر فيم 

نسرد تالياً قائمة بأهم أوامر التحرير النصية الخاصة ب فيم:

العمل مع الملفات

التحرك في الملف

إدراج النصوص والكتابة

حذف النصوص

استخدام النمط المرئي (visual mode)

تحرير النصوص

الإعادة والتكرار (السابقة واللاحقة)

البحث في النصوص

انظر أيضًا 

 قائمة محررات النصوص
 محرر نصوص
 إيماكس

مراجع

روابط خارجية 

 
 
 صفحات المساعدة الخاصة بفيم على الويب
 كتب خاصة بفيم

محررات نصوص تستخدم جتك
برمجيات 1991
برمجيات أميغا
برمجيات حرة بلغة سي
برمجيات حرة متعددة المنصات
برمجيات سطر الأوامر
برمجيات مورف أو إس
برمجيات حرة ومفتوحة المصدر
بيئات تطوير متكاملة حرة
بيئات تطوير متكاملة للينكس
تقنية المعلومات في هولندا
علم الحاسوب في هولندا
في آي
محررات إتش تي إم إل حرة
محررات نصوص حرة
محررات نصوص لنظام ماك أو إس
محررات نصوص لنظام لينكس
محررات نصوص لنظام مايكروسوفت ويندوز
محررات نصوص لنظام يونكس