/vim مقدمة عن ال

vim مقدمة عن ال

قبل ظهور نظام التشغيل الشهير يونكس UNIX ظهر محرر النصوص “ed” والذي كتب بواسطة Ken Thompson عام 1971، يعتبر هذا المحرر من اقدم واول محررات النصوص ويعتبر اول محرر نصوص ينفذ فكرة التعبيرات النمطية (Regular Expressions).

وبعد هذا بفترة ظهر محرر النصوص “ex” اختصارا ل “EXtend” كاضافة علي “ed” ولجعله اكثر سهولة في الاستخدام.
كتب محرر النصوص “vim” في عام 1976 بواسطة Bill Joy لنظام BSD وبالطبع وفق رخصة تحمل نفس اسم النظام وهي رخصة للبرامج مفتوحة المصدر عدما بدأت انظمة مثل (VT-100) في الظهور. كتب هذا المحرر كاضافة وتعديل علي “ex”، و يحتوي محرر النصوص هذا علي وضعين فقط من الاوضاع التي يوفرها Vimحاليا والتي سوف نتحدث عنها تفصيلا، وهو يعمل من خلال سطر الاوامر فقط.

بعد صدور “vi” بعده اعوام ظهرت العديد من النسخ له وكان اشهرها Vim و هو اختصار Vi Improved اي Vi المحسن و ايضا ظهر elvis ونسخ اخري.

بدء العمل علي بناء Vim سنة 1991 بواسطة Bram Moolenaar وكان الهدف من ذلك هو بناء محرر نصوص متكامل لحواسيب Amiga لتحرير الكود المصدري(Source Code). ويتم اصدار Vim وفق رخصة GPL اي انه برنامج مفتوح المصدر. ظل Vim ايضا يعمل من خلال سطر الاوامر الي عام 1996 حين تم برمجة اول واجهة مستخدم له، وكان حينها في الاصدار الرابع .

مقدمة عن Vim

قبل تعلمي لمحرر Vim قمت باستخدام عدد من محررات النصوص التقليدية ك Gedit و Kate لكن كانت هذه المحررات دائما تفتقر الي العديد من المميزات مثل المرونة في الاستخدام، ووفرة الاختصارات.

علي الرغم من سهولة Gedit و Kate الي ان Vim مقارنة بهم يعتبر اقوي كثيرا، وفي هذه المقالة سوف نعرف لماذا. ايضا Gedit و Kate محررات نصوص رسومية علي العكس من Vim و Emacs والذين يتوفر لهم نسخ تعمل من خلال سطر الاوامر و من خلال كافة المنصات.

هناك بعض الناس يشبهون هذا الامر بانه عليك ان تستخدم دراجة بدلا من السيارة لان الدراجة تستطيع الذهاب بها الي الي العديد من الاماكن التي لا تستطيع السيارة الذهاب اليها، ايضا ماذا سيحدث ان تعطلت سيارتك؟ حينها لن تستطيع الرجوع الي المنزل لكن ان كنت تستخدم دراجة فلن تقلق ابدا من هذا الامر.

ماذا لو تعطلت واجهة الرسوميات لديك؟ حينها لن تستطيع استخدام محررات النصوص Gedit و Kate ولن تتمكن من اصلاح هذا العطل في اغلب الاحيان!

ايضا يتوفر Vim مع كل منصات يونكس دون الحاجة الي تنصيبة علي العكس من Emacs.

لقد حاولت ايضا تعلم محرر نصوص Emacs والذي يمكن مقارنته ب Vim من حيث قوة مميزاته ولكني في اخر مرة كنت قد اعتدت علي استخدامه، حتي احتجت الي التعديل في ملف .emacs لجعله يتناسب مع استخدامي .. حينها قررت تعلم Vim.

هناك ايضا العديد من الاسباب التي جعلتني افضل Vim علي Emacs فعلي سبيل المثال وفرة بيئات التطوير ومحررات النصوص الاخري التي تدعم اختصارات Vim فعلي سبيل المثال Qt Creator وهو بيئة التطوير الخاصة بQt يحتوي علي Vim mode والذي يمكن من خلاله استخدام كافة اختصارات Vim ومحاكاته تماما. ايضا توجد اختصارات Vim مع صدفيتي (Shell) المفضلة ZSH. ربما لن تصدق ان قلت لك ان Chromuim او Google Chrome يحتوي علي اضافة (Extension) رائع لاختصارات Vim.

يحتوي Vim علي كم هائل من المميزات التي تزيد من انتاجيتك، ولكن تعلم هذه المميزات ليس بالامر السهل فيقول احد المطورين الذين يستخدمون Vim منذ فتره طويلة ساخراَ ” محرر النصوص الاكثر انتشارا بين مطورين لغة روبي المحترفين هو Vim لكن تعلم استخدامه ربما يكون اصعب من تعلم البرمجة نفسها!”
اخر سببين من الاسباب التي جعلت Vim محرر نصوصي المفضل؛ هم وفرة مصادر تعلمه علي الانترنت، و ثراء صفحات المساعدة الخاصة به فيمكنك من خلال الامر (:help) الوصول الي هذه الصفحات. السبب الاخر هو ان اختصاراته صحية اكثر من اختصارات Emacs!! اقصد بذلك انك لن تحتاج ان تقوم بالتعديل علي الاختصارات الاصلية لVim و تنسيقهم حسب حاجتك فالاختصارات الاصلية بسيطة واكثر سهولة من تلك التي يوفرها Emacs، اغلب هذه الاختصارات لا تتعدي الزر الواحد او الاتنين علي العكس من Emacs الذي يرغمك علي كثرة استخدام ازرار التعديل (Modifier Keys) (CTRL, ALT) وهذا يعد امرا غير تقليديا. حسناَ كفانا حديثاَ عن المميزات ولنبدء في تعلم Vim.

