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

الطريقة السريعة للخروج من Vim
إذا كنت تريد الحل المباشر، فاتبع الخطوات التالية:
- اضغط على
ESCمرة واحدة، وأحياناً مرتين للتأكد من أنك خرجت من وضع التحرير. - تأكد من أن لوحة المفاتيح تعمل باللغة الإنجليزية.
- اختر الأمر المناسب حسب حالتك:
- إذا لم تُجرِ أي تعديل، اكتب
:qثم اضغطEnter. - إذا أجريت تعديلات وتريد حفظها ثم الخروج، اكتب
:wqثم اضغطEnter. - إذا أجريت تعديلات وتريد تجاهلها والخروج، اكتب
:q!ثم اضغطEnter.
هذه الأوامر تكفي في أغلب الحالات، لكن فهم طريقة عمل Vim سيجعل التعامل معه أسهل بكثير.
ما أوضاع العمل في Vim؟
يعتمد Vim على مجموعة من الأوضاع. ورغم وجود أوضاع عديدة، فإنك لا تحتاج في البداية إلا إلى فهم ثلاثة أوضاع رئيسية:
Normal ModeInsert ModeCommand-line Mode
وإذا أردت الرجوع إلى التوثيق الداخلي، يمكنك داخل Vim تنفيذ الأمر :h vim-modes بعد الضغط على ESC.
ما هو Normal Mode؟
يُعد Normal Mode الوضع الأساسي في Vim. عند فتح ملف، يبدأ المحرر عادة في هذا الوضع. ومن خلاله تستطيع تنفيذ الأوامر والتنقل داخل الملف والوصول إلى التوثيق.
على سبيل المثال، إذا أردت فتح المساعدة الخاصة بالأوضاع، يمكنك كتابة :h vim-modes، لكن قبل ذلك يجب أن تكون في Normal Mode.
أسهل طريقة للعودة إلى هذا الوضع هي الضغط على ESC. وحتى إذا كنت موجوداً فيه بالفعل، فلن يسبب الضغط على ESC أي مشكلة.
للاطلاع على التوثيق، استخدم:
:h Normal:h mode-switching
ما هو Insert Mode؟
هذا هو وضع الكتابة والتحرير الفعلي. عندما تريد تعديل محتوى الملف الحالي، يجب الانتقال إلى Insert Mode.
الطريقة الأشهر للدخول إليه هي الضغط على i من داخل Normal Mode بعد وضع المؤشر في المكان المناسب. وهناك طرق أخرى شائعة أيضاً مثل:
iaIAoO
في مصطلحات Vim، يُشار إلى الملف المفتوح غالباً باسم buffer.
للتوثيق:
:h Insert:h i_<Esc>:h o:h O:h a:h A:h I
ما هو Command-line Mode؟
يُستخدم Command-line Mode لتنفيذ أوامر Ex، وهو عادة وضع مؤقت قصير المدة. يمكنك الدخول إليه بكتابة : أثناء وجودك في Normal Mode.
فعلى سبيل المثال، عند كتابة :q أو :wq فأنت تستخدم هذا الوضع. وإذا أردت العودة إلى Normal Mode، اضغط على ESC.
ومن الجوانب التاريخية المفيدة أن اسم Vim هو اختصار لعبارة Vi Improved، وهو تطوير للمحرر vi الذي بُني بدوره على محرر سطري اسمه ex.
للتوثيق:
:h Command-line:h cmdline-lines
شرح أوامر الخروج من Vim

