اذهب إلى المحتوى

تعرف على أساسيات Vim - الجزء الأول


عبدالهادي الديوري

الأدوات التي تُساعد المُبرمج في عمله كثيرة ومتعددّة، وهي التي تكون سببا إما في زيّادة أو تقليص إنتاجيته وسرعة عمله، لذلك فمن المهم اختيّار الأدوات بعناية، والمحرر أهم هذه الأدوات، إذ به تنجز معظم عملك البرمجي ولا يمكن لأيّ مبرمج العيش بدون محرّر. في هذا المقال سنطّلع معا على محرّر Vim الذي يعتبر من أشهر المحررات والذي يستخدمه عدد كبير من المبرمجين من مختلف أنحاء العالم في تعاملهم مع لغات البرمجة المختلفة؛ قد تصدمك حقيقة أن vim أُطلق منذ أكثر من 23 عاما، ولكنه لم يَشِخ بعد، فمُجتمَعُهُ لا زال يكبر يوما بعد يوم، ومعظم المبرمجين المعروفين يستخدمونه ويعتمدون عليه في تحرير شِفراتهم.

تَعَلُّمُ كيفية التّعامُلِ مع محرّر نصوص؟

نعم لا حرج في ذلك، في الحقيقة عندما تستعمل شيئا ما لساعات طِوال لا بد أن تتعلّم كيف تكون أسرع في إنجاز العمل، ولذلك فإن تعلّم محرّر vim يستحق منك أن تعطيه شيئا من وقتك! ففي النهاية النّتائج هي المهمّة وما تريد أن تصل إليه هو التّعامل مع الملفات البرمجية بشكل أسرع وأكثر إنتاجية.

لماذا vim ؟

معظم الذين يجربون هذا المحرر لأول مرة سرعان ما ينعتونه ب “محرّر من العصر الحجري” خاصة بواجهته التي قد تبدو للوهلة الأولى “سيّئة”، والكثير ممّن لا يعرفونه جيّدا يقولون أنه لا يستحق أن يسمى محرّرا إمّا لصعوبة أوامره أو لأسباب أخرى عادة ما تكون مبنية على قلّة المعرفة، فالأوامر ليست صعبة وتستحقّ منك تعلّمها بكلّ تأكيد.

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

معظم الذين يقولون أن المحرّر سيّء لم يجرّبوه في الأساس أو أنّهم لم يدرسوه بشكل جدي، الشّيء الذي ستتفاداه أنت بعد قراءتك لهذا الدّرس. وإليك بعضا من الأسباب التي قد تدفعك إلى تعلّمه

1. لأنّه ممتع

أهمّ الأساب التي قد تدفعك لتعلّم vim هو المتعة التي ترافقك أثناء كتابة شيفراتك البرمجية وتعديلها، عند تعَوّدِكَ على إستعمال المحرر ستصل إلى مرحلة يكون فيها التحرير كلعبة بين يديك.

2. لأن الكثير من المبرمجين يستعملونه

محرر vim ليس مجرد محررًا بسيطًا، بل هو محرر ذو قدرات عالية وخير دليل على ذلك هو العدد الكبير من المبرمجين الذين يستعملونه، إذ في أحد الإحصائيات فإن أكثر من نصف مبرمجي لغة Ruby وهي لغة كائنية OOP يستعملون vim وحوالي الثلث من مبرمجي Python أيضا يستعملون Vim.

الإحصائيتان شملتا عددا من مبرمجي لغتي Ruby وPython فقط وهما لغتان رغم شهرتها إلا أنهما تبقيان أقل شهرة من لغات كـ ++C ، C  وJavascript وغيرهم، فما بالك بعدد المستخدمين من المبرمجين باللغات الأخرى.

3. لأنّه قابل للتّخصيص

يمكنك تخصيص vim إلى درجة كبيرة حيث يمكنك تغيير الأوامر أو إضافة أخرى جديدة بالإضافة إلى كمية الإضافات الهائلة المتاحة له والتي تجعله قادرا على تنفيذ مهام ووظائف جديدة تُبرمج هذه الإضافات بلغة خاصة تسمى فيمسكريبت vimscript كما يدعم برمجة الإضافات بلغات أخرى مثل (python ; ruby ; tcl ; lua ..)

الخلاصة هنا أن محرر Vim يتمتع بالشهرة والكفاءة وقابلية الإستخدام التي ستدفعك إلى تجربته وتعلّم التّعامل معه ففي النهاية إتقان مهارة جديدة أمر يصقل خبرات المبرمج.

