Linux: محررات النصوص — أساسيات nano وأسس vim
على خادم لينكس، لا توجد واجهة VS Code الرسومية. يمكنك الاعتماد فقط على محررات النصوص الطرفية لتعديل ملفات الإعدادات وكتابة الكود. الأكثر شيوعًا هما nano (بدون منحنى تعلم) وvim (ملك الكفاءة).
📋 المتطلبات المسبقة: يجب إكمال
- الدرس 3: أساسيات الطرفية
1. ما ستتعلمه
- الاستخدام الأساسي لـnano
- الأوضاع الثلاثة لـvim
- تحريك المؤشر والتحرير في vim
- البحث والاستبدال في vim
- اختيار المحرر المناسب لك
2. قصة عن تحرير الملفات في الطرفية
(1) الألم: لا يمكن استخدام VS Code بعد تسجيل الدخول عبر SSH
سجّل شياو مينغ الدخول إلى خادم عبر SSH وأراد تعديل ملف إعدادات Nginx، لكن الخادم لم يكن عليه VS Code ولا واجهة رسومية. سمع عن vim لكن لم يكن يعرف كيف يستخدمه — بعد فتحه، لم يستطع حتى معرفة كيف يخرج.
المهندس الأول بوب علّمه تسلسلات المفاتيح الأساسية: i للدخول في وضع الإدراج والبدء بالكتابة، وEsc للعودة للوضع العادي، و:wq للحفظ والخروج.
(2) الطريقة ذات الخطوات الثلاث
قال بوب: "تذكّر هذه الخطوات الثلاث وستتمكن من تعديل أي ملف بـvim."
i للدخول في وضع الإدراج والبدء بالتحرير، وEsc للعودة للوضع العادي، و:wq للحفظ والخروج. بهذه الخطوات الثلاث فقط، يمكنك التعامل مع معظم مهام التحرير في vim؛ الباقي يمكنك تعلّمه تدريجيًا.
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 ليس سريعًا بما يكفي.
فتح ملف:
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 هي أنه مبني على الأوضاع — نفس المفتاح له وظائف مختلفة في أوضاع مختلفة.
┌─────────────────────────────┐
│ 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 (الوضع العادي)
h ← تحريك محرفًا لليسار
j ↓ تحريك سطرًا للأسفل
k ↑ تحريك سطرًا للأعلى
l → تحريك محرفًا لليمين
w القفز لبداية الكلمة التالية
b القفز لبداية الكلمة السابقة
0 القفز لبداية السطر
$ القفز لنهاية السطر
gg القفز لبداية الملف
G القفز لنهاية الملف
:line_number القفز لسطر محدد (مثل :42 يقفز للسطر 42)
Ctrl+F التمرير صفحة للأسفل
Ctrl+B التمرير صفحة للأعلى
3dd يحذف 3 أسطر، و5yy ينسخ 5 أسطر، و10j يتحرك 10 أسطر للأسفل. هذا مفتاح كفاءة vim: استخدم بادئات العد لتجنب ضغطات المفاتيح المتكررة.
(4) عمليات التحرير في vim (الوضع العادي)
i إدراج قبل المؤشر (دخول وضع الإدراج)
a إدراج بعد المؤشر
o فتح سطر جديد بالأسفل والدخول في وضع الإدراج
O فتح سطر جديد بالأعلى والدخول في وضع الإدراج
x حذف المحرف تحت المؤشر
dd حذف السطر الحالي
dw حذف كلمة
d$ الحذف حتى نهاية السطر
yy نسخ السطر الحالي (yank)
yw نسخ كلمة
p اللصق بعد المؤشر
P اللصق قبل المؤشر
u تراجع
Ctrl+R إعادة
(5) البحث والاستبدال في vim
# بحث (الوضع العادي)
/pattern بحث للأمام عن النمط
?pattern بحث للخلف عن النمط
n القفز للتطابق التالي
N القفز للتطابق السابق
# استبدال (وضع سطر الأوامر)
:%s/old/new/g استبدال كل "old" بـ"new" في الملف كاملًا
:%s/old/new/gc استبدال الكل مع تأكيد لكل تطابق
:5,20s/old/new/g الاستبدال في الأسطر 5-20
(6) ▶ مثال: تعديل ملف بـnano
# إنشاء وتعديل ملف
nano hello.txt
# في nano:
# 1. اكتب "Hello Linux!"
# 2. Ctrl + O → اضغط Enter للحفظ
# 3. Ctrl + X → اخرج من nano
# عرض محتويات الملف
cat hello.txt
الإخراج:
TEXTHello Linux!
(7) ▶ مثال: عمليات vim الأساسية
# افتح ملفًا
vim practice.txt
# تسلسل التمرين:
# 1. اضغط i → ادخل وضع الإدراج
# 2. اكتب "This is line 1" → اضغط Enter
# 3. اكتب "This is line 2"
# 4. اضغط Esc → عُد للوضع العادي
# 5. اكتب :wq → اضغط Enter للحفظ والخروج
(8) ▶ مثال: نسخ ولصق في vim
# 1. افتح ملفًا بـvim
vim practice.txt
# 2. yy لنسخ السطر الحالي
# 3. p للصق بالأسفل
# 4. اضغط p بشكل متكرر للصق عدة مرات
# 5. 5yy لنسخ 5 أسطر
# 5p للصق 5 مرات
# 6. dd لحذف السطر الحالي
# 7. 3dd لحذف 3 أسطر
(9) ▶ مثال: بحث واستبدال في vim
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 أكثر ملاءمة:
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
# افتح إعدادات الموقع الافتراضي لـ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 يبقى مهارة أساسية.
📖 ملخص
- nano: الأبسط، مع تلميحات اختصارات في الأسفل، رائع للمبتدئين والتعديل العرضي
- vim: ثلاثة أوضاع — عادي (تنقل/عمليات) / إدراج (تحرير) / سطر أوامر (حفظ/خروج/بحث)
- الخطوات الأساسية لـvim:
iإدراج →Escخروج →:wqحفظ وخروج - البحث:
/pattern+nالتالي /Nالسابق - الاستبدال:
:%s/old/new/gللاستبدال الشامل - أنشئ
~/.vimrcلجعل vim أكثر ودًا (أرقام أسطر/تلوين بناء/تلوين بحث)
📝 تمارين
- أساسي (صعوبة ⭐): استخدم nano لإنشاء وتعديل
hello.txt، اكتب ثلاثة أسطر نصية، احفظ واخرج، ثم افتح نفس الملف في vim وتدرّب على تحريك المؤشر (h/j/k/l/w/b/gg/G) - متوسط (صعوبة ⭐⭐): في vim، انسخ السطر الحالي (yy) والصقه (p) 5 مرات، ثم ابحث عن كلمة في الملف واقفز بـ
n/N، وأخيرًا نفّذ استبدالًا بـ:%s/old/new/g - متقدم (صعوبة ⭐⭐⭐): أنشئ ملف إعدادات
~/.vimrc(تلوين بناء + أرقام أسطر + عرض Tab بـ2 + تلوين البحث)، ثم استخدم vim لتعديل/etc/ssh/sshd_config(يتطلب sudo)، متدرّبًا على عمليات البحث والاستبدال