المدوّنة · الخوادم ولينكس

محررات النصوص في لينكس: دليل شامل لـ nano و vim للمبتدئين والمحترفين

· 8 دقائق قراءة

محررات النصوص في لينكس: دليل شامل لـ nano و vim للمبتدئين والمحترفين

إدارة خوادم لينكس لا تعتمد على واجهات بصرية أو برامج تحرير مرئية مثل Notepad++ أو VS Code عبر اتصال عن بعد، بل تتطلب العمل مباشرة داخل الطرفية (Terminal) عبر جلسات SSH. عند تعديل ملف تكوين خادم الويب (مثل Nginx أو Apache)، أو تحديث إعدادات قواعد البيانات، أو تعديل مفاتيح SSH، فإن محرر النصوص في سطر الأوامر هو أداتك الأساسية والوحيدة في أغلب الأوقات.

في بيئات لينكس الحديثة، يبرز محرران أساسيان يعتمد عليهما كل مهندس أنظمة ومدير خوادم: محرر GNU nano البسيط والمباشر، ومحرر Vim (المتطور عن المحرر التاريخي vi) فائق القوة والسرعة.

القسم الأول: محرر GNU nano — البساطة والسرعة للمبتدئين#

يتميز محرر nano بأنه لا يتطلب تعلماً مسبقاً لمفاهيم الأوضاع (Modes). بمجرد فتح الملف، يمكنك البدء في الكتابة مباشرة كما تفعل في أي محرر نصوص تقليدي، مع وجود شريط إرشادي دائم في أسفل الشاشة يعرض أهم الاختصارات المتاحة.

1. فتح الملفات وإنشاؤها#

لفتح ملف موجود أو إنشاء ملف جديد فارغ، اكتب الأمر متبوعاً بمسار الملف:

nano /etc/nginx/nginx.conf

إذا كنت بحاجة إلى التعديل على ملف يتطلب صلاحيات الجذر (root)، يجب استخدام sudo:

sudo nano /etc/hosts

كما يمكنك فتح الملف مباشرة عند سطر معين، وهي ميزة شديدة الفائدة عند تتبع أخطاء التكوين التي يحدد فيها السجل (Log) رقم السطر المسبب للمشكلة:

sudo nano +45 /etc/nginx/sites-available/default

2. فهم شريط الاختصارات في nano#

يعرض شريط nano السفلي رموزاً قد تبدو غامضة للمستخدم الجديد:

  • رمز القبعة ^ يمثل زر التحكم Ctrl. على سبيل المثال، ^O تعني الضغط على Ctrl + O معاً.
  • رمز الحرف M- (الذي يظهر في بعض الميزات المتقدمة) يمثل زر Alt (أو Esc في لوحات المفاتيح القديمة). مثلاً M-U تعني Alt + U للتراجع.

3. العمليات الأساسية في nano#

العملية الاختصار الوظيفة والشرح
حفظ التعديلات (WriteOut) Ctrl + O يقوم بكتابة التعديلات إلى القرص، ويطلب منك تأكيد اسم الملف بالضغط على Enter.
الخروج من المحرر (Exit) Ctrl + X إغلاق الملف. إن كانت هناك تعديلات غير محفوظة، سيسألك: (Y) للحفظ أو (N) للإلغاء.
البحث عن نص (Where Is) Ctrl + W يفتح شريط بحث لكتابة الكلمة والضغط على Enter. للانتقال إلى النتيجة التالية اضغط Alt + W.
البحث والاستبدال (Replace) Ctrl + \ يسألك عن الكلمة المراد استبدالها ثم الكلمة البديلة، ويخيرك بين استبدالها واحدة تلو الأخرى أو الكل دفعة واحدة.
قص السطر الحالي (Cut) Ctrl + K يحذف السطر الذي يقف عليه المؤشر ويحفظه في حافظة nano المؤقتة.
لصق السطر المقصوص (Uncut) Ctrl + U يلصق المحتوى الموجود في الحافظة عند موقع المؤشر الحالي.
إظهار موقع المؤشر ورقم السطر Ctrl + C يعرض رقم السطر والعمود الحالي وحجم الملف في السطر السفلي.
إظهار أرقام الأسطر دائماً Alt + N يقوم بتبديل عرض أرقام الأسطر على يسار الشاشة لتسهيل مراجعة الأكواد البرمجية.

4. تحسين تجربة nano عبر ملف الإعدادات nanorc#

يمكنك تفعيل أرقام الأسطر وتلوين الصيغ البرمجية تلقائياً لكل جلسات nano عبر تعديل ملف التكوين الشخصي ~/.nanorc:

cat << 'EOF' > ~/.nanorc
set linenumbers
set tabsize 4
set autoindent
set constantshow
include "/usr/share/nano/*.nanorc"
EOF
مخطط أوضاع محرر Vim الأربعة وطرق التبديل بينها
أوضاع Vim الأربعة: الانتقال بين الوضع العادي، وضع الإدخال، الوضع المرئي، ووضع الأوامر