تنصيب المحرر

لتنصيبه على توزيعات جنو/لينكس المبنية على الدبيان (Ubuntu ،Linux Mint ،Elementary OS...)، طبّق هذا الأمر في الطرفية Terminal:

$ sudo apt-get install vim

لتنصيبه على توزيعة فيدورا، طبق هذا الأمر في الطرفية Terminal:

$ sudo yum install vim

لتنصيبه على Windows، يمكنك تحميل Gvim، ولتنصيبه على Mac فإن Vim يأتي مثبتا مُسبقا على أنظمة الماك، لذلك كل ما عليك فعله هو كتابة vim في الطرفية Terminal لتشغيله.

أهم الأوامر قبل فتح ملفّ

يمكنك فتح أي ملف تريده من الطّرفية Terminal بكتابة:

vim file.txt

غيّر file.txt إلى الملف الذي ترغب في فتحه إن لم يكن موجودا فسيُنشئ vim ملفا بذلك الإسم.

ملاحظة: إذا كنت على لينكس أو Mac فتأكّد من أنك على المجلد الصحيح بإستخدام أمر pwd ويمكنك إستخدام أمر ls لعرض الملفات المتاحة كما تستطيع التنقل بين المجلدات بإستخدام:

cd directory

مع تغيير directory إلى إسم المجلّد وللرّجوع إستخدم:

cd ..

وللرّجوع إلى مجلّد المنزل قم بإدخال أمر cd فقط

أول ما ستقوم به عند فتح vim هو الضغط على زر  وهو الذي سيمكنك من الدخول إلى نمط الكتابة ويمكنك كتابة ماتشاء في الملف.

  • [ i] للدخول إلى نمط الكتابة إضغط على.
  • [o]  للدخول إلى نمط الكتابة في سطر جديد.
  • [Esc] للخروج من نمط الكتابة إلى نمط الأوامر.
  • [v] للدخول إلى النمط المرئي ومنه يمكنك تحديد نص أو مجموعة كلمات.

أنماط (أوضاع) Vim

نمط الكتابة Insert mode

نمط الكتابة يمَكّنكَ من كتابة وتعديل ما تشاء. وهو النمط الأساسي (الجزء الذي لا يحتاج إلى تعلّمه).

1.png

النمط المرئي Visual mode

2.png

في النمط المرئي يمكنك تحديد النصوص والكلمات بإستعمال طُرق الإنتقال (التي سنذكرها لاحقا)، وتطبيق الأوامر عليها سواء حذفها أو نسخها أو تعديلها...

نمط الأوامر Command mode

نمط الأوامر هو النّمط الذي يخوّل لك إعطاء الأوامر للمحرر, سواء كان حذف كلمة أو حذف جملة أو تغيير شيء ما أو أي شيء من هذا القبيل وهو النمط الإفتراضي.

أوامر Vim

فتح ملف بإسمه (إذا كان موجودا في نفس المجلد):

:e file.txt

إذا كان في مجلد آخر:

:e directory/file.txt

إذا أردت تصفح الملفات الموجودة وإختيّار ملف:

:e .

للحفظ تحت إسم آخر:

:w إسم_الملف

حفظ الملف:

:w

الحفظ والمغادرة:

:wq

المغادرة بدون حفظ:

:q!

إستعمال أوامر النظام داخل vim

يمكنك إستعمال أوامر النظام في vim كالتالي:

:! cmnd

مثلا لنقل أنك تعمل على صفحة Html وتريد عرضها بمتصفح فايرفوكس، كل ما عليك فعله هو:

:! firefox index.html

يمكنك الإنتقال بين الأحرف باستخدام الأسهم على لوحة المفاتيح أو يمكنك استعمال الأحرف:

k أعلى

j أسفل

h يسار

l يمين

تستطيع القفز من مكان إلى آخر بإضافة عدد الأحرف أو الأسطر المراد تجاوزها قبل كل سهم، مثلا إذا أردت الإنتقال 20 حرفا إلى اليمين:

20l

الإنتقال 35 سطرا إلى الأسفل:

35j

الإنتقال إلى بداية الملف:

gg

الإنتقال إلى نهاية الملف:

G

الإنتقال إلى بداية السطر:

0

الإنتقال إلى نهاية السطر:

$

الإنتقال إلى سطر معين (السطر 15 في هذا المثال):

15gg

للتراجع عن تعديل:

u

للتراجع عن التراجع:

Ctrl + r

