كيف تستعمل محرر النصوص Vim في لينكس - درس تعليمي للمبتدئين

 

كيف تستعمل محرر النصوص Vim في لينكس

اذا كنت دخلت جديدا على عالم لينكس فلبدا انك واجهت واجهة سطر الاوامر ,واذا كنت تتعامل بسطر الاوامر لابدا ان تلتقي بمجموعة من محررات النصوص. من بينهم محرر Vim الذي يقف كاقوى واعقد محرر نصوص, وهنا سوف نقدم لك كل شيئ تحتاجه حول محرر النصوص Vim من الاساسيات الى التقنيات المتقدمة لمساعدتك لكي تبدء في اتقان هذه الاداة الرهيبة.

ماهو vim 

محرر Vim هو اختصار لعبارة Vi IMproved (مُحسّن). وهو محرر نصوص مجاني ومفتوح المصدر ومتعدد المنصات. أصدره برام مولينار لأول مرة عام 1991 لإصدارات يونكس. تم تصميم Vim للاستخدام من واجهة سطر الأوامر CLI وكتطبيق مستقل في واجهة مستخدم رسومية GUI.
يعتمد Vim على محرر Vi الأصلي، الذي أنشأه بيل جوي عام 1976. في التسعينيات، اتضح أن Vi يفتقر إلى بعض الميزات مقارنةً بمحرر Emacs. لذلك، أضاف برام العديد من الميزات المفقودة وأطلقه تحت اسم Vim.

كيفية تثبيت Vim ؟

يشتغل Vim على على العديدمن المنصات كويندوز ولينكس وماك.
لتثبيت Vim على ويندوز كل معليك هو الذهاب للموقع الرسمي للبرنامج وتحميله ثم تثبيته عن طريق اتباع التعليمات بعد فتح الملف.
يأتي Vim مثبتا مُسبقًا على مُعظم أنظمة تشغيل لينكس. ولكن إذا لم يكن مُثبّتًا على نظامك، يُمكنك تثبيته باستخدام مُدير الحزم الذي تُفضّله.
إليك أمر التثبيت لأنظمة التشغيل المستندة إلى Debian:
sudo apt-get update
sudo apt-get install vim
لتتأكد من تثبيته بشكل صحيح، قم بتشغيل which vim ويجب أن تحصل على usr/bin/vim/ في الناتج الخاص بك.

كيف تبدء مع Vim

يمكنك البدء مع Vim عبر ادخال vim في الطرفية هكذا 

بعد ادخال الامر السابق سوف يظهر على شاشة الطرفية كما في الاسفل


كما تلاحظ فهي مجموعة معلومات و تعليمات حول المحرر للمساعدة و تعليمات للخروج من المحرر.
أول شيء يجب تعلمه هو كيفية الخروج لكن لبدا ان تعرف ان Vim متعدد الانماط او الاوضاع ولبدا ان تكون في وضع سطر الاوامر للخروج من البرنامج.
للخروج، نُدخل الأمر التالي q: (لاحظ في اسفل الصورة أن النقطتين جزء من الأمر)


يجب أن يعود موجه الأوامر. إذا لم يُغلق vim لسبب ما (عادةً لأننا أجرينا تغييرًا على ملف لم يُحفظ بعد)، يُمكننا إخبار vim بأننا جادُّون في ذلك بإضافة علامة تعجب إلى الأمر هكذا.


اذا بدئت بالضيعان فكل معليك هو الضغط مرتين على زر ESC والعودة لتنفيذ امر الخروج.

الأوضاع في Vim

لبدا ان تدرك نقطة مهمة في محرر Vim وهي الانماط او الأوضاع Modes قبل الذهاب بعيد في اتقانه.
كل شيء في Vim يُعتبر وضعًا. يمكنك تحقيق ما تريد إذا فهمت الأوضاع في Vim. هناك العديد من الأوضاع في Vim. لكننا سنلقي نظرة على أهم أربعة أوضاع.
  • وضع الأوامر - Command Mode
  • وضع سطر الأوامر - Command-Line Mode
  • وضع الإدراج - Insert Mode
  • الوضع المرئي - Visual Mode

