بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
اساسيات التعامل مع vi أو vim لا بد من أن تعرفها وهو امر مهم جدا .
لن أدخل في درس تاريخي عن البرنامج بشكل بسيط برنامج vi إذا جاز التعبير هو نسخة مصغرة من محرر النصوص vim المشهور على العموم ما سأشرحه يمشي على الإثنين لا فرق .
سأشرح في هذا الموضوع فقط أشياء بسيطه قد نحتاجها مثلا للتعديل على ملفات الإعدادات .
سبب أهمية تعلم هذه الأساسيات هي أن محرر نصوص vi يأتي بشكل تلقائي مع أغلب التوزيعات بمعنى أخر لنفترض نريد التعديل على أي ملف نصي مثلا ملف إعدادات ما , فورا ومن دون تفكير نستخدم محرر vi لأنه غالبا سيكون موجود في أغلب التوزيعات بشكل إفتراضي على عكس المحررات الأخرى مثلا محرر nano الذي قد يكون بحاجة للتثبيت.
طبيعي منكم من قد يتسائل ليست مشكلة فلنقم بتثبيت مثلا محرر النصوص nano لاكن ماذا لو أردنا أن نعدل على ملف نصي لتشغيل الإنترنت لنستطيع بعدها تثبيت nano وهنا تكمن اهمية تعلم أساسيات vi فهو يستخدم أيضا للطوارئ لأنه كما ذكرت يأتي بشكل إفتراضي في أغلب التوزيعات ولا يحتاج تثبيت.
منكم من قد يتسائل أيضا لماذا لا نستخدم محرر نصوص رسومي ,أولا كما لاحظنا ف مدير العرض الجديد wayland لا يسمح بتشغيل برنامج رسومي بصلاحيات روت أغلب ملفات الإعدادات تحتاج صلاحيات روت لنستطيع التعديل عليها, مثال في الأسفل عن محرر النصوص الرسومي gedit نلاحظ في الصورة في الأسفل رفض تشغيل البرنامج بصلاحيات روت أي من خلال إستخدام sudo ,من الأسباب الأخرى لعدم إستخدامنا محرر نصوص رسومي ماذا لو كنا نعمل على جهاز بعيد مثلا أو جهاز لا يوجد فيه واجهة رسومية أساسا مثل أغلب السرفرات أو مثلا أردنا إصلاح النظام من خلال vconsole بعد فشل الواجهة بالإقلاع وهنا نحتاج محرر نصوص غير رسومي مثل vi أو vim او nano و...إلخ لاكن غالبا vi سيكون متوفر بشكل إفتراضي من دون تدخل منا.
sudo gedit /etc/dnf/dnf.conf
لنبدأ :
نلاحظ أني أريد التعديل على ملف بهذا المسار والإسم إذا كان موجود سيتم الدخول عليه لتعديله إذا لم يكن موجود سيتم إنشاء ملف بهذا الإسم والمسار ,نستنتج أنه ممكن أيضا إنشاء ملف والتعديل عليه مباشرتا من خلال vi من دون الحاجة إلى إنشاء الملف أولا .
نلاحظ أيضا أني إستخدمت sudo لأخذ صلاحيات روت لأن الملف يملكه مستخدم روت .
اﻷن عند الدخول للملف المراد التعديل عليه, سنكون إفتراضيا في مود mode (لا أعرف تعريب لها أظن أسلوب أو نمط ممكن أن بنفعو) سنكون في نمط أو مود تلقي الأوامر وليس الكتابة بمعنى أخر كل ضغطة زر على لوحة المفاتيح سيتلقاها البرنامج ويعاملها على انها اوامر توجه له ولن يتم تعديل اي شيء على الملف .
لندخل على مود الكتابة نضغط على مفتاح i او a نلاحظ كلمة INSERT وهذا يعني أن كل شيء سنضغطه الأن سيتم كتابته على الملف .
لحفظ الملف بعد التعديل نخرج من مود الكتابة من خلال الضغط على مفتاح Esc ثم نضغط على مفتاح النقطتين أي نضغط سويا Shift و المفتاح الذي يحتوي النقطتين : وهو مفتاح حرف الكاف بعدها سيظهر في الأسفل مكان نكتب فيه الأوامر.
الان للحفظ نكتب حرف w إختصار ل write ثم نضغط Enter .
الأن للخروج من البرنامج بذات الطريقة في الأعلى لاكن نكتب حرف q إختصار ل quit ثم نضغط Enter .
ممكن إختصار الأمر من خلال wq اي حفظ وخروج .
الأن لنفترض نريد الخروج من البرنامج من دون الحفط نكتب حرف q ثم علامة إستفهام ! مع مراعات أن يبقى الترتيب هكذا أي حرف q أولا .
أخيرا بعض التوضيح الامر سهل جدا الذي يهمنا شيئين.
أولا إذا اردنا وبأي لحظة الدخول على نمط الكتابة نضغط حرف i أو a وللخروج من هذا النمط أو في حال أصبنا بالإرتباك نضغط مفتاح Esc مرتين ثم نقرر ماذا نريد إذا اردنا الحفظ أو الخروج ...إلخ نضغط كما ذكرنا سابقا مفتاح Shift والنقطتين ثم نكتب الاوامر التي نريد , أما إذا أردنا الدخول مجددا إلى نمط الكتابة نضغط مجددا مفتاح i أو a ,وهكذا نتنقل بين النمطين على حسب حاجتنا .
قومو بإنشاء ملف نصي للتمرن عليه مثال ملف إسمه myfile.txt مع الملاحظة إذا لم نذكر المسار سيتم إنشاء الملف في المسار الذي نقف فيه حاليا ممكن ان نعرف أين نقف من خلال كتابة أمر pwd .
vi myfile.txt
وممكن أيضا إذا كان محرر vim كاملا مثبت .
vim myfile.txt