Linux: محررات النصوص — أساسيات nano وأسس vim

على خادم لينكس، لا توجد واجهة VS Code الرسومية. يمكنك الاعتماد فقط على محررات النصوص الطرفية لتعديل ملفات الإعدادات وكتابة الكود. الأكثر شيوعًا هما nano (بدون منحنى تعلم) وvim (ملك الكفاءة).

📋 المتطلبات المسبقة: يجب إكمال

1. ما ستتعلمه


2. قصة عن تحرير الملفات في الطرفية

(1) الألم: لا يمكن استخدام VS Code بعد تسجيل الدخول عبر SSH

سجّل شياو مينغ الدخول إلى خادم عبر SSH وأراد تعديل ملف إعدادات Nginx، لكن الخادم لم يكن عليه VS Code ولا واجهة رسومية. سمع عن vim لكن لم يكن يعرف كيف يستخدمه — بعد فتحه، لم يستطع حتى معرفة كيف يخرج.

المهندس الأول بوب علّمه تسلسلات المفاتيح الأساسية: i للدخول في وضع الإدراج والبدء بالكتابة، وEsc للعودة للوضع العادي، و:wq للحفظ والخروج.

(2) الطريقة ذات الخطوات الثلاث

قال بوب: "تذكّر هذه الخطوات الثلاث وستتمكن من تعديل أي ملف بـvim."

💡 نصيحة: جوهر vim هو "الطريقة ذات الخطوات الثلاث" — i للدخول في وضع الإدراج والبدء بالتحرير، وEsc للعودة للوضع العادي، و:wq للحفظ والخروج. بهذه الخطوات الثلاث فقط، يمكنك التعامل مع معظم مهام التحرير في vim؛ الباقي يمكنك تعلّمه تدريجيًا.

BASH
vim /etc/nginx/nginx.conf
# 1. اضغط i للدخول في وضع الإدراج — ابدأ التحرير
# 2. بعد التحرير، اضغط Esc للعودة للوضع العادي
# 3. اكتب :wq واضغط Enter — احفظ واخرج

(3) الفائدة: لم يعد يخاف من تعديل ملفات الإعدادات

بعد تعلم أساسيات vim، وجد شياو مينغ أن تعديل إعدادات الخادم سريع فعليًا — افتح الملف، ابحث عن السطر المراد تغييره، اضغط i للتعديل، :wq للحفظ. العملية كلها تستغرق أقل من 30 ثانية.


3. نقاط المعرفة

(1) nano — المحرر بدون عوائق

nano محرر بسيط مثبّت مسبقًا على كل أنظمة لينكس. تلميحات العمليات تُعرض في أسفل الشاشة.

ℹ️ ملاحظة: إذا كنت تعدّل ملف إعدادات عرضيًا فقط، فnano كافٍ بتكلفة تعلم صفرية؛ إذا كنت تحتاج تحرير نصوص بشكل مكثف يوميًا، فvim أكثر كفاءة بكثير. ابدأ بـnano، وانتقل لـvim عندما تشعر أن nano ليس سريعًا بما يكفي.

فتح ملف:

BASH
nano filename
nano /etc/nginx/nginx.conf   # عند الحاجة لـsudo: sudo nano /etc/nginx/nginx.conf

اختصارات شائعة (^ تعني مفتاح Ctrl):

الاختصار الإجراء
Ctrl + O حفظ الملف
Ctrl + X الخروج من nano
Ctrl + W بحث في النص
Ctrl + K قص السطر الحالي
Ctrl + U لصق
Ctrl + G عرض المساعدة
Alt + U تراجع
Alt + E إعادة

(2) الأوضاع الثلاثة لـvim

أكبر ميزة في vim هي أنه مبني على الأوضاع — نفس المفتاح له وظائف مختلفة في أوضاع مختلفة.

TEXT

┌─────────────────────────────┐
│         Normal Mode          │ ← الوضع الافتراضي عند الإطلاق، للتنقل والعمليات
│  Press i / a / o → Insert Mode   │
│  Press v / V → Visual Mode       │
│  Press : → Command-line Mode     │
└──────────────┬──────────────┘
               │
    ┌──────────┴──────────┐
    ↓                     ↓