إذا فتحت التوثيق الخاص بالأمر :h quit، فستلاحظ أن الأمر يبدأ بعلامة :، وهذا يعني أنه يُنفّذ من خلال Command-line Mode.
للخروج، اتبع هذا التسلسل:
- اضغط
ESCللتأكد من أنك فيNormal Mode. - اكتب
:للدخول إلىCommand-line Mode. - اكتب
quitثم اضغطEnter.
لكن غالباً ستستخدم الصيغة المختصرة :q بدلاً من :quit.
الأمر :q
يُستخدم الأمر :q للخروج من Vim عندما لا تكون هناك تعديلات غير محفوظة. إذا حاولت استخدامه بعد تعديل الملف، فقد يرفض Vim الإغلاق حتى لا تفقد عملك.
الأمر :wq
إذا أجريت تعديلات وتريد حفظها ثم الخروج، فاستخدم :wq. هذا الأمر يعني write and quit، أي احفظ ثم أغلق.
يمكنك الرجوع إلى التوثيق عبر :h :wq.
الأمر :x
الأمر :x قريب جداً من :wq، لكنه يحفظ الملف فقط إذا كانت هناك تغييرات فعلية. أما :wq فيكتب الملف حتى لو لم تُجرِ أي تعديل.
هذا الفرق قد يبدو بسيطاً، لكنه يؤثر على وقت التعديل الخاص بالملف modification time. لذلك يفضّل بعض المستخدمين :x عندما يريدون سلوكاً أكثر دقة.
الأمر :q!
إذا كنت تريد الخروج دون حفظ أي تغيير، فاستخدم :q!. علامة ! تُعرف غالباً باسم bang، وهي هنا تعني تنفيذ الإغلاق بالقوة.
تنبيه: استخدام :q! سيؤدي إلى فقدان كل التعديلات غير المحفوظة، وغالباً لن تتمكن من استعادتها بسهولة.
بدائل الخروج دون الدخول إلى Command-line Mode
إذا كنت لا تريد كتابة أوامر تبدأ بـ :، يمكنك في Normal Mode استخدام:
ZZ: يعادل تقريباً:x، أي الحفظ عند وجود تعديل ثم الخروج.ZQ: يعادل:q!، أي الخروج دون حفظ.
الفرق هنا أن ZZ وZQ يُعتبران أوامر ضمن Normal Mode، بينما :x و:q! من أوامر Ex.
ماذا تفعل إذا فشل الأمر :wq؟
في بعض الحالات قد يفشل الأمر :wq، ومن أشهر الأسباب:
- الملف للقراءة فقط
read-only. - اسم الملف غير محدد.
- ليس لديك صلاحية كتابة داخل المجلد الحالي.
من المهم أن تعرف أن Vim قد يسمح لك بفتح ملف وتعديله حتى لو لم تكن تملك صلاحية حفظه في نفس المسار.
حفظ الملف في مكان آخر
إذا لم تستطع الحفظ في المجلد الحالي، يمكنك حفظ نسخة بديلة في مسار تملك صلاحية الكتابة فيه، مثل المجلد المنزلي ~ أو المجلد المؤقت /tmp.
مثال:
:w ~/my-backup-file
بعد ذلك يمكنك نقل الملف باستخدام أمر mv من الطرفية إلى الوجهة المناسبة.
الحفظ باستخدام صلاحيات أعلى من داخل Vim
هناك حل عملي مشهور يتيح لك حفظ الملف بصلاحيات sudo دون مغادرة المحرر:
:w !sudo tee %
شرح سريع للعناصر المستخدمة:
:!يرسل الأمر إلى بيئة الصدفةshell.sudoينفذ الأمر بصلاحيات مرتفعة.teeيقرأ منstdinويكتب إلىstdoutوإلى الملف المحدد.%يشير إلى اسم الملف الحالي.
بمعنى آخر، يتم تمرير محتوى الملف المعدّل من Vim إلى أمر خارجي ثم كتابته فوق الملف نفسه بصلاحيات مناسبة.

قد تظهر لك بعد ذلك رسالة تحذير تفيد بأن محتوى الملف تغيّر من خارج Vim. هذا طبيعي، لأن الحفظ تم عبر أمر خارجي في بيئة shell. في هذه الحالة يكفي الضغط على Enter للمتابعة.
وإذا لم ترغب في ظهور المخرجات على الشاشة، يمكنك استخدام:
:w !sudo tee % >/dev/null
ماذا لو علِقت داخل Vim واضطررت إلى الإغلاق القسري؟

إذا حاولت الخروج باستخدام Ctrl + C، فقد لا يغلق Vim بالطريقة التي تتوقعها. وفي بعض الحالات يلجأ المستخدم إلى إغلاق التطبيق قسرياً عبر النظام.
عند فتح الملف نفسه مرة أخرى، قد تظهر لك رسالة تتعلق بوجود ملف مؤقت من نوع .swp.

هذا السلوك ليس خطأً بقدر ما هو آلية حماية. إذ يحاول Vim مساعدتك على استعادة التغييرات التي ربما فُقدت.
إذا تحققت من المجلد، ستجد ملفاً بامتداد .swp، وهو ما يُعرف باسم swap file.

عند ظهور شاشة الاستعادة، يمكنك الضغط على R لاسترجاع المحتوى.

بعد الضغط على Enter ستلاحظ غالباً عودة التعديلات السابقة. وبعد الانتهاء من الاستعادة، يمكنك حذف ملف .swp حتى لا تظهر الرسالة مرة أخرى.
نصائح عملية لتجنب مشكلة الخروج من Vim
- احرص دائماً على الضغط على
ESCأولاً إذا لم تكن متأكداً من الوضع الحالي. - احفظ أكثر الأوامر استخداماً:
:qو:wqو:q!. - إذا كان الملف حساساً، تجنّب استخدام
:q!قبل التأكد من أنك لا تحتاج التعديلات. - عند العمل على ملفات نظام، افتح المحرر من البداية باستخدام صلاحيات مناسبة إن لزم الأمر.
- استخدم التوثيق الداخلي في
Vimلأنه غني جداً، مثل:h quitو:h :wq.
الخلاصة التقنية
فهم الخروج من Vim لا يتعلق بحفظ أمر واحد فقط، بل بفهم منطق الأوضاع داخل المحرر. متى ما أدركت الفرق بين Normal Mode وInsert Mode وCommand-line Mode، ستصبح أوامر مثل :q و:wq و:q! واضحة وبديهية. ومن الناحية العملية، أفضل نقطة انطلاق للمستخدم الجديد هي حفظ ثلاث خطوات أساسية: العودة إلى Normal Mode عبر ESC، ثم اختيار أمر الخروج المناسب، ثم مراجعة رسائل Vim بدلاً من تجاهلها، لأنها غالباً تخبرك بالحل مباشرة.