ما هو وضع الأوامر؟

هذا هو الوضع الافتراضي (ويُسمى أيضًا الوضع العادي) في Vim. عند بدء تشغيل Vim، ستكون في هذا الوضع, حيث يمكنك التبديل إلى أي وضع من هنا وأيضا لا يمكنك فعل ذلك في أي أوضاع أخرى.
يعتبر اي ضغطة لزر من لوحة مفاتيح امر ل Vim في هذا الوضع لذلك يجب توخي الحذر او سوف تذهب الامور الى الجنون .
ببساطة، للتبديل من وضع إلى آخر، يجب عليك أولاً الوصول إلى وضع الأوامر ثم الانتقال إلى الوضع الآخر. تشير الأوامر التي تُشغّلها بدون أي بادئة (نقطتان) إلى أنك تُشغّل الأمر في وضع الأوامر.

ما هو وضع الإدراج؟

يُستخدم هذا الوضع لتحرير محتويات الملف. يمكنك التبديل إلى وضع الإدراج بالضغط على i من وضع الأوامر. يمكنك استخدام مفتاح Esc للعودة إلى وضع الأوامر.

ما هو وضع سطر الأوامر؟

يمكنك استخدام هذا الوضع لتجربة بعض الأوامر. لكن أوامر هذا الوضع مسبوقة بعلامة النقطتين (:). يمكنك التبديل إلى هذا الوضع بالضغط على : (نقطتان) في وضع الأوامر.

ما هو الوضع المرئي؟

يُستخدم هذا الوضع لتحديد نص بصريًا وتنفيذ أوامر عليه. يمكنك التبديل إليه بالضغط على v من وضع الأوامر.
الأوضاع الأربعة المذكورة أعلاه كافية لإجراء مجموعة أساسية من عمليات الملفات في Vim.
و الان فل نبدء في تعلم استعمال Vim

وضع التعديل في Vim

وضع التعديل هو احد الاوضاع التي يوفرها Vim للتعديل على الملفات فبدلا من فتح البرامج بدون ملف فيدخل في وضع compatible mode هذه المرة ندخل اسم ملف غير موجود كما في الاسفل للدخول في هذا الوضع


هذه طريقة لانشاء ملف ب Vim.
اذا سارت الامور بشكل صحيح فستحصل على شاشة مثل هذه


الرموز ~ تشير الى ان الملف فارغ وايضا هذا الرمز يشر الى سطر فارغ.
لإضافة نص لابد من الدخول الى وضع الادراج عبر الضغط على الحرف i من لوحة المفاتيح حيث تقول للبرنامج ادخل الى وضع الادرج لكي أضيف بعض النصوص للملف ,بعد ذلك يظهر لك  في الأسفل مثلما في الصورة


و الأن يمكننا ادخال نص:


للخروج من وضع الادراج والعودة لوضع الأوامر اضغط على زر Ecs من لوحة المفاتيح.
لحفظ عملنا لابدا لنا من الدخول لوضع سطر الأوامر وذلك بإدراج نقطتين : بعدهما w وذلك اختصار ل write اي كتابة كما في الأسفل:


بعد الضغط على enter سيظهر لك رسالة في الأسفل رسالة تشير الى انه تم الحفظ:
وللخروج اكتب الامر التالي q: .

التنقل في Vim

يوضح الجدول التالي اهم مفاتيح الاوامر لتحريك المؤشر :
جدول توضيحي للأوامر المستخدة لنقل المؤشر في vim

يمكن إضافة بادئة رقم للعديد من أوامر Vim، كما هو الحال مع الأمر G الموضح في الجدول. بإضافة بادئة رقم إلى أمر ما، يمكننا تحديد عدد مرات تنفيذه. على سبيل المثال، يُؤدي الأمر 5j إلى تحريك المؤشر إلى الأسفل خمسة أسطر .

أساسيات التحرير