نسخ سطر:

yy

حذف سطر:

dd

نسخ، حذف عدد من الأسطر (4 في هذا المثال):

4dd
4yy

حذف كلمة (ضع المؤشر على أول الكلمة):

dw
yw للنسخ

للقص يمكنك إستبدال d و y بـِ x

للصق الجزء المنسوخ أو المقصوص:

p

لتحديد جزء من النّص:

أدخل إلى النمط المرئي بإستعمال Ctrl + v ثم إنتقل بإستخدام الأحرف hjkl أو الأسهم لتحديد ما تريد.

التعامل مع النص المحدد:

للتعامل مع النص المحدد يمكنك ببساطة إستعمال الأحرف y للنسخ و d للحذف و x للقص.

وللبحث عن نص ما:

/Search_query

إستبدل Search_query بما تبحث عنه.

التعامل مع عدة ملفات في آن واحد:

يمكنك تقسيم الشاشة إلى ما تشاء من الأجزاء والتعامل مع الملفات - الأمر أشبه بالنوافذ المبوبة tabs (الموجودة كذلك في vim).

لتقسيم الشاشة أفقيا :

:sp

عموديا :

:vs

للتّنقل بين أقسام الشاشة :

Ctrl + ww

أو:

Ctrl + w + الأسهم

التّبويبات Tabs

لفتح عدّة ملفات كل ملف في تبويبة يمكنك تنفيذ الأمر التالي (في الطّرفيّة Terminal):

$ vim -p file1 file2 file3

إنشاء نافذة جديدة:

:tabnew

إغلاقها:

:tabc

الإنتقال إلى التّبويبة التالية:

:tabn (n إختصارا ل next)

الإنتقال إلى التّبويبة السابقة:

:tabp (p إختصار ل previous)

يمكن إستعمال الأرقام فمثلا للقفز إلى التّبويبة الثالثة:

:tabn3

الذهاب إلى التّبويبة الأخيرة:

:tabl

الرجوع إلى التّبويبة الأولى:

:tabr

 

لعرض التّبويبات:

:tabs

التّعامل مع التّبويبات هكذا أمر متعب أليس كذلك ؟

كل ما عليك فعله هو إنشاء إختصارات لها وهذا سكريبت جاهز يقوم بالأمر:

فقط أضف الأسطر إلى ملف vimrc. الموجود في مجلّد المنزل HOME$ (ربما قد لا يكون موجودا، عليك إنشاءه إن لم يكن موجودا):

map <C-t><up> :tabr<cr>
map <C-t><down> :tabl<cr>
map <C-t><left> :tabp<cr>
map <C-t><right> :tabn<cr>

ملاحظة: بما أن الملف يبدأ بنقطة فهو مخفي، إذا حاولت رؤيته من متصفح ملفات فعليك أن تظهر الملفات المخفية (Ctrl+h).

ملاحظة لمستخدمي Windows، للحصول على ملف vimrc عليك القيام بالتالي:

افتح قائمة ابدأ (start) ثمّ "تشغيل" (run) بعد ذلك ألصق الأمر التالي:

%userprofile%

ثمّ قم بإنشاء ملفّ باسم:

_vimrc

الإختصارات الآن هي كالتالي :

Ctrl + t + الأسهم

الأعلى والأسفل للتنقل بين التبويبة الأولى والأخيرة على التوالي، وأما الأسهم يمين ،يسار فهي للتنقل بين التبويبات بشكل عادي (التالية ، السابقة).

بعض الأسطر التي قد تَوَدُّ إضافتها لملف vimrc.

set encoding=utf-8
set number
set hlsearch
set hlsearch لتضليل النص الذي تبحث عنه
set number لإضافة الأرقام في الجانب

ملاحظة: يمكنك إظهار الترقيم فقط بكتابة:

:set number

وهذه صورة للمحرر بعد إضافة setnumber إلى ملف vimrc:

3.png

خاتمة

vim يمتلك العديد من الأوامر والمميزات، العديد منها بحيث لا يستطيع مقال واحد شرحها، لذلك فهذا المقال مجرد مدخل إلى عالم محرر Vim و أنصحك بقراءة المزيد عنه إذا كنت مهتما، سنتعرف في الجزء الثاني من أساسيات Vim عن معلومات إضافية عن هذا المحرر وكيفية تطويعه لمتطلباتك اليومية.

figure-1.png

figure-3.png


تفاعل الأعضاء

أفضل التعليقات



انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أضف تعليق

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • أضف...