مقدمة عن أوضاع التحرير
يوفر Bash وضعين شائعين للتحرير بناءً على محرري النصوص الشهيرين: Emacs و Vi. يمكنك التبديل بينهما باستخدام الأوامر set -o emacs و set -o vi.
نصيحة: الوضع الافتراضي في معظم توزيعات لينكس هو وضع Emacs. إذا كنت معتاداً على Vi/Vim، فقد تفضل استخدام وضع Vi في Bash.
التبديل بين الأوضاع
لتبديل بين أوضاع التحرير، استخدم الأوامر التالية:
Terminal
# التبديل إلى وضع Emacs (الافتراضي في معظم الأنظمة)
set -o emacs
# التبديل إلى وضع Vi
set -o vi
# عرض الوضع الحالي
echo $SHELLOPTS | grep -o 'emacs\|vi'
ملاحظة: لإجراء التغيير دائمًا، أضف الأمر المناسب إلى ملف
~/.bashrc الخاص بك.
وضع Emacs
وضع Vi
وضع Emacs
وضع Emacs هو الوضع الافتراضي في معظم shells. يعرض اختصارات readline التي تتيح لك تحريك المؤشر، قص/لصق النص وتراجع التعديلات.
Terminal
# التبديل إلى وضع Emacs
set -o emacs
اختصارات لوحة المفاتيح
| الاختصار | التفسير |
|---|---|
| Ctrl + a | تحريك المؤشر إلى بداية السطر |
| Ctrl + e | تحريك المؤشر إلى نهاية السطر |
| Meta + b | تحريك المؤشر للخلف كلمة واحدة |
| Meta + f | تحريك المؤشر للأمام كلمة واحدة |
| Ctrl + w | قص آخر كلمة |
| Ctrl + u | قص كل شيء قبل المؤشر |
| Ctrl + k | قص كل شيء بعد المؤشر |
| Ctrl + y | لصق آخر نص تم قصه |
| Ctrl + _ | تراجع |
| Ctrl + r | بحث عكسي في التاريخ |
| Ctrl + l | مسح الشاشة |
| Ctrl + d | خروج (إذا كان السطر فارغاً) أو حذف حرف |
ملاحظة: Ctrl تعني الضغط على زر Control؛ Meta تعني عادةً زر Alt أو بادئة Esc.
سير عمل شائع: استخدم Ctrl+u لقص السطر الحالي، ثم استرجع المعلومات، ثم استعده باستخدام Ctrl+y.
مثال على سير العمل في وضع Emacs
- اكتب أمراً طويلاً
- أدركت أنك تحتاج إلى تنفيذ أمر آخر أولاً
- اضغط Ctrl+u لحفظ السطر الحالي في الذاكرة
- نفّذ الأمر الآخر الذي تحتاجه
- اضغط Ctrl+y لاستعادة السطر المحفوظ
- تابع العمل أو اضغط Enter لتنفيذ الأمر
وضع Vi
وضع Vi يتيح لك استخدام أوامر تشبه Vi في موجه Bash. عند تعيينه، تبدأ في وضع الإدخال (يمكنك الكتابة بشكل طبيعي). اضغط Esc للتبديل إلى وضع الأوامر.
Terminal
# التبديل إلى وضع Vi
set -o vi
اختصارات لوحة المفاتيح (وضع الأوامر)
| الاختصار | التفسير |
|---|---|
| h | تحريك المؤشر لليسار |
| l | تحريك المؤشر لليمين |
| j | الانتقال للخلف في سجل الأوامر |
| k | الانتقال للأمام في سجل الأوامر |
| 0 (صفر) | الانتقال إلى بداية السطر (يبقى في وضع الأوامر) |
| $ | الانتقال إلى نهاية السطر (يبقى في وضع الأوامر) |
| i | الدخول إلى وضع الإدخال عند المؤشر |
| a | الدخول إلى وضع الإدخال بعد المؤشر |
| A | الانتقال إلى نهاية السطر والدخول إلى وضع الإدخال |
| dd | حذف السطر الحالي (يمكن لصقه) |
| D | حذف من المؤشر إلى نهاية السطر (يمكن لصقه) |
| p | لصق آخر نص تم نسخه/حذفه |
| u | تراجع |
| Ctrl + r | إعادة |
| / | بدء البحث في سجل الأوامر |
| n | التوجه إلى نتيجة البحث التالية |
| N | التوجه إلى نتيجة البحث السابقة |
ملاحظة: في وضع Vi، يكون لديك وضعان: وضع الإدخال (للكتابة العادية) و وضع الأوامر (للتنقل والتحرير). اضغط Esc للتبديل إلى وضع الأوامر، واضغط i أو a للعودة إلى وضع الإدخال.
مثال على سير العمل في وضع Vi
- اكتب جزءاً من أمر
- اضغط Esc للتبديل إلى وضع الأوامر
- استخدم k و j للبحث في سجل الأوامر
- عند العثور على الأمر المطلوب، استخدم i أو a للعودة إلى وضع الإدخال
- عدّل الأمر حسب الحاجة
- اضغط Enter لتنفيذ الأمر
مقارنة بين الوضعين
| الميزة | وضع Emacs | وضع Vi |
|---|---|---|
| الوضع الافتراضي | نعم في معظم التوزيعات | لا |
| منحنى التعلم | أسهل للمبتدئين | أصعب، يتطلب معرفة بأوامر Vi |
| الكفاءة | جيدة للمستخدمين العاديين | ممتازة للمستخدمين المتقدمين |
| وضعية العمل | وضع واحد فقط | وضعان: إدخال وأوامر |
| التخصيص | سهل عبر ~/.inputrc | سهل عبر ~/.inputrc |
| المناسب ل | المستخدمين العاديين، مبتدئي لينكس | مستخدمي Vi/Vim، المطورين المتقدمين |
نصيحة: جرب كلا الوضعين لترى أيهما更适合 لطريقة عملك. إذا كنت معتاداً على Vi/Vim، فمن المحتمل أن تفضل وضع Vi في Bash.
تخصيص أوضاع التحرير
يمكنك تخصيص سلوك أوضاع التحرير عن طريق ملف ~/.inputrc:
Terminal
# جعل وضع Vi الافتراضي
set editing-mode vi
# جعل وضع Emacs الافتراضي (القيمة الافتراضية)
set editing-mode emacs
# إعدادات أخرى لتحسين التجربة
set show-mode-in-prompt on
set vi-cmd-mode-string "\1\e[1;32m\2cmd\1\e[0m\2"
set vi-ins-mode-string "\1\e[1;33m\2ins\1\e[0m\2"
ملاحظة: بعد تعديل ملف
~/.inputrc، تحتاج إلى إعادة تشغيل shell أو تنفيذ bind -f ~/.inputrc لتطبيق التغييرات.