┌──────────────┐   ┌──────────────┐
│  Insert Mode │   │  Visual Mode │
│              │   │              │
│  Press Esc → │   │  Press Esc → │
│  Back to Normal│   │  Back to Normal│
└──────────────┘   └──────────────┘

(3) تحريك المؤشر في vim (الوضع العادي)

TEXT
h       ← تحريك محرفًا لليسار
j       ↓ تحريك سطرًا للأسفل
k       ↑ تحريك سطرًا للأعلى
l       → تحريك محرفًا لليمين
w       القفز لبداية الكلمة التالية
b       القفز لبداية الكلمة السابقة
0       القفز لبداية السطر
$       القفز لنهاية السطر
gg      القفز لبداية الملف
G       القفز لنهاية الملف
:line_number    القفز لسطر محدد (مثل :42 يقفز للسطر 42)
Ctrl+F  التمرير صفحة للأسفل
Ctrl+B  التمرير صفحة للأعلى
💡 نصيحة: في vim، عدد+أمر يكرر الفعل — 3dd يحذف 3 أسطر، و5yy ينسخ 5 أسطر، و10j يتحرك 10 أسطر للأسفل. هذا مفتاح كفاءة vim: استخدم بادئات العد لتجنب ضغطات المفاتيح المتكررة.

(4) عمليات التحرير في vim (الوضع العادي)

TEXT
i       إدراج قبل المؤشر (دخول وضع الإدراج)
a       إدراج بعد المؤشر
o       فتح سطر جديد بالأسفل والدخول في وضع الإدراج
O       فتح سطر جديد بالأعلى والدخول في وضع الإدراج

x       حذف المحرف تحت المؤشر
dd      حذف السطر الحالي
dw      حذف كلمة
d$      الحذف حتى نهاية السطر
yy      نسخ السطر الحالي (yank)
yw      نسخ كلمة
p       اللصق بعد المؤشر
P       اللصق قبل المؤشر
u       تراجع
Ctrl+R  إعادة

(5) البحث والاستبدال في vim

TEXT
# بحث (الوضع العادي)
/pattern      بحث للأمام عن النمط
?pattern      بحث للخلف عن النمط
n             القفز للتطابق التالي
N             القفز للتطابق السابق

# استبدال (وضع سطر الأوامر)
:%s/old/new/g          استبدال كل "old" بـ"new" في الملف كاملًا
:%s/old/new/gc         استبدال الكل مع تأكيد لكل تطابق
:5,20s/old/new/g       الاستبدال في الأسطر 5-20

(6) ▶ مثال: تعديل ملف بـnano

BASH
# إنشاء وتعديل ملف
nano hello.txt

# في nano:
# 1. اكتب "Hello Linux!"
# 2. Ctrl + O → اضغط Enter للحفظ
# 3. Ctrl + X → اخرج من nano

# عرض محتويات الملف
cat hello.txt

الإخراج:

TEXT
Hello Linux!

(7) ▶ مثال: عمليات vim الأساسية

TEXT
# افتح ملفًا
vim practice.txt

# تسلسل التمرين:
# 1. اضغط i → ادخل وضع الإدراج
# 2. اكتب "This is line 1" → اضغط Enter
# 3. اكتب "This is line 2"
# 4. اضغط Esc → عُد للوضع العادي
# 5. اكتب :wq → اضغط Enter للحفظ والخروج

(8) ▶ مثال: نسخ ولصق في vim

TEXT
# 1. افتح ملفًا بـvim
vim practice.txt

# 2. yy لنسخ السطر الحالي
# 3. p للصق بالأسفل
# 4. اضغط p بشكل متكرر للصق عدة مرات
# 5. 5yy لنسخ 5 أسطر
# 5p للصق 5 مرات

# 6. dd لحذف السطر الحالي
# 7. 3dd لحذف 3 أسطر

(9) ▶ مثال: بحث واستبدال في vim

TEXT
vim config.txt

# ابحث عن nginx
/nginx
n    # التطابق التالي
N    # التطابق السابق

# استبدال كل "port" بـ"PORT"
:%s/port/PORT/g

# استبدال مع تأكيد
:%s/port/PORT/gc
# كل تطابق سيسأل: y تأكيد / n تجاوز / a الكل

