Emmet: ما هو Emmet؟ محرك الاختصارات الأقوى لزيادة سرعة…

Emmet يشبه "الإكمال التلقائي المختصر" لـ HTML و CSS — اكتب بضعة أحرف، اضغط Tab، وشاهدها تتوسع فورًا إلى كود كامل.

1. ما ستتعلمه


2. قصة حقيقية لمطور واجهة أمامية

(1) نقطة الألم: كتابة HTML يدويًا بطيئة جدًا

أليس هي مطورة واجهة أمامية، كُلفت مؤخرًا بتجديد الصفحة الرئيسية لشركتها. في كل مرة تكتب شريط تنقل، ينتهي بها الأمر بكتابة أكثر من 30 سطرًا من HTML يدويًا: عنصر ul يحتوي على 5 عناصر li، كل منها يحتوي على وسم a. بعد شريط التنقل، هناك عرض شرائح بـ 6 شرائح div، كل منها يغلف صورة ونصًا. بنهاية اليوم، أصابعها تؤلمها — صفحة HTML من 120 سطرًا استغرقت منها 40 دقيقة كاملة. ثم يأتي CSS: margin: 10px 20px، padding: 5px، font-size: 16px — كل سطر يتطلب كتابة اسم الخاصية بالكامل والفواصل المنقوطة. تفكر أليس في نفسها: نصف وقت البرمجة يُقضى في "الكتابة". ألا يمكن للمحرر إكمال هذا تلقائيًا نيابة عني؟

(2) حل Emmet

إجابة Emmet بسيطة: ضغط أنماط HTML/CSS الشائعة إلى اختصارات، وجعل المحرر يوسعها إلى كود كامل فورًا. بعد تعلم Emmet، تكتب أليس نفس شريط التنقل المكون من 30 سطرًا بـ 16 حرفًا فقط:

TEXT 📖 للعرض فقط
ul.nav>li.item*5>a{Link $}

تضغط Tab، ويقوم المحرر فورًا بتوسيعها إلى 30 سطرًا من HTML الكامل. تحتاج إلى 6 شرائح عرض؟ سطر واحد: div.slider>div.slide*6>img. كتابة CSS؟ m10-20 يتوسع تلقائيًا إلى margin: 10px 20px، و fz16 يصبح font-size: 16px. الصفحة التي كانت تستغرق 40 دقيقة تستغرق الآن 12 دقيقة فقط.

(3) الفوائد

يقدم Emmet مكاسب فورية وملموسة لمطوري الواجهة الأمامية: تزيد سرعة كتابة HTML بمقدار 3-5 أضعاف، وسرعة CSS بمقدار 2-3 أضعاف. تنخفض الأخطاء مثل نسيان وسوم الإغلاق أو عدم تطابق علامات الاقتباس في السمات — الشائعة عند الكتابة اليدوية — إلى ما يقرب من الصفر لأن Emmet يولد كل شيء تلقائيًا. الأهم من ذلك، يمكن للمطورين التركيز على تصميم الهيكل والتنسيق بدلاً من ضغطات المفاتيح المتكررة. استثمار التعل�� ضئيل: ابنِ انطباعك الأول في 5 دقائق مع هذا الدرس، ثم اقضِ 5-10 دقائق لكل درس من الدروس الـ 17 المتبقية لإتقان مفهوم أساسي واحد في كل مرة. بعد إكمال جميع الدروس الـ 18، تكتب أليس صفحة رئيسية كاملة لمتجر إلكتروني في أقل من 30 دقيقة — بدلاً من ساعتين.


3. التعريف الأساسي لـ Emmet

Emmet (المعروف سابقًا باسم Zen Coding) هو محرك توسيع اختصارات لـ HTML و CSS، صدر لأول مرة بواسطة Sergey Chikuyonok في عام 2009 وأعيد تسميته رسميًا إلى Emmet في عام 2013. يحلل سلاسل الاختصارات الشبيهة بمحددات CSS ويوسعها في الوقت الفعلي إلى كود HTML أو CSS كامل، مدمجًا في المحررات الرئيسية مثل VSCode و WebStorm و Sublime Text.

البعد كتابة HTML يدويًا اختصار Emmet
السرعة ~8 دقائق لشريط تنقل من 30 سطرًا ~30 ثانية لشريط تنقل من 30 سطرًا
معدل الخطأ نسيان وسوم الإغلاق، عدم تطابق علامات الاقتباس توليد تلقائي، أخطاء شبه معدومة
منحنى التعلم بديهي، لكنه متكرر يتطلب حفظ ~8 عوامل أساسية
قابلية إعادة الاستخدام إعادة كتابة كل مرة تعلم مرة واحدة، أعد الاستخدام للأبد
الاعتماد على المحرر أي محرر يتطلب تكامل المحرر

