في آي (vi) هو محرر نصوص تم تصميمه في بداية الأمر لنظام التشغيل يونكس وقد تم تنظيم وتوحيد الجزئيات المحمولة من وظائف المحرر (أي الجزئيات التي تم تهيئتها للعمل على أكثر من نظام تشغيل) والبرامج المبنية عليه من قبل مجموعة مواصفات يونكس المنفردة بالإضافة إلى مجموعة معايير بوسكس وينطبق الشيء نفسه على لغة البرمجة النصية لمحرر إكس (ex) المخصصة لتطوير في آي وتطوير إضافاته ووظائفه. تم البدء بتطوير في آي في العام 1976 على يد بيل جوي وقد تم تطويره في ذلك الوقت ليكون بمثابة نافذة مرئية لمحرر النصوص السطري إكس وقد تم تطوير إكس على يد بيل جوي وتشُك هالي وتم إطلاق الأصدارة الأولى من إكس التي تحمل الرقم 1.1 كجزء من أول إصدار من نظام تشغيل "بي أس دي يونكس" (BSD Unix) وكان ذلك في العام 1978، وتم إطلاق الإصدارة الثانية التي تحمل الرقم 2.0 من المحرر إكس كجزء من الإصدار الثاني لنظام التشغيل التابع لتوزيعة برمجيات بيركلي وكان ذلك في شهر مايو من العام 1979 وسمي حين ذاك بالاسم "في آي" وبقيت تسميته كذلك حتى يومنا هذا ونظراً للشهرة التي حازها في آي فقد ظهرت الكثير من المشتقات أو التطبيقات المحاكية لهذا المحرر ويمكن تتبع أصول بعض هذه التطبيقات للوصول إلى الشيفرة الأصلية التي قام بيل جوي بكتابتها، والبعض الآخر من هذه التطبيقات هي تطبيقات جديدة ومفصولة عن المحرر الأصلي ولكنها تتوافق معه لدرجة عالية من المحاكاة.
نوع |
modal text editor — أداة يونكس قياسية |
---|---|
نظام التشغيل | |
موقع الويب |
المطور الأصلي | |
---|---|
المطورون | |
لغة البرمجة | |
الإصدار الأول |
1976 |
الإصدار الأخير |
050325 (25 مارس 2005)[2] |
المستودع | |
الرخصة |
نظرة عامة
التسمية (في آي vi) مستمدة من أقصر اختصار غير مبهم للأمر visual والذي يعني بالعربية (مرئي) وهو جزء من مجموعة الأوامر التي كان ينفذها المحرر إكس ويقوم هذا الأمر بوضع المحرر إكس على الوضعية أو النمط المرئي.
و تجدر الإشارة إلى أنه بالإضافة إلى التطبيقات المتعددة والغير حرة الموزعة تحت رخصة الملكية الفكرية ليونكس (المقصود بالتطبيقات هنا هي التطبيقات المحاكية ل في آي) هناك العديد من التطبيقات التي تقابلها في عالم البرمجيات الحرة والبرمجيات المفتوحة المصدر مثل فيم، وفي عام 2009 قام قراء مجلة لينكس جورنال بالتصويت ل في آي باعتباره الأكثر استخداماً بين محررات النصوص بما فيها محرر النصوص المشهور جي إديت (حيث تغلب في آي بنسبة 36% على جي أديت الذي حاز نسبة 19% من قراء المجلة).
تاريخ في آي
البداية
يعزى تطوير في آي إلى سلسلة من محررات يونكس التي تعتمد سطر الأوامر كمنصة للعمل عليها وأول هذه المحررات كان المحرر إد (ed) الذي تم تطويره واستخدامه في شركة "إي تي أند تي" (AT&T) وقد أبدا المطورون في ذلك الوقت ارتياحهم لاستعمال المحرر إد البدائي وذلك بشهادة جورج كولوريس الذي قال:
لسنوات طويلة لم يملكوا (أي الموظفون في AT&T) وحدات تحكم مناسبة (suitable terminals) وتابعوا استخدامهم لأوامر تي تي واي "TTY" (و هي مجموعة من الأوامر التي تقوم بطباعة البيانات على شكل مخرجات جهاز العرض) وأوامر طباعة أخرى لمدة طويلة وعندما قامت الشركة بشراء شاشات "تيكترونيكس 4014" (Tektronix 4014) "و هي عبارة عن نسخة خاصة من شاشات العرض الأحادية اللون تعتمد تقنية أنبوب الأشعة المهبطية أو CRT لإظهار مخرجات العرض" ولم يكن بالإمكان استخدام محرر نصوص على هذه الشاشات لأن مخرجات العرض لا يمكن تحديثها وبالتالي كان لابد ان يقع حمل تطوير محرر نصوص يعمل على شاشة العرض ليونكس على عاتق أحد وكنا قد قررنا أخذ هذه المسؤولية على اكتافنا وعملنا عليها لسنوات عديدة.
اعتبر جورج كولوريس -متهكما- الأوامر الخفية التي يقوم المحرر إد بتنفيذها بعيدا عن أعين مستخدميه مناسبة "للخالدين فقط" ولذلك قرر أن يقوم بتطوير المحرر إد بالاعتماد على الشيفرة المصدرية التي قام كين ثومبسون بكتابتها واعتبارها نقطة البداية لإيجاد محرر نصوص مخصص ل "غير الخالدين" وكان ذلك في شهر فبراير من العام 1976 حيث كان يعمل في ذلك الوقت في كلية الملكة ماري، بجامعة لندن وقد سمي المحرر الجديد باسم إم (em) وهي الأحرف الأولى من الكلمات (Editor for Mortals) وتعني بالعربية "محرر نصوص لغير الخالدين". تم تصميم المحرر إم للعمل على شاشات العرض وكان يتصرف كمحرر مرئي لمعالجة النصوص وكان هذا المحرر يقوم بمعالجة النصوص سطر واحد في نفس الوقت واعتبر إم واحدا من أوائل التطبيقات في يونكس التي اعتمدت على "نمط ادخال وحدة التحكم المجردة" (raw terminal input mode) حيث يقوم البرنامج الفعال بمعالجة ضغطات المفاتيح (المفاتيح التي يقوم المستخدمون بالضغط عليها في لوحة المفاتيح) بدلاً من قيام برنامج التعريف المخصص في وحدة التحكم من القيام بذلك. و عندما قام جورج كولوريس بزيارة لجامعة كاليفورنيا، بركلي في عام 1976 قام باحضار شريط مغناطيسي مخصص لتخزين البيانات يسمى ديكتيب (DECtape) ويحوي هذا الشريط في طياته المحرر إم وعرضه على العديد من الناس وقد حاز هذا المحرر على انتباه أناس كثيرين من بينهم بيل جوي. قام بيل جوي وتشك هالي بأخذ الشيفرة المصدرية للمحرر إم وقاما بتطويره ليطلقوا بعد ذلك المحرر إن (en) وبعد ذلك قاما بتطوير إن ليقوموا بإطلاق النسخة 0.1 من إكس وكل ذلك حدث عندما كانا في مرحلة التخرج من جامعة كاليفورنيا، بركلي وبعد ذلك انسحب تشك هالي من المشروع. ثم شجع بروس إنجلر بيل جوي على المضي قدماً في اعادة تصميم المحرر وهذا بالفعل ما قام به جوي ما بين شهري يناير وأكتوبر من سنة 1977 حيث قام بتطوير نافذة مرئية كاملة للمحرر إكس والتي عرفت فيما بعد بالاسم في آي، الكثير من الأفكار في المحرر الجديد تم استنباطها من تطبيقات كانت موجودة آنذاك ووفق جوي نفسه فقد كان هناك الكثير من الأفكار التي تم اخذها من المحرر "براڤو" (Bravo) الذي عرف عنه بأنه أول محرر نصوص يطبق نمط ما تراه هو ما تحصل عليه وفي مقابلة تمت مع بيل جوي عن بدايات في آي أسهب جوي قائلاً:
الكثير من الأفكار في المحرر في آي كانت قد "سرقت" من دليل الاستخدام للمحرر براڤو حيث قمت بالنظر خلسةً إلى دليل المستخدم ونسخته، فمثلاً أمر النقطة (.) يمثل الهروب الازدواجي (double-escape) في براڤو وكذلك الحال في أمر استرجاع الحالة (redo)، معظم هذه الأوامر قد تمت سرقتها، وبعض الأوامر تمت سرقتها من إد حيث كنا قد حصلنا على نسخة تورونتو من دليل الاستخدام والتي أظن أن روب بيك له علاقة بسرقتها حيث أخذنا امتدادات بعض التعابير النمطية من هناك.
قام جوي باستخدام طرفية حاسوب (أو وحدة تحكم) من نوع لير سيجلر (Lear Siegler) التي تحمل الاسم (ADM3A) حيث كان مكان زر الهروب Esc في نفس المكان المخصص حاليا لزر الإزاحة Tab ⇆ على ألواح المفاتيح من نوع (IBM PC) المعروفة، وكان ذلك مناسباً لوضع وظيفة تبديل الأوضاع على ذلك الزر (زر الهروب) "و تجدر الإشارة هنا إلى أن هناك وضعين للتعامل مع محرر النصوص في آي وهما وضع الأدخال ووضع الأوامر"، بالإضافة إلى استخدام أزرار الحروف (h,j,k,l) لتنفيذ أكثر من وظيفة ففي وضع الإدخال تتصرف هذه الأزرار عند الضغط عليها كبقية أزرار لوحة المفاتيح حيث تقوم بطباعة الحرف المسند إليها وفي وضع الأوامر تتصرف بنفس وظيفة الأسهم حيث يقوم زر الحرف h بتحريك المؤشر إلى اليسار ويقوم زر الحرف j بتحريك المؤشر إلى الأسفل ويقوم زر الحرف k بتحريك المؤشر إلى الإعلى وأخيراً يقوم زر الحرف l بتحريك المؤشر إلى اليمين، ولم تكن لوحة ADM3A تحوي على المزيد من أزرار المؤشر سوى المذكورة سابقاً. و قد فسر جوي أن نتيجة الاقتضاب وأوامر الحروف الأحادية وقدرة الكتابة بشكل مباشر في حال فتح شاشة التحرير تعود إلى البطء في تحويل إشارات أزرار المفاتيح التي يتم الضغط عليها إلى أحرف مطبوعة على جهاز الإخراج وأنه أراد أن يستغل وقت اظهار الكلمات على الشاشة التي تظهر النصوص المطبوعة بسرعة أبطأ من سرعة الطباعة لدى المستخدم في طباعة المزيد من النصوص.
التوزيع
كان جوي مسؤولاً عن إطلاق الإصدارة الأولى من بي أس دي يونكس، وكان ذلك في شهر مارس من عام 1978 وكانت الإصدارة تحوي المحرر إكس بنسخة 1.1 (التي تم إطلاقها بتاريخ 1 فبراير من العام 1978) مما أتاح له المجال لإيصال المحرر الذي قام بتطويره إلى شريحة عريضة من المستخدمين تتجاوز مستخدمي جامعة كاليفورنيا ومن هذا التاريخ أصبحت كل إصدارة لنظام تشغيل بي أس دي يونكس تحوي فقط على محررين رئيسيين للنصوص وهما إد وإكس وفي مقابلة أجراها في العام 1984 أرجع جوي نجاح في آي إلى حقيقة أن المحرر كان متاحاً بشكل حر ومجاني بينما كانت المحررات الأخرى مثل إيماكس تكلف مئات الدولارات. و من الملاحظ أن معظم مستخدمي إكس كانوا يمضون معظم أوقاتهم في تحرير النصوص مع النمط المرئي للمحرر ولذلك وفي الإصدارة 2.0 (التي تم إطلاقها مع النسخة الثانية من توزيعات برمجيات بيركلي في مايو من العام 1979) قام جوي بجعل في آي يعمل كمؤشر متصل مع إكس بمعنى أنه في حال استدعاء في آي على سطر الأوامر فإن إكس سيتم استدعاؤه بشكل تلقائي ليعمل بالنمط المرئي وبالتالي لم يكن في آي مفصولاً عن إكس وانما كان هو نفسه إكس. وقد وصف جوي الإصدارة 2.0 من إكس بأنها برنامج كبير وبالكاد تستطيع الذاكرة الرئيسية لجهاز الحاسوب من نوع (PDP-11/70) أن تسعه. وعلى الرغم من اعتبار في آي برنامج صغير وخفيف في الوقت الحالي إلا انه لم يكن يعتبر كذلك في بداياته ومع إطلاق الإصدارة 3.1 التي كانت محوية في النسخة الثالثة من بي أس دي (تم إطلاق هذه النسخة من بي أس دي في شهر ديسمير من العام 1979) لم تستطع الذاكرة الرئيسية لجهاز (PDP-11) أن تسع المحرر في آي كاملاً. بقي جوي يقود عملية التطوير في "في آي" حتى إطلاق الإصدارة 2.7 في شهر يونيو من العام 1979 ومن ثم أصبحت مساهماته متباعدة ومتفرقة حتى إطلاق الإصدارة 3.5 في شهر أغسطس من العام 1980 وفي حديث مع جوي حول تاريخ في آي علق جوي عن سبب توقفه في المشاركة بتطوير في آي قائلاً:
كنت أتمنى لو أننا لم نستخدم جميع الأزرار في لوحة المفاتيح، أعتقد أن أحد الأشياء المثيرة للاهتمام في "في آي" هي أنه محرر يعتمد على تبادل الأوضاع -في إشارة إلى وضع الإدخال ووضع الأوامر- واعتقد انه من الجيد أن تمضي محررات النصوص التي تعتمد على تبادل الأوضاع قدما، أحد الأشياء الجيدة في إيماكس هي نموذجيته وقدرته على التطويع والتطور وهاتان الفكرتان لم ينتاباني من قبل. ولم أكن جيدا في تحسين الشيفرة المصدرية عندما قمت بكتابة في آي وأظن أن إضافة إعادة عرض النصوص كانت من العند بمكان حيث أنها كانت جد جيدة فيما كانت تقوم به ولكن ذلك يكون عندما تقوم بكتابة البرامج وأنت تتعلم ولهذا السبب فقد توقفت عن العمل بها. ما حدث فعلياً هو أنني كنت أعمل لتطبيق إضافة النوافذ المتعددة في "في آي" عندما قمنا بتنصيب مجموعة التعليمات الخاصة بنا (our VAX) وكان ذلك في شهر ديسيمبر من العام 78، لم يكن لدينا أي نسخ احتياطية وقد تعطل شريط تخزين البيانات لدينا ومع ذلك كنت قد مضيت قدماً بالعمل مع علمي بعدم قدرتي على التخزين احتياطياً وحدثت أسوأ الاحتمالات فقد فقدت جزءاً من الشيفرة المصدرية وقد اضطررت لإعادة كتابة جزء كبير من الشيفرة المصدرية للإضافة المخصصة لإعادة عرض النصوص في النوافذ وكانت تلك هي اللحظة التي قررت فيها التوقف عن العمل بهذه الإضافة. بعد ذلك قررت العودة إلى الشيفرة المصدرية الخاصة بالنسخة السابقة من في آي حيث قمت بتوثيق الشيفرة المصدرية وأنهيت دليل الاستخدام وأقفلته، إن لم تحدث تلك الواقعة التي أضاعت الجزء الأكبر من شيفرة النوافذ المتعددة لكان في آي يحوي دعمه الخاص للنوافذ المتعددة وربما كنت قد استطعت أيضاً ان أضيف جزء من الواجهة البرمجية ولكني لست متأكداً من ذلك، المشكلة الرئيسية في "في آي" هي دعمه لفأرة الحاسوب (Mouse) ولهذا السبب تجد هذا الكم من الأوامر، وأعتقد ان مستويات متعددة من القدرة على ارجاع حالة التحرير "undo" ستكون رائعة أيضاً، ولكن وبشكل أساسي يبقى في آي هو نفسه إد من الداخل ولا يستطيع أحد العبث بهذا الواقع حيث يشبه ذلك كرة الحلويات الصغيرة "المصاصة" المغلفة بغشاء حافظ يحيط بها من كل جانب، أعتقد أنه ان كنت استطيع الرجوع إلى الوراء لما رجعت بل سأبدأ من جديد مرة أخرى
في عام 1979 قام مارك هورتون بأخذ مسؤولية تطوير في آي وقد قام هورتون بإضافة الدعم لأزرار الأسهم وأزرار الوظائف والماكروات وقد قام أيضاً بتحسين أداء المحرر حيث قام بإزالة مكتبات "تيرم كاب" (و هي عبارة عن مكتبات برمجية وقواعد بيانات خاصة بالأنظمة الشبيهة بيونكس) واستبدالها بمكتبات "تيرم إنفو" (و هي شبيهة بمكتبات تيرم كاب من حيث الوصف ولكنها تختلف عنها في أنها تحقق نمطية device-independent) وتجدر الإشارة هنا إلى أن مارك هورتون هو أول من قام بتطبيق "تيرم إنفو" وكان ذلك بين العامين 1981 و 1982.
المستنسخات والمحاكيات
وصولا للإصدارة 3.7 من في آي والتي تم إطلاقها في أوكتوبر من العام 1981 كانت جامعة كاليفورنيا هي البيت الحاضن لتطوير "في آي" ولكن مع انسحاب بيل جوي من المشروع في أوائل عام 1982 وانضمامه لشركة صن ميكروسيستمز ومن ثم تبني شركة إي تي أند تي (AT&T) في نظامها نظام يونكس الخامس (UNIX System V) لتطوير في آي وكان ذلك في شهر يناير من العام 1983، حصلت بعض التغييرات على الشيفرة المصدرية في "في آي" ولكن هذه التغييرات كانت بطيئة وتحدث بشكل عشوائي، وكانت هذه التغييرات تحصل أيضا في جامعة كاليفورنيا ولكن رقم الإصدارة لم يتم أبداً تحديثه ولم يتجاوز 3.7، وقد حصلت الشركات التجارية التي اعتمدت يونكس في أعمالها على نسخة من الشيفرة المصدرية ل"في آي" مثل شركة صن ميكروسيستمز (Sun Microsystems) وأتش بي (HP) ودي إي سي (DEC) وآي بي أم (IBM) وقد دعمت أنظمة تشغيل هذه الشركات نسخ "في آي" الجديدة والتي تأتي بعد الإصدارة 3.7 وكان ذلك على شكل إضافات وظيفية مثل دعم تعديل تعيين أزرار لوحة المفاتيح والتشفير بالإضافة إلى دعم الحروف الواسعة النطاق (و هي الحروف التي تحتاج إلى حجم أكبر من 8 بت لتخزينها ومعالجتها). و بينما هذه الشركات كانت تعمل على الشيفرة المصدرية التي قام بيل جوي بكتابتها (و استمرت بالعمل عليها ليومنا هذا) حرم كثير من الناس من القيام بذلك ويعود السبب في ذلك أن جوي بدأ العمل في "في آي" على الشيفرة المصدرية التي قام كين ثومبسون بكتابتها للمحرر إد وبالتالي فإن المحررين إكس و"في آي" لم يكن من الممكن التعديل والتحكم بشيفراتهم المصدرية الا عن طريق رخصة إي تي أند تي (AT&T)، وقد بحث المستخدمون عن محرر نصوص حر شبيه بمحررات يونكس لسد هذه الفجوة وفي عام 1985 ظهرت نسخة من محرر إيماكس وكانت تسمى (ميكرو إيماكس) وكانت مخصصة لعدد من المنصات ولم تصح هذه الحقيقة ل "في آي" حتى شهر يونيو من العام 1987 حيث ظهر المحرر ستيفي (Stevie) وهو محرر محاكي لحد ما ل "في آي" وفي بدايات شهر يناير من العام 1990 قام ستيف كيركيندال بالإعلان عن مستنسخ اَخر ل "في آي" سمي باسم "إلفيس" (Elvis) في مجموعة يوزنت الإخبارية المسمى (comp.os.minix) وكان يهدف بهذا الوصول إلى محرر يحاكي "في آي" بشكل أفضل من ستيفي وعلى الفور جذب هذا الإعلان انتباه عدد من المطورين المهتمين بالموضوع، وبعد ذلك قام أندرو تانينباوم بطرح استفتاء لتقرير المحرر الأفضل في محاكاة "في آي" من المحررين ستيفي وإلفيس ليكون محرر النصوص المحاكي ل"في آي" في نظام مينيكس وقد تم اختيار إلفيس وبقي إلفيس محرر النصوص المحاكي ل "في آي" في نظام مينيكس حتى يومنا هذا. في عام 1989 بدأ الزوجان لين ووليام جوليتز بتطويع بي أس دي يونكس للعمل على معالجات إنتل من فئة 386 ولكن من أجل إيجاد توزيعة حرة كان يجب عليهم تجنب أي شيفرة مصدرية توجب حق الملكية لشركة إي تي أند تي (AT&T) ويتضمن ذلك الشيفرة المصدرية ل"في آي" ولسد هذا الفراغ قاما في عام 1992 باستخدام المحرر إلفيس بديلاً عن في آي وقد جاءت أحفاد بي أس دي 386 (386BSD) مثل فري بي أس دي (FreeBSD) ونِت بي أس دي (NetBSD) على نفس النسق لاعتماد محررات النصوص. و في جامعة كاليفورنيا أراد كيث بوستيك بديلاً مطابقاً ل"في آي" من أجل تنصيبه في بي أس دي 4.4 لايت، وباستخدام الإصدارة 1.8 من المحرر إلفيس قرر أن تكون هذه هي نقطة البداية لتطوير محرره الخاص المطابق ل"في آي" فوجد المحرر "أن في آي" (NVI) وقد تم إطلاقه في ربيع عام 1994 وعندما قامت التوزيعتان فري بي أس دي ونِت بي أس دي بإعادة تحديث قواعد الشيفرات المصدرية لنظاميهما قررا حينها التخلي عن المحرر إلفيس وتبنيا المحرر الجديد أن في آي ومن الجدير بالذكر أن هذه الأنظمة وإلى يومنا هذا تستخدم أن في آي كمحرر النصوص الرئيسي. و على الرغم من وجود مستنسخات ل"في آي" تحوي العديد من الترقيات والوظائف المحسنة فقد استطاع جونر ريتر تطويع الشيفرة المصدرية التي قام جوي بكتابتها على أنظمة التشغيل الشبيهة بيونكس مثل لينكس وفري بي أس دي، وفي بداية الأمر لم يكن عمله من الناحية القانونية سليماً لأن أي توزيع لشيفرة مصدرية تنتمي لتي أند تي بدون وجود رخصة استخدام لها يعد خرقاً للقانون ولكن في شهر يناير من العام 2002 تم تخفيف حدة هذه الرخص وأصبحت على علاقة أطيب مع التطبيقات المفتوحة المصدر مما أتاح المجال أمام ريتر بالاستمرار في تطوير الشيفرة المصدرية ل"في آي" بما في ذلك التغييرات التي تطلبتها الإصدارة 2 من معايير بوسيكس وعمله هذا بقي موجودا تحت اسم "في آي" ويعمل على عدد كبير من منصات الأنظمة. و على الرغم من اتاحة الشيفرة المصدرية الخاصة بجوي مرة أخرى لأنظمة بي أس دي يونكس إلا أنها جاءت متأخرة حيث قامت توزيعات بي أس دي بالاعتماد على "أن في آي" وتطويره وتحسينه وقد وصلت في ذلك إلى مراحل أصبح من الصعب بعدها الاعتماد على "في آي" بديلا عن "أن في آي".
التأثير
منذ إطلاقه ومع مرور السنوات أصبح "في آي" محرر يونكس الديفاكتو وأصبح أيضاً وبلا منازع المحرر المفضل لدى مجموعات الهاكرز واستمر الوضع على ما هو عليه حتى قدوم المحرر إيماكس وكان ذلك في العام 1984 وقد ذكر "في آي" في مجموعة معايير ومواصفات يونكس المنفردة وبالتالي فإن أي نظام يتبع هذه المعايير يجب أن يحوي "في آي"، ولا زال "في آي" مستخدماً وشائعاً بين أنظمة عائلة يونكس إلى يومنا هذا.
الواجهة
يعتبر في آي واحداً من محررات النصوص النمطية أو الوضعية بمعنى أنها تعتمد على الأوضاع التقنية لتحرير النصوص ويوجد في "في آي" نمطين أو وضعين رئيسيين وهما:
- وضع الإدخال: وفي هذا الوضع يستطيع المسخدم ادخال الحروف بالضغط على أزرار لوحة المفاتيح لبناء الكلمات وبالتالي تحرير النصوص، على سبيل المثال عند الضغط على زر الحرف i سيتم أدخال الحرف i ليصبح جزء من النص المراد تحريره وبمعنى آخر فإن الحرف الذي تطبعه باستخدام لوحة المفاتيح هو الحرف الذي سيتم طباعته على الشاشة.
- وضع الأوامر: وفي هذا الوضع تختلف مهمات أزرار لوحة المفاتيح عن الوضع السابق فيتوقع المستخدم أنه في حال ضغطه على زر الحرف i ستتم طباعة الحرف (i) على الشاشة وهنا يكمن الفرق بين الوضعين، ففي وضع الأوامر تختلف مهمة زر الحرف i عن وضع الإدخال وتكمن مهمة الحرف (i) هنا بأنه يسمح للمستخدم الدخول إلى وضع الإدخال بعدما كان في وضع الأوامر، ويمشي على هذا السياق جميع أزرار لوحة المفاتيح (في حال ارتباطها بأمر معين).
و نستطيع تلخيص الفرق بين الوضعين بأنه في وضع الإدخال فإن أي زر يضغطه المستخدم على لوحة المفاتيح ستتم طباعته على الشاشة مباشرة وستراه عين المستخدم مطبوعاً على شاشة التحرير (و يستثنى من ذلك الأزرار التي تمثل وظائف غير مطبوعة مثل أزرار Tab ⇆ و⇧ Shift وAlt وCtrl ما عدا الزر Esc الذي يعمل على إخراج المستخدم من وضعية الإدخال إلى وضعية الأوامر) بينما في وضع الأوامر فإن أزرار المفاتيح تصبح أدوات لتنفيذ أوامر المحرر مثلما أسلفنا سابقاً مع الزر i في وضع الأوامر. و من الجدير بالذكر أنه من محاسن فصل هذه الأوضاع عن بعضها أن المستخدم لا يبعد يده عن لوحة المفاتيح فكل ما يحتاجه سواء أكان لتحرير النصوص أو لتنفيذ الأوامر إنما هو كبسة زر تبعد مقدار طول إصبع يده عن لوحة المفاتيح لا أكثر، ويختلف هذا من حيث المبدأ مع المحررات التي لا تعتمد فصل الأوضاع في تحرير النصوص فمثلاً إن أراد المستخدم أن يقوم بحفظ وثيقة فإنه إما أن يقوم بإزالة يده اليمنى من لوحة المفاتيح لتحريك فأرة الحاسوب نحو أيقونة الحفظ ويضغط عليها أو يقوم بتحريك فأرة الحاسوب نحو قائمة "ملف" واختيار خيار الحفظ أو أن يستعمل أكثر من زر لتنفيذ الحفظ مثل (ctrl + s) مما يؤدي إلى إزالة يده من مواضع التركيز على لوحة المفاتيح، بينما بإمكانك تنفيذ ذلك من دون إزالة يدك من على لوحة المفاتيح وبكبسة زر واحدة في كل مرة لتنفيذ أمر الحفظ (و يمكنك تنفيذ ذلك بأكثر من زر في نفس الوقت، الخيار متروك للمستخدم في هذه الحالة) في المحررات المتعددة الأوضاع مثل "في آي".
المشتقات المعاصرة والمستنسخات
في آي التقليدي (Traditional Vi)
يعتبر في آي التقليدي المتواجد حاليا في توزيعات يونكس الحديثة تطويراً ل"في آي" الأصلي الذي قام بيل جوي بكتابته في نهاية السبعينيات من القرن الماضي حيث قام جونر ريتر بتطويره وتطويعه في لأنظمة يونكس الحديثة ومن ما قام به ريتر:
- تحسينات بسيطة للمدخلات بطول 8 بت.
- إضافة الدعم لصيغة التحويل الموحد-8 (UTF-8).
- إضافة تغييرات متطلبة من معايير بوسيكس-2.
و يتضمن أيضاً إضافات أخرى وبالتالي فإنه يعتبر واحداً من أفضل مشتقات "في آي" للمستخدمين الذين يبحثون عن برنامج صغير الحجم ويقوم بمحاكاة النسخة الأصلية بشكل شبه كامل، وتتواجد نسخ منه جاهزة للتنصيب في:
- مجموعة فري بي أس دي بورتس (FreeBSD ports collection).
- ماك بورتس (MacPorts).
- حزمة أر بي أم (RPM Package) لتوزيعات لينكس التي تعتمد على مدير حزم آر بي إم من خلال مشروع أوبين باكيج (OpenPKG Project).
وقد علق ريتر على في آي التقليدي قائلاً:
مقارنةً بنظرائه من المشتقات فإن في آي يعتبر برنامج صغير الحجم (حيث يصل حجم شيفرته المصدرية تقريباً إلى 120 كيلوبايت لمعالجات إنتل من نوع i386) مع واجهته البالغة القوة في تحرير النصوص ولكنه يفتقد الإضافات المزخرفة مثل المستويات المتعددة لرجوع حالة التحرير (undo) وتعدد شاشات التحرير بالإضافة إلى ميزة تعليم الصيغة، وبكلمات أخرى يعتبر في آي التقليدي برنامج يونكس تقليدي يعمل ما هو مطلوب منه فقط وليس أكثر من ذلك.
فيم (Vim)
يعد أحد أشهر مشتقات في آي الحرة والمفتوحة المصدر ويعني اسمه "في آي المحسن" ("Vim "Vi IMproved) ويحوي العديد من المزايا والإضافات بما فيها:
- دعم تعليم الصيغة للغات برمجية متعددة وكثيرة.
- دعم لفارة الحاسوب.
- إصدارة مخصصة لواجهة المستخدم الرسومية.
- دعم النمط المرئي.
- إضافة الكثير من أوامر التحرير.
- الكثير من برنامج مساعد (حوسبة)|الامتدادات والإضافات.
ويجدر ذكر أن فيم يتم تضمينه من كل توزيعة لينكس ويتم تضمينه مع كل نسخة من نظام تشغيل أبل (ماك أو أس أكس)، هذا ومن المهم أيضاً أن نذكر أن فيم يحوي "وضع محاكاة في آي" حيث أنه بتفعيل هذا الوضع سيتصرف فيم بطريقة يحاكي بها في آي بشكل كبير جداً. وعلى الرغم من وجود خيار "وضع محاكاة في آي" في فيم إلا أن فيم قد قام بإسقاط بعض وظائف "في آي" الأصلية مثل خاصية النمط المفتوح (open mode) حيث لا يمكن للمستخدمين استعمالها حتي في حال تفعيل وضع المحاكاة، ويمكن التحكم بوضع المحاكاة عن طريق الأمر (set compatible:) ويتم تفعيل وضع المحاكاة بشكل تلقائي في فيم عند تشغيله بظرف تتوقع فيه البرمجية أن تجد نمط محاكاة في آي مفعلاً.
إلفيس (Elvis)
إلفيس هو واحد من مشتقات في آي الحرة المخصص للعمل على أنظمة يونكس وقد كتبه ستيف كيركيندال، يقدم إلفيس عدد من الميزات المتواجدة حالياً في مشتقات أخرى ل"في آي" مثل السماح لأزرار مفاتيح الإتجاهات بالعمل في وضعية الإدخال وكان أول مستنسخ يقوم بتطبيق تعليم الصيغة الملون بالإضافة لتعميم تمييز الصيغة لعدد من أنواع الملفات، وقد تم استخدام الإصدارة x.1 كنقطة بداية لإنشاء المحرر أن في آي ولكن الإصدارة 2.0 من إلفيس أضافت العديد من الميزات والإضافات ومنها:
- دعم العوازل المتعددة (multiple buffers).
- دعم النوافذ.
- أنماط الإظهار (display modes).
- دعم تخطيط سماحية الملفات (file access schemes).
و يعتبر إلفيس محرر النصوص الافتراضي المشتق من في آي في توزيعات لينكس سلاكوير وو كايت أو أس بالإضافة إلى نظام تشغيل مينيكس وأحدث إصدارة من إلفيس كانت الإصدارة 2.2 والتي تم إطلاقها في شهر أوكتوبر من العام 2003.
بيزي بوكس (BusyBox)
و هي مجموعة من مرافق لينكس المعيارية تم تجميعها في ملف تنفيذي واحد ويحوي هذا الملف محاكي صغير ل"في آي"
أن في آي (NVI)
أن في آي هو توزيعة أخرى محاكية ل"في آي" وقد تم تبنيها وبشكل رسمي من قبل توزيعة برمجيات بيركلي في إصدارة بي أس دي لايت 4.4 وهي هذه النسخة التي تم تصديرها إلى جميع مشتقات بي أس دي المفتوحة المصدر، ويحوي أن في آي مزايا وإضافات مثل:
- إضافة مؤرخ للأوامر والتحرير.
- دعم الإكمال التلقائي لأسماء الملفات.
- دعم العوازل المتعددة (multiple edit buffers).
- دعم تعدد نوافذ التحرير بما في ذلك دعم تعدد النوافذ على نفس العازل.
و هناك إطلاقات تطويرية (development releases) ل"أن في آي" وآخر هذه الإطلاقات كانت الإطلاقة 1.81.6 وكانت في شهر نوفيمبر من العام 2007.
فايل (Vile)
في بدايته اعتمد فايل على نسخة ابتدائية من ميكرو إيماكس في محاولة لجلب ميزة إيماكس المختصة في النوافذ "المتعددة والعوازل المتعددة" (multi-window/multi-buffer) إلى مستخدمي في آي
مقالات ذات صلة
مراجع
- The vi Open Source Project on Open Hub: Languages Page — تاريخ الاطلاع: 26 سبتمبر 2018 — الرخصة: رخصة أباتشي، الإصدار 2.0
- The Traditional Vi — تاريخ الاطلاع: 19 فبراير 2018
- The Traditional Vi
- The Traditional Vi
- The Traditional Vi
- The Traditional Vi