لغة Emacs Lisp هي لغة برمجة تابعة لعائلة لغات Lisp، وتستخدم كلغة نصية في تخصيص وتوسيع ميزات برنامج التحرير Emacs، الذي يعتبر من أشهر برامج التحرير النصي وترتبط بشكل كبير بـ GNU Emacs و XEmacs. تم تطوير Emacs Lisp بواسطة ريتشارد ستالمان، مؤسس مشروع GNU والمطور الرئيسي لـ Emacs.
يُستخدم Emacs Lisp في تنفيذ معظم وظائف التحرير المدمجة في Emacs، حيث يُكتب الجزء الباقي من الوظائف بلغة C. يُشار إلى Emacs Lisp أيضًا باسم Elisp، على الرغم من وجود لهجة Lisp أخرى تُعرف باسم Elisp لكنها غير مرتبطة بهذه اللغة. يقوم مستخدمو Emacs عادةً بكتابة رمز Emacs Lisp لتخصيص وتوسيع Emacs، ويمكن الاستعانة بخاصية “Customize” التي تمتلكها GNU Emacs منذ الإصدار 20 لهذا الغرض أيضًا. تعمل Customize، وهي مكتوبة بـ Emacs Lisp بالذات، على توفير مجموعة من صفحات التفضيلات تسمح للمستخدم بتحديد الخيارات ومعاينة تأثيرها في جلسة Emacs الجارية. عندما يقوم المستخدم بحفظ تغييراته، تقوم Customize ببساطة بكتابة الشفرة اللازمة بلغة Emacs Lisp إلى ملف تهيئة المستخدم، الذي يمكن تعيينه إلى ملف خاص يستخدمه Customize فقط، لتجنب إمكانية تلف ملف المستخدم الخاص به.
بالإضافة إلى تخصيص وتوسيع Emacs، يمكن لـ Emacs Lisp أن تعمل كلغة نصية، تشبه بشكل كبير ما يفعله القصف الشل Bourne shell في Unix أو Perl، من خلال استدعاء Emacs في “وضع الدفعة” (batch mode). وبهذه الطريقة، يمكن استدعاءها من سطر الأوامر أو عبر ملف تنفيذي، وتكون وظائف التحرير، مثل البوافذ وأوامر الانتقال، متاحة للبرنامج تمامًا كما في الوضع العادي. لا يتم عرض واجهة مستخدم عند بدء Emacs في وضع الدفعة؛ بل يقوم ببساطة بتنفيذ البرنامج الممرر ويخرج، مع عرض أي إخراج من البرنامج.
تتميز Emacs Lisp بمجموعة من الميزات مثل وجود تعليقات السطر وإمكانية التعليق والمسافة الدلالية. كما أنها مفتوحة المصدر وتُعتبر جزءًا من مشروع GNU. يمكن العثور على معلومات إضافية حول Emacs Lisp في مقالة ويكيبيديا المخصصة لها على الرابط التالي: Emacs Lisp – Wikipedia.
هذه المعلومات توفر نظرة شاملة عن لغة Emacs Lisp واستخداماتها المختلفة في تخصيص وتوسيع برنامج التحرير Emacs وفي سياقات برمجة النصوص الأخرى.