(10) ▶ مثال: إعدادات vim (~/.vimrc)

أنشئ ملف إعدادات .vimrc بسيطًا لجعل vim أكثر ملاءمة:

TEXT
cat > ~/.vimrc << 'EOF'
syntax on                          " Syntax highlighting
set number                         " Show line numbers
set tabstop=2                      " Tab width 2
set shiftwidth=2                   " Indent width 2
set expandtab                      " Use spaces instead of tabs
set autoindent                     " Auto indent
set cursorline                     " Highlight current line
set hlsearch                       " Highlight search results
set ignorecase                     " Case-insensitive search
set incsearch                      " Incremental search
EOF

(11) ▶ مثال شامل: تعديل ملف إعدادات Nginx بـvim

BASH
# افتح إعدادات الموقع الافتراضي لـNginx
sudo vim /etc/nginx/sites-available/default

# خطوات العمل:
# 1. /server_name  ابحث عن server_name
# 2. n اقفز للتواجد التالي
# 3. i ادخل وضع الإدراج، عدّل النطاق
# 4. Esc اخرج من وضع الإدراج
# 5. /root  ابحث عن مسار root
# 6. عدّل الدليل الجذر للموقع
# 7. :wq احفظ واخرج
# 8. sudo nginx -t اختبر الإعدادات
# 9. sudo systemctl reload nginx أعد تحميل الإعدادات

❓ أسئلة شائعة

س: كيف أخرج من vim (السؤال الكلاسيكي)؟ ج: بالترتيب: Esc (تأكد من أنك في الوضع العادي) → : (ادخل وضع سطر الأوامر) → q (اخرج) أو q! (اخرج بالقوة بدون حفظ) أو wq (احفظ واخرج).

س: هل أتعلّم nano أم vim؟ ج: ابدأ بـnano (بدون عوائق، تلميحات في الأسفل)، ثم تعلّم vim تدريجيًا. بمجرد أن ترتاح مع vim، يصبح أكثر كفاءة بكثير — لكن لـ"تعديل ملف إعدادات عرضيًا"، nano كافٍ تمامًا.

س: كيف أتراجع في vim؟ ج: اضغط u في الوضع العادي للتراجع، وCtrl + R للإعادة. الضغط المتكرر على u يتراجع عن عدة تغييرات.

س: كيف أعرض أرقام الأسطر في vim؟ ج: اكتب :set number في وضع سطر الأوامر. لعرضها افتراضيًا، أضف set number إلى ~/.vimrc.

س: هل توجد طريقة أفضل لتعديل الملفات عن بُعد؟ ج: إضافة VS Code Remote - SSH تتيح لك تعديل الملفات البعيدة في VS Code المحلي. JetBrains Gateway يوفر وظيفة مشابهة. لكن لن يكون لديك هذه الأدوات دائمًا — تعلّم أساسيات vim يبقى مهارة أساسية.


📖 ملخص


📝 تمارين

  1. أساسي (صعوبة ⭐): استخدم nano لإنشاء وتعديل hello.txt، اكتب ثلاثة أسطر نصية، احفظ واخرج، ثم افتح نفس الملف في vim وتدرّب على تحريك المؤشر (h/j/k/l/w/b/gg/G)
  2. متوسط (صعوبة ⭐⭐): في vim، انسخ السطر الحالي (yy) والصقه (p) 5 مرات، ثم ابحث عن كلمة في الملف واقفز بـn/N، وأخيرًا نفّذ استبدالًا بـ:%s/old/new/g
  3. متقدم (صعوبة ⭐⭐⭐): أنشئ ملف إعدادات ~/.vimrc (تلوين بناء + أرقام أسطر + عرض Tab بـ2 + تلوين البحث)، ثم استخدم vim لتعديل /etc/ssh/sshd_config (يتطلب sudo)، متدرّبًا على عمليات البحث والاستبدال
Web-Tutorial.com

فريق Web-Tutorial التقني

منصة دروس برمجية يديرها عدة مطورين. كل درس يتم كتابته ومراجعته بواسطة مطورين متخصصين في المجال. نعمل على ضمان دقة وموثوقية المحتوى — إذا لاحظت أي مشكلة، فيرجى إخبارنا.

100%