لماذا تتعلم Vim؟
Vim (Vi Improved) هو محرر نصوص قوي ومتاح في几乎所有 أنظمة Unix/Linux. إليك بعض الأسباب لتعلم Vim:
- Vim متاح دائماً تقريباً. إنه ضروري ويجب معرفته لاختبار الاختراق والأمن السيبراني.
- Vim خفيف الوزن وسريع.
- يعمل Vim حتى في بيئات الطرفية البسيطة والاتصالات البعيدة.
- يدعم Vim إمكانية التخصيص والتوسعة بشكل كبير.
- يتميز Vim بكفاءة في تحرير النصوص بمجرد إتقانه.
نصيحة: قد يكون Vim صعب التعلم في البداية، ولكن一旦 إتقانه، ستجد أنه أحد أكثر الأدوات كفاءة لتحرير النصوص على الإطلاق.
أوضاع Vim الأساسية
يعمل Vim بعدة أوضاع مختلفة، كل منها له غرض محدد:
الوضع العادي
للتنقل وتنفيذ الأوامر
ESC
وضع الإدخال
لإدخال وتحرير النص
i, a
الوضع المرئي
لتحديد النص
v, V
وضع الأوامر
لتنفيذ أوامر متقدمة
:
ملاحظة: الضغط على ESC يعيدك دائماً إلى الوضع العادي، وهو الوضع الافتراضي في Vim.
الأوامر الأساسية
حركة المؤشر
التحرير
أوامر متقدمة
أوامر Vim الأساسية
الأوامر الأساسية لبدء واستخدام Vim:
| الأمر | الشرح |
|---|---|
vi | بدء Vim |
vim filename | فتح ملف في Vim |
:q | خروج من Vim |
:q! | خروج قسري من Vim دون حفظ |
:w | حفظ الملف |
:wq أو :x أو ZZ | حفظ الملف والخروج |
i | الدخول إلى وضع الإدخال قبل المؤشر |
a | الدخول إلى وضع الإدخال بعد المؤشر |
o | إدراج سطر جديد أسفل السطر الحالي والدخول إلى وضع الإدخال |
O | إدراج سطر جديد فوق السطر الحالي والدخول إلى وضع الإدخال |
ESC | الخروج من وضع الإدخال إلى الوضع العادي |
u | تراجع عن آخر تغيير |
Ctrl + r | إعادة آخر تغيير |
حركة المؤشر في Vim
أوامر حركة المؤشر في الوضع العادي:
| الأمر | الشرح |
|---|---|
h أو ← | تحريك المؤشر حرفاً واحداً إلى اليسار |
j أو ↓ | تحريك المؤشر سطراً واحداً إلى أسفل |
k أو ↑ | تحريك المؤشر سطراً واحداً إلى أعلى |
l أو → | تحريك المؤشر حرفاً واحداً إلى اليمين |
0 (صفر) | الانتقال إلى بداية السطر الحالي |
^ | الانتقال إلى أول حرف غير فراغ في السطر الحالي |
$ | الانتقال إلى نهاية السطر الحالي |
w | الانتقال إلى بداية الكلمة التالية أو علامة الترقيم |
W | الانتقال إلى بداية الكلمة التالية، وتجاهل علامات الترقيم |
b | الانتقال إلى بداية الكلمة السابقة أو علامة الترقيم |
B | الانتقال إلى بداية الكلمة السابقة، وتجاهل علامات الترقيم |
Ctrl + f أو Page Down | الانتقال صفحة واحدة إلى أسفل |
Ctrl + b أو Page Up | الانتقال صفحة واحدة إلى أعلى |
numberG | الانتقال إلى رقم السطر المحدد (مثال: 10G للانتقال إلى السطر 10) |
G | الانتقال إلى السطر الأخير من الملف |
gg | الانتقال إلى السطر الأول من الملف |
تحرير النص في Vim
أوامر حذف، نسخ، ولصق النص في Vim:
أوامر الحذف
| الأمر | الشرح |
|---|---|
x | حذف الحرف تحت المؤشر |
3x | حذف 3 أحرف بدءاً من المؤشر |
dd | حذف السطر الحالي |
5dd | حذف 5 أسطر بدءاً من السطر الحالي |
dw | حذف من موضع المؤشر إلى بداية الكلمة التالية |
d$ | حذف من موضع المؤشر إلى نهاية السطر |
d0 | حذف من موضع المؤشر إلى بداية السطر |
d^ | حذف من موضع المؤشر إلى أول حرف غير فراغ في السطر |
dG | حذف من السطر الحالي إلى نهاية الملف |
d20G | حذف من السطر الحالي إلى السطر 20 |
أوامر النسخ واللصق
| الأمر | الشرح |
|---|---|
yy | نسخ السطر الحالي |
5yy | نسخ 5 أسطر بدءاً من السطر الحالي |
yw | نسخ من موضع المؤشر إلى بداية الكلمة التالية |
y$ | نسخ من موضع المؤشر إلى نهاية السطر |
y0 | نسخ من موضع المؤشر إلى بداية السطر |
y^ | نسخ من موضع المؤشر إلى أول حرف غير فراغ في السطر |
yG | نسخ من السطر الحالي إلى نهاية الملف |
y20G | نسخ من السطر الحالي إلى السطر 20 |
p | لصق بعد المؤشر |
P | لصق قبل المؤشر |
أوامر Vim المتقدمة
تقنيات وأوامر متقدمة لتحسين سير العمل مع Vim:
| الأمر | الشرح |
|---|---|
J | دمج السطر الحالي مع السطر التالي |
r | استبدال حرف واحد تحت المؤشر |
R | الدخول إلى وضع الاستبدال |
fchar | البحث عن حرف في السطر الحالي (مثال: fa للبحث عن حرف 'a') |
/pattern | البحث عن نمط في الملف (اضغط n للانتقال إلى التطابق التالي) |
?pattern | البحث عن نمط في الاتجاه العكسي |
:%s/old/new/g | استبدال جميع occurrences من 'old' بـ 'new' في كامل الملف |
:set number أو :set nu | عرض أرقام الأسطر |
:set nonumber أو :set nonu | إخفاء أرقام الأسطر |
:set syntax=on | تمديد تمييز الصيغة |
:split file | تقسيم النافذة أفقياً وفتح ملف |
:vsplit file | تقسيم النافذة عمودياً وفتح ملف |
Ctrl + w ثم 箭头 | الانتقال بين النوافذ المقسمة |
:e file | فتح ملف جديد في Vim |
:help command | عرض المساعدة لأمر معين |
أمثلة عملية مع Vim
مثال 1: إنشاء وتحرير ملف جديد
Terminal
vim newfile.txt
i
(اكتب النص الذي تريد إضافته)
ESC
:wq
مثال 2: البحث والاستبدال
Terminal
# داخل Vim
:%s/foo/bar/g
هذا الأمر يستبدل جميع occurrences من "foo" بـ "bar" في كامل الملف.
مثال 3: حذف أسطر متعددة
Terminal
# داخل Vim
:10,20d
هذا الأمر يحذف الأسطر من 10 إلى 20.
$ vim tutorial.txt
(اضغط i للدخول إلى وضع الإدخال)
Hello, this is a Vim tutorial.
Vim is a powerful text editor.
(اضغط ESC للخروج من وضع الإدخال)
:wq
تم حفظ الملف والخروج من Vim
نصائح وإرشادات Vim
تعلم بشكل تدريجي: لا تحاول تعلم كل أوامر Vim مرة واحدة. ابدأ بالأساسيات ثم أضف تدريجياً أوامر جديدة إلى ذخيرتك.
احذر من :q!: الأمر
:q! يخرج من Vim دون حفظ أي تغييرات. تأكد من أنك لا تحتاج إلى حفظ عملك قبل استخدام هذا الأمر.
استخدم أوامر التكرار: العديد من أوامر Vim يمكن تكرارها بكتابة رقم قبل الأمر. مثلاً
5dd يحذف 5 أسطر، و3p يلصق المحتوى 3 مرات.