محرر vi
درس 6 من 11
6محرر vi: التفكير بالأوضاع
vi موجود تقريبًا في كل جهاز Linux، حتى الصغير منها. سر إتقانه فكرة واحدة: للمحرر أوضاع مختلفة، وكل وضع يعطي المفاتيح معنى مختلفًا. حين تفهمها يصبح التحرير سريعًا بلا فأرة.
ماذا تشاهد في الرسم: تبدأ في وضع الأوامر، وi تنقلك إلى الإدراج، وEsc تعيدك، و: تفتح سطر الأوامر حيث :wq تحفظ وتخرج.
خارطة هذا الجزء
المفاهيم بالترتيب، اضغط أيًّا منها للقفز إليه:
طريقان إلى نفس الفكرة
vi مثل آلة كاتبة لها وضعان: وضع تكتب فيه الحروف على الورقة، ووضع تتحكّم فيه بالورقة نفسها (تحرّكها، تقصّ سطرًا، تبحث). المبتدئ يرتبك لأنه يكتب وهو في وضع التحكّم. حين تعرف في أي وضع أنت، يصير المحرّر سريعًا وواضحًا.
vi محرّر بأوضاع: وضع الأوامر normal للحركة والتحرير، ووضع الإدراج insert (بـi أو a) للكتابة، وEsc للرجوع، ووضع السطر : للحفظ والخروج :wq أو :q!. الأوامر تُركّب كجملة: فعل مع حركة، فـdw يحذف كلمة وd$ يحذف حتى آخر السطر.
قبل أن تبدأ
🐚التنقل في الشل
تفتح vi من الشل: vi ملف.txt.
✍️فكرة المحرر النصي
مفيد أن تكون جرّبت Emacs لتقارن الفلسفتين.
🧘الصبر في أول ساعة
الأمر يبدو غريبًا في البداية لأن الكتابة لا تعمل فورًا، هذا طبيعي.
الفكرة الجوهرية
1وضع الأوامر (Command mode)
وضع البداية. المفاتيح هنا ليست حروفًا للكتابة بل أوامر: dd تحذف سطرًا، p تلصق. للعودة إليه من أي وضع اضغط Esc.
2وضع الإدراج (Insert mode)
هنا فقط تُكتب الحروف كما في أي محرر. تدخله بـi (قبل المؤشر) أو a (بعده) أو o (سطر جديد تحت).
3وضع السطر (Ex / colon mode)
تكتب : فينزل المؤشر لأسفل الشاشة لتكتب أمرًا كاملًا: :w حفظ، :q خروج، :wq الاثنان، :q! خروج بلا حفظ.
4الأوامر لغة: فعل + حركة
d (احذف) + w (كلمة) = dw. d + $ = احذف حتى نهاية السطر. بعد أن تتعلم بعض الأفعال والحركات تتضاعف قدرتك بالتركيب.
شكل 1، الأوضاع الثلاثة: ترجع دائمًا إلى وضع الأوامر بـEsc ومنه تنطلق إلى غيره.
i أولًا، وإذا اضطربت اضغط Esc مرتين ثم u للتراجع.
كيف يعمل: جدول الأوامر ودورة التحرير
| المهمة | المفاتيح (وضع الأوامر) |
|---|---|
| تحريك المؤشر | h j k l (يسار، أسفل، أعلى، يمين) أو الأسهم |
| بداية / نهاية السطر | 0 / $ |
| بداية / نهاية الملف | gg / G |
| إدراج | i a o O |
| حذف حرف / سطر | x / dd |
| نسخ سطر ولصقه | yy ثم p |
| تراجع / إعادة | u / CTRL-R |
| بحث للأمام / للخلف | /text / ?text، ثم n و N للتنقل بين النتائج |
| حفظ وخروج | :wq أو ZZ |
| خروج بلا حفظ | :q! |
vi ملف.txt، أنت في وضع الأوامر./ للبحث أو G للنهاية).i واكتب، ثم Esc.dd و yy و p.:wq.مثال محلول: مهام تحرير شائعة
| تريد أن… | اضغط | لماذا يعمل |
|---|---|---|
| تضيف سطرًا في نهاية الملف | G o … Esc | G للنهاية و o تفتح سطرًا جديدًا وتدخل الإدراج |
| تكرر سطرًا | yy p | نسخ ثم لصق تحت السطر الحالي |
| تحذف 3 أسطر | 3dd | الرقم يكرر الأمر |
| تجد كلمة | /error Enter n | بحث ثم القفز للنتيجة التالية |
| أخطأت! | u | تراجع خطوة |
Esc بعادة قبل أي أمر مهم؛ لا ضرر منها لو كنت أصلًا في وضع الأوامر، وتنقذك لو لم تكن.
خرافة مقابل حقيقة
| الخرافة | الحقيقة |
|---|---|
| vi قديم ولا فائدة منه اليوم. | هو المحرر الموجود في أي خادم تدخله، وغالبًا الوحيد المتاح في حالات الطوارئ. |
| وضع الأوامر عائق. | هو ميزة: حركاتك وحذفك تتم من لوحة المفاتيح بلا فأرة، ويمكن تركيبها وتكرارها بالأرقام. |
| vi و vim نفس الشيء تمامًا. | vim نسخة محسّنة متوافقة مع vi، وكثير من الأنظمة تجعل vi يشغّل vim أو نسخة مصغّرة منه. |
أين تُستخدم هذه الفكرة فعليًا؟
🚑الإصلاح العاجل
تعديل ملف إعدادات على خادم بعيد عبر SSH.
🔁رسائل Git
كثيرًا ما يفتح Git محررًا لرسالة الإيداع، وغالبًا vi.
⚡التحرير السريع
المحترفون يحبون تركيب الحركات لتحرير الشيفرة بلا فأرة.
🕰️تاريخ
كتبه Bill Joy في أواخر السبعينيات، وصار معيارًا في عائلة Unix.
جرّب بنفسك
فتحت ملفًا في vi وبدأت بالكتابة فتغيّرت أشياء غريبة. ما السبب؟
vi يبدأ في وضع الأوامر. اضغط i لدخول وضع الإدراج، وEsc للعودة، وu للتراجع.
ما الأمر الذي يحفظ ويخرج؟
:w تحفظ و:q تخرج، و:wq تجمعهما. أما :q! فتخرج متجاهلة التغييرات.
ماذا يفعل 3dd في وضع الأوامر؟
الرقم يكرر الأمر: dd تحذف سطرًا، فـ3dd تحذف ثلاثة.
بطاقات مراجعة سريعة
Esc.i قبل المؤشر، a بعده، o سطر جديد.:wq أو ZZ.:q!dd و p؟dd يحذف السطر (ويحتفظ به)، p يلصقه.u للتراجع، CTRL-R للإعادة.تحقق من فهمك
فتحت vi وكتبت فظهرت أشياء غريبة؛ لماذا؟
كنت في وضع الأوامر فتحولت الحروف إلى أوامر. اضغط Esc و u للتراجع ثم i قبل الكتابة.
ما الفرق بين :q و :q! و :wq؟
:q يخرج إن لم تكن هناك تعديلات، :q! يخرج ويتجاهل التعديلات، :wq يحفظ ثم يخرج.
كيف تنقل سطرًا من مكان لآخر؟
dd على السطر، تحرك للمكان الجديد، ثم p.
مصادر هذا الدرس
مرتّبة بالنوع. ابدأ بالتوثيق الرسمي إذا تبي المرجع الدقيق، وبالمقال أو الفيديو إذا تبي الشرح أولًا.
خلّصت الدرس؟
سجّل الدخول ليُحفظ تقدّمك.