نصيحة: Emmet ليس لغة برمجة جديدة أو إطار عمل. إنه ملحق محرر — في جوهره، يترجم "سلاسل الاختصارات" إلى "كود كامل".


4. ما يمكن لـ Emmet فعله

تنقسم قدرات Emmet إلى أربع فئات: اختصارات HTML، اختصارات CSS، إجراءات المحرر، والاستخدام المشترك. دعنا نلقي نظرة على بعض الأمثلة لبناء الحدس.

(1) اختصارات HTML

اختصارات HTML هي الميزة الأكثر استخدامًا في Emmet. تكتب اختصارًا شبيهًا بمحدد CSS، تضغط Tab، ويتوسع فورًا إلى شجرة وسوم HTML كاملة.

▶ مثال: اختصار وسم أساسي (الصعوبة: ★)

الاختصار:

HTML
ul.nav>li.item*5>a{Link $}

يتوسع إلى:

HTML
<ul class="nav">
  <li class="item"><a href="">Link 1</a></li>
  <li class="item"><a href="">Link 2</a></li>
  <li class="item"><a href="">Link 3</a></li>
  <li class="item"><a href="">Link 4</a></li>
  <li class="item"><a href="">Link 5</a></li>
</ul>

الناتج:

TEXT 📖 للعرض فقط
يعرض المتصفح قائمة غير مرتبة تحتوي على 5 عناصر قائمة مرتبطة. يتم استبدال الرمز `$` تلقائيًا بعداد تصاعدي من 1 إلى 5.

(2) اختصارات CSS

اختصارات CSS هي القوة الأساسية الأخرى لـ Emmet. يستعير Emmet الأحرف الأولى من أسماء خصائص CSS، ويضغط الخصائص والقيم الشائعة إلى سلاسل قصيرة.

▶ مثال: معاينة اختصار CSS (الصعوبة: ★)

الاختصار:

CSS
m10-20

يتوسع إلى:

CSS
margin: 10px 20px;

الاختصار:

CSS
p10 fz16

يتوسع إلى:

CSS
padding: 10px;
font-size: 16px;

الناتج:

TEXT 📖 للعرض فقط
`m` هو الحرف الأول من `margin`، و `10-20` تعني 10px للأعلى/الأسفل و 20px لليسار/اليمين. `p` تختصر `padding`، و `fz` تختصر `font-size`. قواعد اختصارات CSS المفصلة مغطاة في الدروس 11-13.

(3) إجراءات المحرر

Emmet ليس مجرد "اكتب اختصارًا → وسّع الكود". إنه يوفر أيضًا مجموعة من إجراءات المحرر التي تجعل التنقل بالمؤشر، وتغليف الكود، ومطابقة التوازن متاحة بضغطة مفتاح واحدة.

▶ مثال: إجراء توسيع الاختصار (ال��عوبة: ★)

افتح أي ملف .html في VSCode، اكتب div.container>ul>li*3، ثم:

BASH
# الخطوة 1: اكتب الاختصار
div.container>ul>li*3

# الخطوة 2: اضغط Tab (الاختصار الافتراضي)
# يشغل إجراء "توسيع الاختصار"

# الخطوة 3: يوسع المحرر إلى:
# <div class="container">
#   <ul>
#     <li></li>
#     <li></li>
#     <li></li>
#   </ul>
# </div>

# الخطوة 4: يقفز المؤشر إلى أول <li></li>
# يمكنك البدء ��ي الكتابة فورًا

الناتج:

TEXT 📖 للعرض فقط
سطر واحد من الاختصار يتحول فورًا إلى 6 أسطر من HTML الكامل، مع وضع المؤشر في أول موضع قابل للتحرير — لا حاجة للنقر اليدوي. استخدام الإجراءات المفصل مغطى في الدروس 14-16.

(4) عرض توضيحي مشترك

اجمع اختصارات HTML + اختصارات CSS + إجراءات المحرر، ويمكنك كتابة نموذج تسجيل دخول كامل في سطر واحد. إليك مثال مبسط:

▶ مثال: نموذج تسجيل دخول كامل (الصعوبة: ★★)

اختصار HTML:

HTML
form#login>(input[type=text name=user placeholder="Username"])+(input[type=password name=pwd placeholder="Password"])+(button.btn{Login})

يتوسع إلى:

HTML
<form id="login">
  <input type="text" name="user" placeholder="Username">
  <input type="password" name="pwd" placeholder="Password">
  <button class="btn">Login</button>
</form>

اختصار CSS المطابق:

CSS
#login{w400 bg:#f5f5f5 p20}
.btn{bg:#3b82f6 c:#fff bd:none p10-20 cur:pointer}

يتوسع إلى:

CSS
#login {
  width: 400px;
  background: #f5f5f5;
  padding: 20px;
}
.btn {
  background: #3b82f6;
  color: #fff;
  border: none;
  padding: 10px 20px;
  cursor: pointer;
}

الناتج:

TEXT 📖 للعرض فقط
يعرض المتصفح بطاقة تسجيل دخول بعرض 400px تحتوي على حقلي إدخال وزر تسجيل دخول أزرق. من إدخال الاختصار إلى نموذج وظيفي بالكامل يستغرق خطوتين فقط (سطر HTML واحد + سطر CSS واحد)، حوالي 5 ثوانٍ.

5. معاينة مسار التعلم

يحتوي هذا البرنامج التعليمي على 18 درسًا عبر 6 مراحل:

المرحلة الدروس المحتوى الأساسي الصعوبة
المرحلة 1 - البدء 3 مفاهيم Emmet، تكامل المحرر، اختصارات الوسوم الأساسية (المرحلة الحالية)
المرحلة 2 - اختصارات HTML 5 التداخل >، الصعود ^، الضرب *، التجميع ()، ID/Class، السمات والترقيم ★-★★
المرحلة 3 - النص والمتقدم 2 محتوى النص، نصوص Lorem Ipsum الوهمية، تفاصيل الوسوم الضمنية ★-★★
المرحل�� 4 - اختصارات CSS 3 استنتاج الوحدات، بادئات المتصفح، التدرجات والمطابقة التقريبية ★★
المرحلة 5 - الإجراءات 3 توسيع، تغليف، توازن، نقطة التحرير التالية ★-★★
المرحلة 6 - مشاريع واقعية 2 صفحة تسجيل الدخول + صفحة هبوط متجاوبة ★★-★★★

بعد جميع الدروس الـ 18، ستتمكن من بناء هياكل HTML معقدة من سطر اختصار واحد، وكتابة CSS الشائع باختصار، وزيادة سرعة تحريرك 3-5 أضعاف باستخدام 5 إجراءات أساسية.


❓ أسئلة شائعة

س هل Emmet لغة برمجة؟ هل أحتاج إلى تثبيته؟
ج Emmet ليس لغة برمجة؛ إنه ملحق محرر. VSCode و WebStorm والمحررات الرئيسية الأخرى مدمج بها — لا حاجة لتثبيت إضافي. يتطلب Sublime Text و Atom تثبيت ملحق (انظر الدرس 2).
س ما الفرق بين Emmet ومقتطفات الكود؟
ج مقتطفات الكود هي قوالب محددة مسبقًا وثابتة (مثل html:5 يتوسع إلى هيكل HTML5) ولا يمكن تحديد معاملاتها. اختصارات Emmet يتم توليدها ديناميكيًا — تبني هياكل عشوائية من سلاسل الاختصارات في الوقت الفعلي. Emmet هو فعليًا مجموعة شاملة من المقتطفات.
س هل أحتاج إلى تعلم HTML و CSS قبل تعلم Emmet؟
ج موصى به بشدة. Emmet لن يعلمك ما هو HTML/CSS — إنه يسرع فقط سرعة كتابتك لهما. يفترض هذا البرنامج التعليمي أنك تعرف بالفعل أساسيات HTML.
س هل يوجد "معيار" لاختصارات Emmet؟ هل هي متسقة عبر المحررات؟
ج بناء جملة Emmet موحد ومُعرّف من قبل التوثيق الرسمي. جميع المحررات المتوافقة مع Emmet (VSCode، WebStorm، Sublime، إلخ) تنتج نتائج توسيع متطابقة. الاختلافات الوحيدة قد تكون مفتاح التشغيل الافتراضي (Tab مقابل Ctrl+E) وتغطية اختصارات CSS.

📖 ملخص


📝 تمارين

  1. أساسي (الصعوبة: ★): افتح محررك المفضل، أنشئ ملف .html جديدًا، اكتب div واضغط Tab. سجل النتيجة. ثم جرب div.box واضغط Tab مرة أخرى. قارن بين التوسيعين.
  2. متوسط (الصعوبة: ★★): اكتب الاختص��ر ul>li*3>a{Item $} في محررك، اضغط Tab، ولاحظ النتيجة. ثم غير *3 إلى *6 وأعد التوسيع. سجل الاختلافات.
  3. متقدم (الصعوبة: ★★★): استخدم اختصار Emmet واحدًا لكتابة هيكل HTML الكامل لصفحة رئيسية تحتوي على شريط تنقل، وعرض شرائح، و3 بطاقات، وتذييل (CSS غير مطلوب). التقط 4 لقطات شاشة تظهر قبل وبعد التوسيع.
Web-Tutorial.com

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

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

100%