بعد ان تعرفنا على كيفية التنقل وتحريك المؤشر داخل Vim, الأن لبدا ان ندرك عمليات التحرير الأساسية داخله من إدراج نص، وحذفه، ونقله بالقص واللصق. يدعم Vim بالطبع، جميع هذه العمليات بطريقته الخاصة. كما يوفر Vim إمكانية محدودة للتراجع. إذا ضغطنا على مفتاح u في وضع الأوامر، فسيتراجع Vim عن آخر تغيير أجريته و ctrl+r للتراجع عن تراجع التعديل السابق. سيكون هذا مفيدًا عند تجربة بعض أوامر التحرير الأساسية.

إلحاق و إدراج نص

هناك عدة طرق للدخول في وضع الإدراج من بينها الأمر i الذي استعملناه سابقا لكن إن اردنا اضافة نص في نهاية الجملة سنكتشف ان هذا الأمر لين يقوم بذلك, لأن المؤشر لا يذهب الى نهاية السطر.يوفر Vim أمرًا لإضافة نص، وهو الأمر الذي يُسمى a. إذا حركنا المؤشر إلى نهاية السطر وكتبنا a، سيتجاوز المؤشر نهاية السطر، وسيدخل Vim وضع الإدراج. هذا يسمح لنا بإضافة المزيد من النص.
لأننا نرغب دائمًا تقريبًا في إضافة نص إلى نهاية السطر، يوفر Vim اختصارًا للانتقال إلى نهاية السطر الحالي وبدء الإضافة. إنه الأمر A. 
فلتقم بتجربة ذلك,  أولاً انقل المؤشر إلى بداية السطر باستخدام الأمر 0 (صفر). الآن نكتب A ونضيف بعض الأسطر.
اضغط على مفتاح Esc مرة أخرى للخروج من وضع الإدراج.
كما نرى، يُعدّ الأمر A أكثر فائدةً لأنه يُحرّك المؤشر إلى نهاية السطر قبل بدء وضع الإدراج.
هناك طريقة اخرى للدخول في وضع الإدراج, وهي ادراج سطر حيث يقوم بإدخال سطر فارغا بين سطرين موجدين مع الدخول في وضع الإدراج ولهذا الوضع طريقتين:
لإدراج سطر اسفل السطر الحالي اضغط o 
لإدراج سطر أعلى السطر الحالي اضغط O
يمكننا توضيح ذلك على النحو التالي ضع المؤشر على السطر 2 ثم اكتب o.


سيدرج سطر جديد ويدخل وضع الإدراج ,للخروج من وضع الإدراج، اضغط على مفتاح Esc.
اضغط على u للتراجع عن التغيير.
اكتب O لإدراج سطر  أعلى المؤشر:



اخرج من وضع الإدراج بالضغط على Esc، وتراجع عن التغيير بكتابة u.

حذف نص

يوفر Vim طرقا منوعة لحذف نص, كل من هذه الطرق تتم بضطغة او ضغطتي من لوحة المفاتيح, أولاهم الأمر x حيث يحذف حرفا من موقع المؤشر كما يمكن ان يسبق المؤشر رقم يحدد عدد الأحرف المراد حذفها. والثاني هو الأمر d وهو مثله مثل الأمر x يمكن ان يسبقة رقم يحدد عدد الاحرف المراد حذفها لكنه ذو استعمال اعم وايضا من ميزاته أن  الأمر d يتبعه دائمًا أمر حركة يتحكم في حجم الحذف وهناك بعض الأمثلة في الجدول التالي.
أوامر الحذف في Vim

قص ونسخ ولصق نص في Vim

يمكنك استعمال الأمر d لقص النص فكل مرة تستعمل الأمر يقوم Vim بلصق محتوى الحذف في buffer يمكنك ان تدعوها حافظة مؤقتة التي يمكنك استدعائها لاحقا بالأمر p وذلك بلصق محتوى الحافظة في مكان المؤشر وذلك بالأمر p .
و للنسخ ايضا يُستخدم الأمر y وهو اختصار ل yank لنسخ النص بنفس طريقة استخدام الأمر d لقص النص. و إليك بعض الأمثلة على دمج الأمر y مع أوامر تحريك مختلفة.
  • yy لنسخ السطر الحالي
  • 3yy لنسخ السطر الحالي و السطرين التالين
  • yW نسخ من مكان المؤشر إلى اول الكلمة التالية
  • y$ نسخ من مكان المؤشر  الى نهاية السطر الحالي
  • y0 نسخ من مكان المؤشر  الى بداية السطر الحالي
  • y^ نسخ من مكان المؤشر  الى أول حرف من السطر الحالي يتجاهل الفرغات في بداية السطر
  • yG نسخ من السطر الحالي إلى نهاية الملف 
  • y10G نسخ من السطر الحالي إلى السطر العاشر 