المستوي الاول: الخطوات الاولي:

اولا: كيفية التنصيب: 

كما ذكرنا سابقا ف Vim ياتي مدمجا مع انظمه يونكس ويمكن استخدامه من خلال كتابة vim من خلال سطر الاوامر وهذه صورة له في سطر الاوامر،

واذا اردته ان يعمل بدعم العربية فما عليك الا كتابة vim -a ولكن ان كنت ترغب في استخدامه عن طريق واجهة رسومية اسهل فيمكنك تنصيبها من خلال الامر

$ sudo apt-get install vim-gtk

الان سوف تجده مثبتا باسم GVim. وهذه صورة للواجهة الرسومية للبرنامج:

ثانيا: الاوضاع  Modes:

في محررات النصوص التقليدية تكفي الكتابة وحدها علي لوحة المفاتيح لادخال الحروف وكتابة شئ ما. لكن في Vim الامر يختلف قليلا، ففي الوضع التقليدي او العادي (Normal Mode) ويسمي ايضا (Command Mode) لن يمكنك هذا، فيتوجب عليك ان تغير من ال(Normal Mode) الي وضع الادخال (Insert Mode) بضغط زر ( i ) ، لكي تتمكن من الكتابة وكانك تستخدم اي محرر نصوص تقليدي.وهنا بعض اوامر التحويل الي وضع الادخال:

i    يقوم هذا الزر بتحويلك الي وضع الادخال قبل المكان الحالي للمؤشر.

a   يقوم هذا الزر بتحويلك الي وضع الادخال بعد مكان المؤشر الحالي.

I    يقوم هذا الزر بالقفز بالمؤشر الي اول حرف ليس بمسافة في السطر و تحويلك الي وضع الادخال.
A  يقوم هذا الزر بالقفز بالمؤشر الي اخر حرف في السطر و تحويلك الي وضع الادخال.

للعوده الي ال(Normal Mode) يمكنك الضغط علي ESC او اختصار CTRL+{. لعلك الان تتسال مافائدة ال(Normal Mode) وما الجديد فيه. في هذا الوضع يكون Vim مستعدا لاستجابة اوامرك مثل التنقل في الملف المفتوح او ازالة حروف او لصق ماتحوية الحافظة ( Clipboard ) او كما ذكرنا سابقا الوصول الي صفحات المساعدة بادخال :help. يمكنك تشبيه هذا الوضع زر CTRL مضغوط وكل ازرار لوحة المفاتيح تحولت استخدامتها من الكتابة العادية الي القاء بعض الاوامر.هنا بعض من هذه الاوامر :

i وضع الادخال.  

ESC  للعودة الي الوضع العادي او اي من اوامر الادخال السابق ذكرها

x  ازالة الحرف الذي يقف عليه المؤشر

:wq  للحفظ واغلاق البرنامج (:w للحفظ, :q للاغلاق)

dd  لازالة (والاحتفاظ) بالسطر الخالي او بمعني اخر Cut

p  للصق ماتم الاحتفاظ به

للتنقل في الملف المفتوح:

h,j,k,l (يفضل استخدام هذه الاحرف عن استخدام الاسهم التقليدية)  ايضا يمكن استخدام الاسهم (←↓↑→). للتذكير بهم يمكنك تخيل حرف j علي انه سهم لاسفل

:help <command> → لاظهار المساعدة لامر معين <command>, ايضا يمكنك كتابة :help بدون اي شئ اخر.

هناك بعض الملحوظات الواجب اخذها في عين الاعتبار:- في هذه المقالة بدلا من ان اكتب CTRL+C سوف اقوم بكتابة  <C-c> .

– اي امر يبدء ب : لابد ان ينتهي بضغطة علي زر  <enter>  كمثال ان اردت حفظ الملف عليك ان تضغط  :w<enter>

ماذا لو اردت تحديد بعض الكلمات ونسخها او ازالتها، لهذا يوجد مايسمي بالوضع المرئي (Visual Mode). يمكنك التحويل لهذا الوضع عندما تكون في الوضع العادي بالضغط علي اي من:

v من خلال هذا الزر تقوم بالتحول الي الوضع المرئي ويمكنك تحديد الحروف.

CTRL+V من خلال هذا الاختصار تقوم بالتحول الي الوضع المرئي ويمكنك تحديد مساحة معينة من الحروف.لا اظن ان الاوامر السابقة وحدها تكفي لجعلك مستخدم Vim ماهر، لذلك كل ماعليك هو التاقلم علي هذه الاوامر للانتقال للمستوي الاخر من هذه المقالة.بعد قراءتك للجزء الاول من المقالة وممارستك لما بها من اوامر تكون قد تعلمت الاوامر الاساسية في Vim .

في المرة القادمة ان شاء الله سوف ننتقل لمستوي اخر، حيث سيكون بامكانك الاستمتاع بالقوة التي يوفرها Vim لك!