القسم الثاني: محرر Vim — العملاق متعدد الأوضاع (Modal Editor)#

محرر Vim ليس مجرد أداة لتسجيل الحروف، بل هو لغة تحرير متكاملة مبنية على مفهوم الأوضاع (Modes). في Vim، لا تقوم مفاتيح لوحة المفاتيح بكتابة الحروف بشكل افتراضي، بل تعمل كأوامر تنقل وتحرير فائقة السرعة.

1. فهم أوضاع Vim الأساسية#

  • الوضع العادي (Normal Mode): هو الوضع الافتراضي عند فتح أي ملف. في هذا الوضع، الحروف عبارة عن أوامر للحذف، والنسخ، والبحث، والتحرك داخل النص. للرجوع لهذا الوضع من أي وضع آخر، اضغط دائماً على زر Esc.
  • وضع الإدخال (Insert Mode): الوضع الذي تكتب فيه النصوص كأي محرر تقليدي. تدخل إليه بالضغط على مفتاح i من الوضع العادي.
  • الوضع المرئي (Visual Mode): يستخدم لتحديد النصوص (سواء أسطر كاملة أو مربعات نصية). تدخل إليه بالضغط على مفتاح v (تحديد أحرف) أو V (تحديد أسطر كاملة).
  • وضع الأوامر (Command-Line Mode): لتنفيذ عمليات الحفظ، والخروج، والاستبدال المتقدم. تدخل إليه بالضغط على النقطتين الرأسيتين : وأنت في الوضع العادي.

2. السؤال الأشهر: كيف تخرج من Vim بأمان؟#

يواجه معظم المبتدئين في لينكس مأزق الوقوع داخل Vim دون معرفة كيفية الخروج. إليك القواعد الحاسمة:

  1. اضغط مفتاح Esc مرة أو مرتين للتأكد من أنك في الوضع العادي (Normal Mode).
  2. اكتب النقطتين الرأسيتين : ليظهر المؤشر أسفل الشاشة.
  3. نفذ أحد الأوامر التالية متبوعاً بـ Enter:
    • :q! — الخروج الإجباري الفوري مع تجاهل وإلغاء أي تعديلات أجريتها.
    • :wq — حفظ التعديلات ثم الخروج (أو اختصاراً بالأمر :x).
    • :w — حفظ الملف فقط دون إغلاقه.
    • :q — الخروج من الملف إذا لم تقم بإجراء أي تعديلات عليه.

نصيحة للمحترفين: يمكنك أيضاً في الوضع العادي الضغط على Shift + Z + Z (أي كتابة ZZ بحروف كبيرة) للحفظ والخروج مباشرة بلمسة واحدة دون كتابة النقطتين.

3. التنقل الفعال في Vim دون استخدام الفأرة أو الأسهم#

صُمم Vim لتبقي أصابعك دائماً على الصف الرئيسي للوحة المفاتيح (Home Row):

  • h: تحريك المؤشر خانة واحدة لليسار.
  • j: تحريك المؤشر سطراً واحداً للأسفل.
  • k: تحريك المؤشر سطراً واحداً للأعلى.
  • l: تحريك المؤشر خانة واحدة لليمين.
  • w: القفز للأمام إلى بداية الكلمة التالية.
  • b: القفز للخلف إلى بداية الكلمة السابقة.
  • 0 (صفر): الانتقال فوراً إلى بداية السطر الحالي.
  • $: الانتقال فوراً إلى نهاية السطر الحالي.
  • gg: الانتقال الفوري إلى السطر الأول في الملف.
  • G: الانتقال الفوري إلى آخر سطر في الملف.
  • :45 متبوعاً بـ Enter: الانتقال مباشرة إلى السطر رقم 45.

4. أوامر التحرير السريع في الوضع العادي#

الأمر ما يقوم به
i دخول وضع الإدخال (Insert) قبل موضع المؤشر الحالي.
a دخول وضع الإدخال بعد موضع المؤشر (Append).
o فتح سطر جديد أسفل السطر الحالي والدخول في وضع الإدخال مباشرة.
O فتح سطر جديد أعلى السطر الحالي والدخول في وضع الإدخال مباشرة.
x حذف الحرف الذي يقف عليه المؤشر حالياً.
dd قص وحذف السطر الحالي بالكامل.
5dd حذف 5 أسطر متتالية بدءاً من السطر الحالي.
yy نسخ (Yank) السطر الحالي بالكامل إلى الحافظة.
p لصق (Paste) المحتوى المنسوخ أسفل السطر الحالي.
u تراجع عن آخر تعديل (Undo).
Ctrl + r إعادة التعديل الذي تراجعت عنه (Redo).

5. البحث والاستبدال المتقدم في Vim#

للبحث عن كلمة داخل الملف في الوضع العادي:

/كلمة_البحث

اضغط n للانتقال إلى النتيجة التالية في اتجاه الأسفل، أو N للانتقال إلى النتيجة السابقة في اتجاه الأعلى.

لاستبدال النصوص في كامل الملف:

:%s/النص_القديم/النص_الجديد/g

إذا أردت من Vim طلب التأكيد قبل كل استبدال لتجنب الأخطاء غير المقصودة، أضف حرف c في نهاية الأمر:

:%s/النص_القديم/النص_الجديد/gc

مقارنة مباشرة: متى تستخدم nano ومتى تختار Vim؟#

وجه المقارنة GNU nano Vim / vi
منحنى التعلم سهل وفوري، مناسب للجميع منذ الدقيقة الأولى. يتطلب وقتاً وممارسة لفهم الأوضاع والاختصارات.
سرعة تحرير الملفات الصغيرة ممتاز وسريع جداً للمهام البسيطة والطارئة. سريع جداً بمجرد حفظ الأوامر دون لمس الفأرة.
التعامل مع الملفات الضخمة قد يعاني من بطء في استهلاك الذاكرة مع الملفات الكبيرة جداً. خفيف جداً ومصمم لمعالجة ملفات السجلات ذات مئات آلاف الأسطر بسلاسة.
التوفر الافتراضي مثبت افتراضياً في Ubuntu وDebian، لكن قد لا يتوفر في خوادم Alpine أو الأنظمة المدمجة. vi موجود في كل توزيعة لينكس ويونكس تقريباً، لأن معيار POSIX يشترطه.
القدرات المتقدمة والتطوير محدود، مناسب لتعديل الإعدادات البسيطة. قابل للتوسيع بإضافات متطورة تجعله بيئة تطوير متكاملة (IDE).

حلول مشاكل شائعة تواجهك أثناء التحرير#

1. رسالة الخطأ: «Permission denied» عند محاولة الحفظ#

تحدث هذه المشكلة عندما تفتح ملفاً مملوكاً للمستخدم root (مثل /etc/fstab أو ملفات تكوين Nginx) دون كتابة sudo. إذا قمت بإجراء تعديلات طويلة ولا تريد خسارتها والخروج للبدء من جديد، يمكنك في محرر Vim الحفظ مباشرة باستخدام صلاحيات sudo من داخل المحرر عبر تنفيذ الأمر السحري التالي:

:w !sudo tee %

سيطلب منك النظام إدخال كلمة مرور sudo، وسيتم حقن التعديلات في الملف بنجاح، ثم يمكنك الخروج عبر :q! دون قلق.

في محرر nano، لا تتوفر هذه الحيلة بشكل مباشر. لحفظ التعديلات، اضغط Ctrl + O ثم غيّر اسم الملف ليتم حفظه كنسخة مؤقتة في مسار مسموح به لك مثل /tmp/temp_config، ثم اخرج وانقل الملف بصلاحية sudo: sudo mv /tmp/temp_config /etc/target_file.

2. رسالة تحذير ملف التبادل «Found a swap file by the name .swp» في Vim#

تظهر هذه الرسالة عند فتح ملف أُغلق بشكل غير طبيعي (مثل انقطاع اتصال SSH المفاجئ)، أو عندما يكون هناك مستخدم آخر يعدل الملف في نفس اللحظة:

  • إذا كان هناك اتصال SSH آخر مفتوح، لا تتابع حتى تتأكد من إغلاقه.
  • إذا كان التعديل بسبب انقطاع الاتصال وتريد استرجاع آخر تعديلاتك التي لم تُحفظ، افتح الملف مع خيار الاسترجاع:
    vim -r /path/to/file
    ثم احفظ الملف. بعد الحفظ والتأكد، احذف ملف التبادل المخفي الذي ينتهي بامتداد .swp لتتخلص من ظهور الرسالة مجدداً:
    rm /path/to/.file.swp

تخصيص ملف Vim الشخصي .vimrc#

لتحويل تجربة العمل في Vim إلى بيئة مريحة وذكية، أنشئ ملف الإعدادات التالي في مجلد المستخدم الرئيسي:

cat << 'EOF' > ~/.vimrc
syntax on
set number
set relativenumber
set tabstop=4
set shiftwidth=4
set expandtab
set autoindent
set hlsearch
set incsearch
set ignorecase
set smartcase
set cursorline
EOF

المصادر#

التعليقات

كن أول من يشارك رأيه أو تجربته.

أضف تعليقاً أو سؤالاً

سجّل الدخول لتعجب بالتعليقات المفيدة وترفعها لأعلى النقاش. سجّل الدخول

لا يُنشر، ولا نرسل إليه شيئاً.

يظهر التعليق بعد مراجعته. الروابط لا تُفعَّل.

تبني موقعاً عربياً؟

سكربتات وقوالب وإضافات وخوادم — مصمّمة للمواقع العربية.

تصفّح المنتجات