البحث و الاستبدال في Vim

لدى Vim القابلية لنقل مكان المؤشر بناء على عملية البحث حيث يمكنه القيام بذلك اما على سطر محدد من الملف او الملف بأكمله كما يوفر الإستبدال  بدون الحاجة لتأكيد المستخدم.
لقد قلنا ان عملية البحث في Vim تتمم بطرقتين ام على سطر محدد او الملف باكمله حيث يكون بكتابة الأمر f الذي يتبعه حرف معين لنقل مكان المؤشر للحرف المراد مثلا fa سينتقل الى إلى مكان الحرف a من مكان المؤشر وهذه الطريقة الاول البحث في السطر.
اما الطريقة الثانية هي البحث في الملف بأكمله و لنقل المؤشر إلى المكان التالي لكلمة أو عبارة، يُستخدم الأمر / عند كتابة الأمر /، سيظهر الرمز / أسفل الشاشة. بعد ذلك، اكتب الكلمة أو العبارة المراد البحث عنها، متبوعًا بمفتاح Enter. سينتقل المؤشر إلى الموقع التالي الذي يحتوي على سلسلة البحث. يمكن تكرار البحث في الملف على نفس الكلمة باستخدام الأمر n.
كما يسمح Vim بطريقة اخرى للبحث وهي التعبيرات المنطقية regular expressions فبدلا من البحث عن جملة او كلمة يمكنك استخدام نمط للبحث كتاريخ او رقم هاتف و موضوع التعبيرات المنطقية موضوع عميق و طويل لا نستطيع تغطيته هنا يمكنك البحث عنه.
وأيضا يستخدم Vim طريقة اخرى لإجراء عملية البحث والإستبدال العام وهي تكون في وضع سطر الأوامر إما على نطاق من الأسطر أو الملف بأكمله.
لتغير نص سطر بسطر للملف بأكمله ندخل الامر كما في الأسفل:


ستلاحظ بعد ضغط مفتاح الإدخال التالي:


الان دعنا نفهم الأمر التالي:


  • :  التقطتان تعنيعني بدء وضع سطر الأوامر
  • %   يُحدد هذا نطاق الأسطر للعملية. % اختصارٌ يعني من السطر الأول إلى السطر الأخير. كما يُمكنك تحديد النطاق بـ 1,5 وهذا يفهم بقم بالبحث والإستبدال على الخمس أسطر الأولة و 1,$، والذي يعني "من السطر الأول إلى السطر الأخير في الملف" وهذا نفس عمل % لكن يطلب منك التأكيد, و إذا تم حذف نطاق الأسطر، فسيتم تنفيذ العملية على السطر الحالي فقط.
  • s هذا يُحدد العملية. في هذه الحالة، هي عملية استبدال (بحث واستبدال).
  • Hello/Hi/ يحدد هذا نمط البحث والنص البديل.
  • g هذا يعني "global" بمعنى أن عملية البحث والاستبدال تجرى على كل مثيل من نمط البحث في السطر بأكمله. في حال حذفه، يُستبدل فقط المثيل الأول من نمط البحث في كل سطر.

كما يمكننا أيضًا تحديد أمر استبدال بتأكيد المستخدم. يتم ذلك بإضافة حرف c في نهاية الأمر.سوف يظهر في الأسفل كمايلي:


معنى كل ادخال كالآتي:
  • حرف y يقوم بإجراء الإستبدال 
  • حرف n لتخطى الاستبدال الحالي
  • حرف a لإستبدال كل الحالات المشابهة للنمط ا. اختصار لي All.
  • حرف q للخروج من الإستبدال 
  • حرف l نفّذ هذا الاستبدال ثمّ أنهِ. هذا اختصار لكلمة "last".
إذا ادخلت إذا كتبت y، فسيتم إجراء الاستبدال. سيؤدي كتابة n إلى تخطي Vim لهذه الحالة والانتقال إلى الحالة التالية.

التحرير على عدة ملفات في Vim

من المفيد في التحرير التعديل على عدة ملفات في انَ واحد لأن ذلك يزيد من الإنتاجية. ربما تحتاج إلى التعديل عدة ملفات في آن واحد أو نسخ محتوى ملف إلى ملفِِ آخرى, مع Vim يمكنك فعل ذلك عن طريق ادراج أسماء الملفات مرتبة في سطر الاوامر هكذا: 


يحفظ Vim الملفات في buffers حيث يمكن اظهار قائمة الملفات في وضع سطر الاوامر بالأمر buffers: .
للتبديل بين الملفات وهي بالامر buffer: يتبعه مسافة ورقم الملف حسب ترتيبه في قائمة buffers وعبر الأمران  bn: و bp: الأمر الأول للملف التالي والأخرى للرجوع للملف السابق.
من الممكن أيضًا إضافة ملفات إلى جلسة التحرير الحالية. سيؤدي استخدام الأمر e: (اختصارًا لكلمة "edit") متبوعًا باسم الملف إلى فتح ملف إضافي. 
غالبًا، عند تحرير عدة ملفات، نرغب في نسخ جزء من ملف إلى ملف آخر نقوم بتحريره.يُمكن القيام بذلك بسهولة باستخدام أمري السحب واللصق وهما y و p اللذين مررنا عليهم سابقًا.

من الممكن أيضًا إدراج ملف كامل في ملف نقوم بتحريره. لمشاهدة ذلك عمليًا، نقوم بفتح جلسة تحرير جديدة ب Vim وبعده نضع مكان المؤشر في النطاق المراد لمحتوى الملف الاخرى الظهور فيه ثم نستخدم الامر r: في وضع الإدراج فيُدرج الأمر r: (اختصارًا لـ "قراءة") محتوى الملف المحدد أسفل موضع المؤشر.

حفظ الملفات في Vim 

كما هو الحال في جميع وظائف Vim، هناك عدة طرق مختلفة لحفظ ملفاتنا المُحررة. لقد تناولنا بالفعل أمر w: في وضع سطر الأوامر، ولكن هناك طرق أخرى قد نجدها مفيدة أيضًا.
في وضع الأوامر، يؤدي كتابة ZZ إلى حفظ الملف الحالي والخروج من Vim.
وبالمثل، سيجمع أمر  wq: أمري w: و q: في أمر واحد يحفظ الملف ويخرج منه.
قد يُحدد أمر w: أيضًا اسم ملف اختياريًا. يعمل هذا مثل حفظ باسم. على سبيل المثال، إذا كنا نُحرر ملف باسم Hello.txt وأردنا حفظ نسخة بديلة تُسمى Hello1.txt سننتهي بكتابة الأمر التالي w Hello1.txt: .
لكن على الرغم من أن هذا الأمر السابق الذكر يحفظ الملف باسم جديد، إلا أنه لا يغير اسم الملف الذي تقوم بتحريره.

خلاصة

في الختام، غالبًا ما يؤدي استخدام سطر أوامر لينكس إلى مواجهة العديد من محررات النصوص، ومن بينها، يتألق Vim كأداة قوية ومعقدة في آنٍ واحد.بفضل هذه المهارات الأساسية، يُمكننا الآن إجراء معظم عمليات تحرير النصوص اللازمة للتحرير على سطر الأوامر في لينكس. سيُؤتي تعلّم استخدام Vim بانتظام ثماره على المدى الطويل.مع أن منحنى تعلم Vim قد يبدو صعبًا، إلا أن إتقان إمكانياته يمكن أن يعزز الإنتاجية والكفاءة بشكل كبير للمبرمجين ومسؤولي النظام وأي شخص يقضي وقتًا في استخدام الطرفية. مع الممارسة والاستكشاف، يفتح Vim آفاقًا واسعة من إمكانيات تحرير النصوص القوية، مما يجعله إضافة قيّمة في بيئة لينكس.