جنو إيماكس

جنو إيماكس هو محرر نصوص ومجموعة أدوات برمجية حرة . بدأ تطويره عام ١٩٨٤ على يد مؤسس مشروع جنو، ريتشارد ستالمان ، [ ٥ ] استنادًا إلى محرر إيماكس المُصمم لأنظمة تشغيل يونكس . لطالما كان جنو إيماكس عنصرًا أساسيًا في مشروع جنو ومشروعًا رائدًا في حركة البرمجيات الحرة . [ ٦ ] [ ٧ ]

شعار البرنامج هو "محرر النصوص القابل للتوسيع والموثق ذاتيًا". [ 8 ] تُنفَّذ معظم وظائف GNU Emacs بلغة Emacs Lisp سهلة الاستخدام ، [ 9 ] مما يتيح إمكانية توسيعه بشكل كبير مباشرةً من قِبل المستخدمين وعبر حزم برمجية يساهم بها المجتمع. تشمل ميزاته المدمجة متصفحًا ومحررًا للملفات ( Dired )، وآلة حاسبة متقدمة (Calc)، وبرنامج بريد إلكتروني وقارئ أخبار ( Gnus )، وتكاملًا مع بروتوكول خادم اللغة ، [ 10 ] ونظام الإنتاجية Org-mode . وقد ساهم مجتمع كبير من المستخدمين بإضافات مثل واجهة Git المسماة Magit ، وطبقة محاكاة Vim المسماة Evil، والعديد من أطر البحث، ومدير النوافذ EXWM ، [ 11 ] وأدوات للعمل مع مجموعة واسعة من لغات البرمجة.

تاريخ

ريتشارد ستالمان ، مؤسس مشروع جنو ومؤلف برنامج جنو إيماكس

كُتب برنامج EMACS الأصلي عام 1976 على يد ديفيد أ. مون وجاي ل. ستيل الابن كمجموعة من وحدات الماكرو لمحرر TECO ، وفي عام 1984، بدأ ريتشارد ستالمان العمل على GNU Emacs، لإنتاج برنامج مجاني بديل لبرنامج Gosling Emacs الاحتكاري . استند GNU Emacs في البداية إلى Gosling Emacs، ولكن استبدال ستالمان لمفسر Mocklisp بمفسر Lisp حقيقي استلزم إعادة كتابة جميع شفرته تقريبًا. أصبح هذا أول برنامج يُصدره مشروع GNU الناشئ آنذاك. كُتب GNU Emacs بلغة C، ويوفر Emacs Lisp ، المُنفذة أيضًا بلغة C، كلغة إضافية. صدرت النسخة 13، وهي أول إصدار عام، في 20 مارس 1985. وكانت النسخة 15.34 أول نسخة واسعة الانتشار من GNU Emacs، والتي صدرت لاحقًا في نفس العام. رُقّمت النسخ الأولى من GNU Emacs بالرمز "1.xx"، حيث يشير الرقم الأول إلى إصدار نواة C. تم حذف الرقم "1" بعد النسخة 1.12 لاعتقادهم أن الرقم الرئيسي لن يتغير، وبالتالي تخطى الرقم الرئيسي الرقم "1" إلى الرقم "13". أُضيف رقم إصدار ثالث جديد لتمثيل التغييرات التي أجرتها مواقع المستخدمين. [ 12 ] في نظام الترقيم الحالي، يشير الرقم المكون من جزأين إلى إصدار رسمي، بينما تتكون إصدارات التطوير من ثلاثة أجزاء. [ 13 ]

تم لاحقًا نقل برنامج GNU Emacs إلى نظام التشغيل Unix . وقدّم ميزات أكثر من Gosling Emacs، ولا سيما لغة Lisp كاملة الميزات كلغة إضافية، وسرعان ما حلّ محل Gosling Emacs كمحرر Emacs الفعلي لنظام Unix. استغل ماركوس هيس ثغرة أمنية في نظام البريد الإلكتروني الفرعي لبرنامج GNU Emacs خلال حملة اختراقه عام 1986، والتي مكّنته من الحصول على صلاحيات المستخدم المتميز على أجهزة كمبيوتر Unix. [ 14 ]

على الرغم من أن المستخدمين كانوا يرسلون عادةً تصحيحات برمجية ورموز Elisp إلى مجموعة أخبار net.emacs ، إلا أن المشاركة في تطوير GNU Emacs كانت محدودة نسبيًا حتى عام 1999، وقد استُخدمت كمثال على أسلوب التطوير "الكاتدرائية" في كتاب " الكاتدرائية والبازار " . ومنذ ذلك الحين، اعتمد المشروع قائمة بريدية عامة للتطوير وإمكانية الوصول المجهول إلى نظام التحكم في الإصدارات (CVS) . استمر التطوير في فرع واحد من نظام CVS حتى عام 2008، ويستخدم اليوم نظام التحكم في الإصدارات الموزعة Git [ 15 ] .

ظل ريتشارد ستالمان هو المسؤول الرئيسي عن صيانة برنامج GNU Emacs، لكنه تنحى عن هذا الدور في بعض الأحيان. أشرف ستيفان مونيه وتشونغ ييدونغ على الصيانة منذ عام 2008. [ 16 ] في 21 سبتمبر 2015، أعلن مونيه أنه سيتنحى عن منصبه كمسؤول صيانة اعتبارًا من تجميد ميزات Emacs 25. [ 17 ] تم الإعلان عن جون ويغلي، المساهم المخضرم، كمسؤول صيانة جديد في 5 نوفمبر 2015. [ 18 ] انضم إلى ويغلي كل من إيلي زاريتسكي في يوليو 2016، [ 19 ] [ 21 ] ولارس إنجبريغتسن في سبتمبر 2020. [ 22 ] تنحى ويغلي في عام 2018، [ 23 ] واختتم إنجبريغتسن فترة ولايته مع إصدار Emacs 29.1، [ 24 ] ليصبح زاريتسكي مسؤول الصيانة الرئيسي. تم تعيين ستيفان كانجاس كمسؤول صيانة مشارك في عام 2023، [ 25 ] وانضم أندريا كورالو إلى زاريتسكي وكانجاس في عام 2024. [ 26 ]

الترخيص

تنص شروط رخصة جنو العمومية العامة (GPL) على أن شفرة المصدر الخاصة بـ Emacs، بما في ذلك مكونات C و Emacs Lisp، متاحة مجانًا للفحص والتعديل وإعادة التوزيع.

كانت الإصدارات القديمة من وثائق GNU Emacs تُنشر بموجب ترخيص خاص يشترط تضمين نصوص معينة في أي نسخة مُعدّلة. فعلى سبيل المثال، تضمن دليل مستخدم GNU Emacs تعليمات الحصول على GNU Emacs ومقال ريتشارد ستالمان " بيان GNU" . أما أدلة XEmacs، التي ورثت من أدلة GNU Emacs القديمة عند حدوث التفرع، فتخضع للترخيص نفسه. بينما تستخدم الإصدارات الأحدث من الوثائق رخصة GNU للوثائق الحرة مع "أقسام ثابتة" تشترط تضمين الوثائق نفسها، وتُعرّف هذه الأدلة نفسها بأنها أدلة GNU . [ 27 ]

بالنسبة لبرنامج GNU Emacs، كما هو الحال مع العديد من حزم GNU الأخرى، لا تزال السياسة المتبعة هي قبول المساهمات البرمجية الكبيرة فقط إذا قام صاحب حقوق النشر بتوقيع تنازل مناسب أو نقل حقوقه البرمجية إلى مؤسسة البرمجيات الحرة (FSF). أما المساهمات الصغيرة التي تقل عن عشرة أسطر من التعليمات البرمجية فهي مستثناة. وُضعت هذه السياسة لتمكين مؤسسة البرمجيات الحرة من الدفاع عن البرنامج في المحكمة في حال انتهاك ترخيص حقوق النشر الخاص به.

في عام ٢٠١١، لُوحظ أن برنامج GNU Emacs كان يُصدر عن طريق الخطأ بعض الملفات التنفيذية دون شفرة مصدرية مُقابلة لمدة عامين، وهو ما يُخالف روح رخصة جنو العمومية (GPL). [ ٢٨ ] [ ٢٩ ] [ ٣٠ ] وصف ريتشارد ستالمان هذا الحادث بأنه "خطأ فادح"، [ ٣١ ] وقد تم إصلاحه على الفور. لم تُقاضِ مؤسسة البرمجيات الحرة (FSF) أيًا من مُعيدِي توزيع البرامج الذين انتهكوا رخصة جنو العمومية (GPL) دون علمهم بتوزيع هذه الملفات التنفيذية.

استخدام برنامج GNU Emacs

تحرير عدة مخازن مؤقتة من نوع Dired في GNU Emacs
تحرير كود مصدر C في GNU Emacs
تحرير وتجميع كود C++ من GNU Emacs

الأوامر

في وضع التحرير العادي، يعمل برنامج GNU Emacs كأي محرر نصوص شائع، حيث يسمح للمستخدم بكتابة النصوص باستخدام لوحة المفاتيح وتحريك مؤشر التحرير باستخدام مفاتيح الأسهم . يؤدي الضغط على مفتاح الهروب (Escape) أو مفتاح التحكم (Control ) أو مفتاح Meta أو مفتاح Alt أو مفتاح Super مع مفتاح عادي إلى تنفيذ ضغطات مفاتيح معدلة تستدعي وظائف من بيئة Emacs Lisp. تجمع أوامر مثل ` save-bufferwrite` و`write` save-buffers-kill-emacsعدة ضغطات مفاتيح معدلة.

تعتمد بعض أوامر GNU Emacs على استدعاء برامج خارجية، مثل ispell للتدقيق الإملائي ومجموعة مترجمات GNU (GCC) لتجميع البرامج. كما يدعم Emacs "العمليات الفرعية"، وهي عمليات فرعية طويلة الأمد تتفاعل مع المحرر. يُستخدم هذا لتفعيل وضع الصدفة ، حيث يتم تشغيل صدفة يونكس كعملية فرعية، بالإضافة إلى أوضاع حلقة القراءة والتقييم والطباعة (REPL) للغات برمجة مختلفة. إن دعم Emacs للعمليات الخارجية يجعله مناسبًا للبرمجة التفاعلية على غرار Interlisp أو Smalltalk . [ 32 ]

يمكن للمستخدمين الذين يفضلون تخطيط اختصارات لوحة المفاتيح IBM Common User Access المستخدم على نطاق واسع استخدام cua-mode ، وهي حزمة كانت في الأصل إضافة تابعة لجهة خارجية ولكنها مضمنة في GNU Emacs منذ الإصدار 22.

شريط العرض المصغر

يستخدم إيماكس "الشريط المصغر"، وهو عادةً السطر الأخير، لعرض الرسائل وطلب المعلومات، وهي وظائف تُنفذ عادةً بواسطة مربعات الحوار في محررات واجهة المستخدم الرسومية . يحتوي الشريط المصغر على معلومات مثل النص المراد البحث عنه أو اسم الملف المراد قراءته أو حفظه. عند الحاجة، تتوفر ميزة إكمال سطر الأوامر باستخدام مفتاحي Tab و Space.

إدارة الملفات وعرضها

يحتفظ برنامج Emacs بالنصوص في هياكل بيانات تُعرف باسم المخازن المؤقتة . قد تُعرض هذه المخازن على الشاشة أو لا، ويمكن الوصول إلى جميع خصائصها من خلال برامج Emacs Lisp وواجهة المستخدم. [ 33 ] يستطيع المستخدم إنشاء مخازن مؤقتة جديدة وحذف المخازن غير المرغوب فيها، ويمكن أن تتواجد عدة مخازن في الوقت نفسه، ولا يحدّها سوى الذاكرة المتاحة. [ 34 ] يمكن ضبط Emacs لحفظ قائمة المخازن المفتوحة عند الخروج، وإعادة فتح هذه القائمة عند إعادة تشغيله. [ 35 ]

تحتوي بعض المخازن المؤقتة على نصوص مُحمّلة من ملفات نصية ، يمكن للمستخدم تعديلها وحفظها في وحدة تخزين دائمة. تُسمى هذه المخازن المؤقتة "ملفات زيارة". كما تُستخدم المخازن المؤقتة لعرض بيانات أخرى، مثل مُخرجات أوامر Emacs، وقوائم الدليل المُحددة ، وسلاسل التوثيق التي تعرضها مكتبة "help"، ورسائل الإشعارات التي تُعرض في مربع حوار في مُحررات أخرى . تُعرض بعض هذه الإشعارات لفترة وجيزة في المخزن المؤقت المصغر، ويُوفر GNU Emacs مخزنًا مؤقتًا باسم *Messages* يحتفظ بسجل لأحدث الإشعارات من هذا النوع. عند استخدام المخزن المؤقت المصغر لعرض مُخرجات Emacs، يُطلق عليه "منطقة الصدى". [ 36 ] تُعرض الإشعارات الأطول في مخازن مؤقتة خاصة بها. بالطبع، يُمكن ضبط الحد الأقصى لطول الرسائل التي ستُعرض في المخزن المؤقت المصغر.

يمكن أن تعمل المخازن المؤقتة أيضًا كمساحات إدخال وإخراج لعملية خارجية مثل الصدفة أو واجهة سطر الأوامر التفاعلية (REPL) . عادةً ما تُسمى المخازن المؤقتة التي ينشئها إيماكس تلقائيًا بعلامة نجمية في كل طرف، لتمييزها عن مخازن المستخدم. وتُعرض قائمة المخازن المؤقتة المفتوحة في هذا النوع من المخازن.

تظل معظم اختصارات لوحة المفاتيح في إيماكس فعّالة في أي مخزن مؤقت. على سبيل المثال، يمكن استخدام وظيفة Ctrl-s القياسية isearchللبحث عن أسماء الملفات في المخازن المؤقتة المُدارة، ويمكن حفظ قائمة الملفات في ملف نصي تمامًا كما هو الحال مع أي مخزن مؤقت آخر. يمكن تحويل المخازن المؤقتة المُدارة إلى وضع الكتابة، حيث يمكن تعديل أسماء الملفات وخصائصها نصيًا؛ وعند حفظ المخزن المؤقت، تُكتب التغييرات إلى نظام الملفات. يتيح ذلك إعادة تسمية ملفات متعددة باستخدام ميزات البحث والاستبدال في إيماكس. عند تفعيل هذه الميزة، يعرض إيماكس ملفات الصور في المخازن المؤقتة. إيماكس آمن ثنائيًا ونظيفًا من 8 بت. [ 37 ]

يُتيح برنامج Emacs تقسيم مساحة التحرير إلى أقسام منفصلة غير متداخلة تُسمى "نوافذ"، وهي ميزة متوفرة منذ عام 1975، أي قبل ظهور واجهة المستخدم الرسومية الشائعة الاستخدام. في مصطلحات Emacs، تُشبه "النوافذ" ما يُطلق عليه في الأنظمة الأخرى " إطارات " أو " أجزاء " - وهي عبارة عن جزء مستطيل من شاشة البرنامج يُمكن تحديثه والتفاعل معه بشكل مستقل. تحتوي كل نافذة في Emacs على شريط حالة يُسمى "شريط الوضع" يظهر افتراضيًا في الحافة السفلية للنافذة. تتوفر نوافذ Emacs في كلٍ من وضع طرفية النص والوضع الرسومي، وتسمح بعرض أكثر من مخزن مؤقت واحد، أو أجزاء متعددة من مخزن مؤقت واحد، في وقت واحد. تتضمن التطبيقات الشائعة عرض مخزن مؤقت dired مع محتويات الملفات في المجلد الحالي (توجد أوضاع خاصة لجعل مخزن الملفات يتبع الملف المميز في dired)، وعرض شفرة المصدر لبرنامج في نافذة بينما تعرض نافذة أخرى مخزنًا مؤقتًا للصدفة مع نتائج تجميع البرنامج، وتشغيل مصحح الأخطاء مع مخزن مؤقت للصدفة يُشغّل البرنامج، والعمل على الشفرة أثناء عرض صفحة دليل أو وثائق أخرى (ربما يتم تحميلها عبر الإنترنت باستخدام أحد متصفحات الويب المدمجة في Emacs)، أو ببساطة عرض ملفات متعددة للتحرير في وقت واحد، مثل ملف رأس مع ملف تنفيذه للغات المبنية على لغة C. بالإضافة إلى ذلك، يوجد وضع follow-mode ، وهو وضع ثانوي يربط النوافذ لعرض أجزاء غير متداخلة من المخزن المؤقت. باستخدام وضع follow-mode ، يمكن عرض ملف واحد في نوافذ متعددة متجاورة يتم تحديثها تلقائيًا عند التمرير. بالإضافة إلى ذلك، يدعم Emacs "تضييق" المخزن المؤقت لعرض جزء فقط من الملف، مع وظيفة التنقل بين أعلى/أسفل المخزن المؤقت وحسابات حجم المخزن المؤقت التي تعكس النطاق المحدد فقط. 

تُرتّب نوافذ إيماكس بشكل متجاور ولا يمكن أن تظهر "فوق" أو "تحت" النوافذ المجاورة لها. يستطيع إيماكس تشغيل عدة "إطارات"، والتي تُعرض كنوافذ منفصلة في بيئة رسومية. في طرفية نصية، تُعرض عدة إطارات مكدسة تملأ الطرفية بأكملها، ويمكن التبديل بينها باستخدام أوامر إيماكس القياسية. [ 38 ]

الأنماط الرئيسية

يُمكن لبرنامج GNU Emacs عرض أو تحرير أنواع مختلفة من النصوص، ويُكيّف سلوكه من خلال أوضاع إضافية تُسمى "الأوضاع الرئيسية". توجد أوضاع رئيسية لأغراض عديدة، منها تحرير ملفات النصوص العادية، وشفرة المصدر للعديد من لغات الترميز والبرمجة ، بالإضافة إلى عرض صفحات الويب ، وقوائم المجلدات ، ومعلومات النظام الأخرى. يتضمن كل وضع رئيسي برنامج Emacs Lisp يُوسّع نطاق عمل المحرر ليُصبح أكثر ملاءمةً لنوع النص المُحدد. تُوفر الأوضاع الرئيسية عادةً بعضًا من الميزات الشائعة التالية أو جميعها:

  • تمييز بناء الجملة ("قفل الخط"): مجموعات من الخطوط والألوان، تسمى "وجوه"، [ 39 ] التي تميز بين عناصر المستند مثل الكلمات الرئيسية والتعليقات .
  • خاصية المسافة البادئة التلقائية للحفاظ على تنسيق متسق داخل الملف.
  • الإدراج التلقائي للعناصر المطلوبة لبنية المستند، مثل المسافات والأسطر الجديدة والأقواس.
  • أوامر التحرير الخاصة، مثل أوامر الانتقال إلى بداية أو نهاية دالة أثناء تحرير ملف برمجي أو أوامر للتحقق من صحة المستندات أو إدراج علامات الإغلاق أثناء العمل مع لغات الترميز مثل XML .

الأنماط الثانوية

يُتيح استخدام "الأوضاع الثانوية" مزيدًا من التخصيص. لا يُمكن لمحرر GNU Emacs استخدام سوى وضع رئيسي واحد في كل مرة، ولكن يُمكن تشغيل أوضاع ثانوية متعددة في آنٍ واحد. قد تعمل هذه الأوضاع مباشرةً على المستندات، كما هو الحال في الوضع الرئيسي للغة البرمجة C الذي يُعرّف وضعًا ثانويًا منفصلاً لكل نمط من أنماط المسافة البادئة الشائعة ، أو قد تُغيّر بيئة التحرير. من أمثلة الوضع الثانوي وضع يُضيف إمكانية التراجع عن التغييرات في إعدادات النافذة، وآخر يُجري فحصًا فوريًا لبنية الجملة. يوجد أيضًا وضع ثانوي يسمح باستخدام أوضاع رئيسية متعددة في ملف واحد، لتسهيل عملية تحرير المستندات التي تتضمن لغات برمجة متعددة.

"وضع الدُفعات"

يدعم برنامج GNU Emacs إمكانية استخدامه كمفسر للغة Emacs Lisp دون عرض واجهة المستخدم الخاصة بمحرر النصوص. في وضع المعالجة الدفعية، لا يتم تحميل إعدادات المستخدم، وستؤدي أحرف مقاطعة الطرفية Cc وCz وظيفتها المعتادة في إنهاء البرنامج أو تعليق تنفيذه بدلاً من استدعاء اختصارات لوحة مفاتيح Emacs. يوفر GNU Emacs خيارات سطر الأوامر لتحديد ملف لتحميله وتنفيذه، أو يمكن تمرير دالة Emacs Lisp من سطر الأوامر. سيبدأ Emacs بالعمل، ثم ينفذ الملف أو الدالة المُمررة، ويطبع النتائج، ثم يخرج. [ 40 ] يسمح سطر shebang#!/usr/bin/emacs --script بإنشاء نصوص برمجية مستقلة بلغة Emacs Lisp. [ 41 ]

كتيبات

دليل استخدام برنامج GNU Emacs (غلاف من تصميم إتيان سوفاسا؛ تصميم الغلاف من تصميم مات لي)

يأتي برنامج GNU Emacs مزودًا بدليل المستخدم الخاص به، من تأليف ريتشارد ستالمان، ويمكن الاطلاع عليه باستخدام متصفح المعلومات المدمج . [ 42 ] كما يتضمن البرنامج دليلين إضافيين: دليل مرجع لغة Emacs Lisp من تأليف بيل لويس وريتشارد ستالمان ودان لاليبيرت، وكتاب " مقدمة في البرمجة بلغة Emacs Lisp" من تأليف روبرت تشاسيل . وقد نشرت مؤسسة البرمجيات الحرة هذه الأدلة الثلاثة في كتاب .

تدويل

يدعم برنامج GNU Emacs العديد من الأبجديات والخطوط وأنظمة الكتابة والتقاليد الثقافية، ويوفر التدقيق الإملائي للعديد من اللغات عن طريق استدعاء برامج خارجية مثل ispell . أضاف الإصدار 24 دعمًا للنصوص ثنائية الاتجاه، واتجاه الكتابة من اليسار إلى اليمين ومن اليمين إلى اليسار للغات مثل العربية والفارسية والعبرية.

يدعم XEmacs العديد من أنظمة ترميز الأحرف ، بما في ذلك UTF-8 . يستخدم GNU Emacs ترميز UTF-8 بدءًا من الإصدار 23، بينما كانت الإصدارات السابقة تستخدم ترميزًا داخليًا خاصًا بها وتُجري التحويل عند التحميل والحفظ. يُشابه الترميز الداخلي المستخدم في XEmacs ترميز GNU Emacs، ولكنه يختلف عنه في بعض التفاصيل.

نشأت واجهة مستخدم GNU Emacs باللغة الإنجليزية، وباستثناء البرنامج التعليمي للمبتدئين، لم تتم ترجمتها إلى أي لغة أخرى.

يُمكّن نظام فرعي يُسمى Emacspeak المستخدمين ذوي الإعاقة البصرية والمكفوفين من التحكم في المحرر من خلال التغذية الراجعة الصوتية.

قابلية التوسعة

GNU Emacs مع AUCTeX ، مجموعة من الأدوات لتحرير مستندات TeX و LaTeX

يمكن تعديل سلوك برنامج GNU Emacs وتوسيعه بلا حدود تقريبًا من خلال دمج برامج Emacs Lisp التي تُعرّف أوامر جديدة، وأنماط تخزين مؤقت جديدة، وخرائط مفاتيح جديدة، وتضيف خيارات سطر الأوامر، [ 43 ] وما إلى ذلك. تُعرّف العديد من الإضافات التي توفر وظائف للمستخدم نمطًا رئيسيًا (إما لنوع ملف جديد أو لإنشاء واجهة مستخدم غير مخصصة لتحرير النصوص)؛ بينما تُعرّف إضافات أخرى أوامر أو أنماطًا ثانوية فقط، أو توفر وظائف تُحسّن إضافة أخرى.

منذ الإصدار 24، يتضمن برنامج GNU Emacs مدير حزم مدمجًا يمكن الوصول إليه عبر list-packagesالأمر الذي يسمح للمستخدمين بالبحث عن الحزم وتثبيتها. تاريخيًا، كانت الحزم تُنزّل يدويًا، وغالبًا ما تُوزّع عبر مجموعة أخبار Usenet gnu.emacs.sources. أما الآن، فيمكن استرداد الحزم من مستودعات ELPA (أرشيف حزم Emacs Lisp) المختلفة، بما في ذلك مستودع يديره مشروع GNU. [ 44 ] بمرور الوقت، أُضيفت العديد من الحزم الشائعة إلى Emacs افتراضيًا؛ فعلى سبيل المثال، بدأ الإصدار 21 بتضمين Org-mode وCalc وTRAMP وغيرها الكثير. [ 45 ]

مخزن مؤقت في وضع Org يعرض ملاحظات لتخطيط رحلة
مخزن مؤقت Magit يعرض سجل مستودع Emacs git

تشمل الباقات المميزة ما يلي:

أداء

في بداياته، كان برنامج GNU Emacs يعمل غالبًا ببطء ملحوظ مقارنةً بمحررات النصوص المنافسة، وذلك بسبب عبء الأداء الناتج عن تحميل وتفسير الكود المبني على لغة Lisp . تتمتع الحواسيب الحديثة بقوة كافية لتشغيل GNU Emacs بسلاسة، لكن الإصدارات السابقة للإصدار 19.29 (الذي صدر عام 1995) لم تكن قادرة على تحرير ملفات يزيد حجمها عن 8 ميجابايت. تم رفع حد حجم الملف في الإصدارات اللاحقة، وباتت إصدارات 32 بت بعد GNU Emacs 23.2 قادرة على تحرير ملفات يصل حجمها إلى 512 ميجابايت. أما Emacs المُجمَّع على جهاز 64 بت، فيمكنه التعامل مع مخازن مؤقتة أكبر بكثير. [ 48 ]

على الرغم من أن برنامج GNU Emacs مكتوبٌ في معظمه بلغة Emacs Lisp، إلا أنه يستخدم على نطاق واسع شيفرة C المُجمَّعة أصلاً لتحسين الأداء. بالإضافة إلى شيفرته الخاصة بلغة C، فإنه يستخدم مكتبات خارجية مثل libxml2 لتحليل XML . ويمكن للحزم التي يُثبِّتها المستخدم تحميل وحدات نمطية ديناميكية. [ 49 ]

منذ الإصدار 28.1، أصبح بإمكان Emacs ترجمة ملفات Emacs Lisp بشكل أصلي عبر ` libgccjit، بدلاً من مجرد ترجمتها على مستوى البايت ، مما أدى إلى تحسين كبير في الأداء. [ 50 ] [ 51 ]

المنصات

يعمل برنامج GNU Emacs على مجموعة واسعة من أنظمة التشغيل ، بما في ذلك DOS و Windows ، [ 52 ] [ 53 ] [ 54 ] ومعظم أنظمة التشغيل الشبيهة بنظام Unix ، مثل Linux وأنظمة BSD المختلفة و Solaris و AIX و HP-UX و macOS . [ 55 ] [ 56 ] [ 57 ] وتتضمن العديد من أنظمة Unix برنامج Emacs افتراضيًا. [ 58 ] وفي عام 2023، تم إصدار نسخة رسمية منه لنظام Android . [ 59 ] وقد أزال الإصدار 23.1 دعم بعض المنصات التي اعتُبرت قديمة. [ 4 ]

يعمل برنامج GNU Emacs على كلٍ من محطات الطرفية النصية وبيئات واجهة المستخدم الرسومية (GUI). في أنظمة التشغيل الشبيهة بنظام Unix، يستطيع GNU Emacs استخدام نظام X Window لإنشاء واجهة المستخدم الرسومية إما مباشرةً باستخدام عناصر واجهة المستخدم Athena أو باستخدام مجموعة أدوات مثل Motif أو LessTif أو GTK+ . كما يستطيع GNU Emacs استخدام أنظمة الرسومات الأصلية في macOS وWindows لتوفير أشرطة القوائم وأشرطة الأدوات وأشرطة التمرير وقوائم السياق ، بما يتناسب بشكلٍ أفضل مع مظهر كل منصة .

تهجئة الاسم

التهجئة الصحيحة هي "GNU Emacs"، وليس "GNU/Emacs"، وذلك وفقًا لقواعد اللغة الإنجليزية . في عبارة "GNU Emacs"، تُعدّ كلمة "GNU" وصفًا لكلمة "Emacs". هذه هي الطريقة الصحيحة لوصف برنامج يُسمى Emacs وهو حزمة من حزم GNU . [ 60 ]

شوكات

إكس إيماكس

XEmacs 21.5 على نظام GNU / Linux

بدأ تطوير برنامج Lucid Emacs، المبني على نسخة مبكرة من GNU Emacs 19، في عام 1991 على يد جيمي زاوينسكي وآخرين في شركة Lucid Inc. وحدثت إحدى أشهر حالات التفرع في تطوير البرمجيات الحرة عندما تباينت قواعد بيانات نسختي Emacs، وتوقفت فرق التطوير المنفصلة عن جهود دمجهما في برنامج واحد. [ 61 ] بعد إعلان شركة Lucid إفلاسها، أُعيد تسمية Lucid Emacs إلى XEmacs . [ 62 ] تباطأ تطوير XEmacs، حيث صدرت أحدث نسخة مستقرة منه، وهي 21.4.22، في يناير 2009، بينما أضاف GNU Emacs العديد من الميزات التي كانت حصرية لـ XEmacs. وقد دفع هذا بعض المستخدمين إلى اعتبار XEmacs برنامجًا قديمًا. [ 63 ]

نسخ أخرى من برنامج GNU Emacs

تتضمن النسخ الأخرى، الأقل شهرة من XEmacs، ما يلي:

  • ميدو نسخة يابانية لنظام التشغيل مايكروسوفت ويندوز [ 64 ] 
  • SXEmacs نسخة ستيف يونغز المعدلة من XEmacs [ 65 ] 
  • Aquamacs إصدار يركز على التكامل مع واجهة مستخدم Apple Macintosh 
  • Remacs منفذ تدريجي لـ GNU Emacs إلى لغة البرمجة Rust ، غير مكتمل ولم يعد يتم صيانته اعتبارًا من عام 2023. [ 66 ] 
  • emacs-ng هي محاولة لإدخال أدوات جافا سكريبت الحديثة إلى إيماكس مع الحفاظ على التوافق مع الإصدارات السابقة. [ 67 ] 

سجل الإصدارات

تُدرج التغييرات في كل إصدار من إيماكس في ملف NEWS يُوزع مع إيماكس. [ 68 ] أما التغييرات الناتجة عن الرجوع إلى الإصدار السابق فتُدرج في ملف "Antinews"، وغالبًا ما تُرفق بتعليقات ساخرة حول سبب كون ذلك مرغوبًا فيه. [ 69 ]

تاريخ إصدارات برنامج GNU Emacs
إصدارتاريخ الافراج عنهتغييرات كبيرة [ 70 ]
30.214 أغسطس 2025إصدار تصحيح الأخطاء [ 71 ]
30.123 فبراير 2025يتم تفعيل الترجمة الأصلية لملفات Lisp افتراضيًا. أصبح JSON الأصلي متاحًا دائمًا. يتضمن دعمًا مدمجًا لملفات EditorConfig. يضم حزمة which-key الشهيرة. دعم أصلي لاستخدام Emacs على نظام Android وشاشات اللمس. تحسينات عديدة في الأداء. [ 72 ] [ 73 ]
29.422 يونيو 2024إصدار أمني. [ 74 ] [ 75 ]
29.324 مارس 2024إصدار أمني. [ 76 ]
29.218 يناير 2024إصدار تصحيح الأخطاء. [ 77 ]
29.130 يوليو 2023يُضيف هذا البرنامج تكاملاً مع محلل Tree-sitter وواجهة أمامية GTK خالصة تدعم Wayland . كما يضم حزمًا شائعة، منها حزمة بروتوكول خادم اللغة Eglot، ومدير الحزم use-package، وcsharp-mode لبرمجة C# . [ 78 ] [ 79 ] [ 80 ]
28.212 سبتمبر 2022إصدار لإصلاح الأخطاء بدون أي ميزات جديدة. [ 81 ]
28.14 أبريل 2022تجميع ملفات Lisp الأصلية. تشكيل النصوص باستخدام HarfBuzz والرسم باستخدام Cairo. دعم تحميل مرشحات الحوسبة الآمنة. عرض مُحسّن بشكل كبير للرموز التعبيرية وتسلسلاتها. أوامر خاصة بكل وضع. يعرض Emacs الأقواس المتطابقة افتراضيًا.
27.225 مارس 2021إصدار مخصص بشكل أساسي لإصلاح الأخطاء. [ 82 ]
27.110 أغسطس 2020دعم مدمج للأعداد الصحيحة ذات الأحجام المختلفة. تشكيل النصوص باستخدام HarfBuzz. دعم أصلي لتحليل JSON. دعم مُحسّن لرسم Cairo. استخدام تفريغ محمول بدلاً من unexec. دعم اصطلاحات XDG لملفات التهيئة. ملف تهيئة إضافي للتهيئة المبكرة. استخدام الربط المعجمي افتراضيًا. دعم مدمج لشريط علامات التبويب وخطوط علامات التبويب. دعم تغيير حجم الصور وتدويرها بدون ImageMagick.
26.328 أغسطس 2019مفتاح GPG جديد لفحص توقيع حزمة GNU Emacs Lisp Package Archive (ELPA).
26.212 أبريل 2019أصبح بالإمكان الآن بناء وحدات Emacs خارج مصدر شجرة Emacs. متوافق مع إصدار Unicode 11.0.
26.128 مايو 2018شكل محدود من التزامن مع خيوط Lisp. دعم لعرض أرقام الأسطر في المخزن المؤقت (اختياري). يستخدم Emacs الآن التخزين المؤقت المزدوج لتقليل الوميض على نظام X Window. أُعيد تصميم Flymake بالكامل. يحتوي TRAMP على طريقة اتصال جديدة لـ Google Drive. وضع جديد للتمرير الأفقي أحادي السطر. تم توفير ملف وحدة مستخدم systemd. دعم ألوان 24 بت على محطات طرفية نصية متوافقة. [ 83 ]
25.311 سبتمبر 2017إصدار طارئ لإصلاح ثغرة أمنية في برنامج Emacs. [ 84 ]
25.221 أبريل 2017إصدار مخصص بشكل أساسي لإصلاح الأخطاء. [ 85 ]
25.117 سبتمبر 2016دعم تحميل المكتبات المشتركة/الديناميكية (الوحدات). التحقق من صحة شهادات TLS/SSL. وضع ثانوي جديد 'electric-quote-mode' لاستخدام علامات الاقتباس المنحنية. دعم طي الأحرف في isearch.el. دعم تضمين الأدوات الأصلية داخل مخازن Emacs المؤقتة. إمكانيات جديدة ومحسّنة لإدراج أحرف Unicode. [ 86 ]
24.510 أبريل 2015إصدار مخصص بشكل أساسي لإصلاح الأخطاء. [ 87 ] [ 88 ]
24.420 أكتوبر 2014دعم قوائم التحكم بالوصول (ACLs) والتوقيعات الرقمية لحزم Emacs Lisp. تحسين دعم وضع ملء الشاشة ودعم الشاشات المتعددة. دعم حفظ واستعادة حالة الإطارات والنوافذ. تحسين دعم القوائم في محطات النصوص. متصفح ويب مدمج إضافي M-x eww. وضع علامة مستطيلة جديد C-x SPC. دعم إشعارات الملفات. [ 89 ]
24.310 مارس 2013أصبحت المتغيرات المعممة الآن جزءًا من لغة Emacs Lisp الأساسية، بالإضافة إلى تحديث لمكتبة محاكاة Common Lisp، ووضع رئيسي جديد للغة Python. [ 90 ]
24.227 أغسطس 2012إصدار تصحيح الأخطاء [ 91 ]
24.110 يونيو 2012ELPA، دعم سمات الألوان الأصلية، GTK+3 اختياري، دعم الإدخال ثنائي الاتجاه، دعم النطاق المعجمي في Emacs Lisp [ 92 ]
23.429 يناير 2012يُصلح ثغرة أمنية. [ 93 ]
23.310 مارس 2011تحسين وظائف استخدام برنامج Emacs مع أنظمة التحكم في الإصدارات.
23.28 مايو 2010أدوات جديدة لاستخدام إيماكس كبيئة تطوير متكاملة ، بما في ذلك التنقل بين أجزاء المشروع وإنشاء ملفات Makefile تلقائيًا. وضع رئيسي جديد لتحرير كود جافا سكريبت. في واجهات المستخدم الرسومية، يُخفى المؤشر أثناء الكتابة.
23.129 يوليو 2009دعم الخطوط المُنعّمة على نظام X عبر Xft ، [ 94 ] ودعم مُحسّن لليونيكود ، ووضع عرض المستندات، وحزم جديدة لعرض ملفات PDF و PostScript ، والاتصال بالعمليات عبر D-Bus (dbus)، والاتصال بـ GNU Privacy Guard (EasyPG)، ووضع nXML لتحرير مستندات XML ، ووضع Ruby لتحرير برامج Ruby ، وغير ذلك. تم استبدال استخدام مكتبات واجهة المستخدم الرسومية Carbon على نظام Mac OS X باستخدام مكتبات واجهة المستخدم الرسومية Cocoa الأحدث .
22.35 سبتمبر 2008دعم مجموعة أدوات GTK+، ودعم مُحسّن للماوس، ونظام ماكرو جديد للوحة المفاتيح، ودعم مُحسّن لليونيكود، وخاصية السحب والإفلات على X. العديد من الأوضاع والحزم الجديدة بما في ذلك واجهة مستخدم رسومية لـ GDB، ووضع بايثون، وأداة الحساب الرياضية Calc، ونظام تحرير الملفات عن بُعد Tramp ("الوصول الشفاف عن بُعد (للملفات)، بروتوكول متعدد"). [ 95 ]
22.226 مارس 2008دعم جديد لأنظمة التحكم في الإصدارات Bazaar وMercurial وMonotone وGit . أوضاع رئيسية جديدة لتحرير ملفات أنماط CSS وVera وVerilog وBibTeX. تحسين دعم التمرير في وضع الصورة.
22.12 يونيو 2007دعم مجموعة أدوات GTK+ الرسومية، ودعم السحب والإفلات على X، ودعم واجهة المستخدم Mac OS X Carbon، وإصدار org-mode 4.67d مضمن [ 96 ]
21.120 أكتوبر 2001دعم عرض الألوان وبعض الخصائص الأخرى على شاشات العرض، والتمرير الأفقي المدمج، ودعم الصوت، ودعم عجلة الماوس، وتحسين تصميم شريط القوائم، ودعم الصور وشريط الأدوات وتلميحات الأدوات، ودعم يونيكود
20.117 سبتمبر 1997دعم متعدد اللغات
19.3422 أغسطس 1996إصدار لإصلاح الأخطاء بدون تغييرات مرئية للمستخدم [ 97 ]
19.3125 مايو 1996 [ 70 ]يفتح Emacs إطارات X11 افتراضيًا، وأشرطة التمرير على نظامي التشغيل Windows 95 و NT ، والعمليات الفرعية على نظام التشغيل Windows 95 ، recover-sessionلاستعادة ملفات متعددة بعد حدوث عطل، [[doctor.el]]وتمت إزالة بعض الميزات للامتثال لقانون آداب الاتصالات الأمريكي [ 97 ].
19.3024 نوفمبر 1995دعم الإطارات المتعددة على نظام التشغيل ويندوز، شريط القوائم متاح على محطات النصوص، pc-selectحزمة لمحاكاة اختصارات لوحة المفاتيح الشائعة في ويندوز وماكنتوش. [ 97 ]
19.2919 يونيو 1995 [ 98 ]شهدت النسخة الجديدة تحسينات ملحوظة في الأداء، ودعم الخطوط، ومعالجة الصور. فقد وفرت أداءً أسرع، وخيارات خطوط موسعة، بما في ذلك الخطوط القابلة للتكبير، ودعمًا مُحسّنًا لتنسيقات الصور. بالإضافة إلى ذلك، حسّنت ميزات التدويل، وقدّمت المزيد من خيارات التخصيص، مما عزز تجربة المستخدم بشكل أكبر.
19.281 نوفمبر 1994الإصدار الرسمي الأول v19. يدعم الإطارات المتعددة باستخدام نظام X Windowing؛ VC، واجهة جديدة لأنظمة التحكم في الإصدارات، وضع قفل الخط، وضع hexl لتحرير البيانات السداسية العشرية .
18.5931 أكتوبر 1992تضمنت النسخة 18.59 من Emacs تحسينات وإصلاحات للأخطاء مقارنة بالإصدارات السابقة من Emacs 18.x.
18.5323 فبراير 1989أضافت إيماكس 18.53 دعمًا لخاصية قفل الخطوط، مما أتاح تمييز بناء الجملة في أوضاع البرمجة المختلفة. وقد حسّنت هذه الميزة بشكل كبير من سهولة قراءة الكود من خلال تمييز عناصر اللغة المختلفة بألوان أو أنماط مميزة. كما تضمنت هذه النسخة إصلاحات وتحسينات عديدة مقارنةً بالإصدارات السابقة.
18.5217 أغسطس 1988تم تقديم spook.elمكتبة لإضافة بعض الكلمات الرئيسية "لتشتيت انتباه وكالة الأمن القومي " إلى كل رسالة ترسلها. [ 99 ]
18.242 أكتوبر 1986وضع الخادم، [ 100 ]M-x disassemble ، يمكن لـ Emacs فتح اتصالات TCP، emacs -nwلفتح Emacs في وضع وحدة التحكم على xterms .
17.3620 ديسمبر 1985أرقام إصدارات ملفات النسخ الاحتياطي
16.5615 يوليو 1985الإصدار الأول من إيماكس 16. وضع إيماكس ليسب يختلف عن وضع ليسب، [ 101 ] إزالة جميع التعليمات البرمجية من جوسلينج إيماكس بسبب مشاكل حقوق النشر [ 102 ]
13.8؟20 مارس 1985الإصدار الأول. مع ذلك، يحتوي شريط VAXSIG VAX85b DECUS على الإصدار 13.8 بتاريخ ملفات 19 يونيو 1985، وملفات RCS بتاريخ 31 مارس 1985. وهي نسخة تالفة بشدة. يُشار إلى الإصدار 13.9 في ملف الأخبار [ 101 ] ، لذا يُحتمل أن يكون الإصدار 13.8 هو الإصدار الأول، إذ لا توجد إصدارات أخرى من سلسلة 13.x مذكورة.

مراجع

  1. إيلي زاريتسكي (14 أغسطس 2025). "إصدار إيماكس 30.2" . تم الاطلاع عليه بتاريخ 16 أغسطس 2025 .
  2. أندريا كورالو (19 ديسمبر 2024). "الاختبار المسبق لـ Emacs 30.0.93 متاح" . تم الاطلاع عليه بتاريخ 27 ديسمبر 2024 .
  3. "GNU Emacs" ، ملخص التحليل ، Open Hub
  4. 1 2 "قائمة أجهزة Emacs" . مؤرشفة من الأصل بتاريخ 2012-06-09.
  5. ستالمان، ريتشارد . "مشروع جنو" . مؤرشف من الأصل في 2024-09-03.
  6. فوسكو، جون (2007-03-06). أدوات مبرمج لينكس . بيرسون للتعليم. ISBN 9780132703048.
  7. كاميرون، ديبرا؛ إليوت، جيمس؛ لوي، مارك؛ ريموند، إريك؛ روزنبلات، بيل (2005). تعلم جنو إيماكس . دار نشر أورايلي ميديا. رقم ISBN 9780596006488.
  8. "Debian – تفاصيل حزمة Emacs في wheezy" .
  9. "دليل مرجعي للغة ليسب في إيماكس من جنو" . www.gnu.org . تم الاطلاع عليه بتاريخ 15-09-2024 .
  10. "gnu.org" . www.gnu.org . تم الاطلاع عليه بتاريخ 15-09-2024 .
  11. 1 2 فينغ، كريس (27 نوفمبر 2017). "exwm: مدير نوافذ Emacs X" - عبر GitHub.
  12. "NEWS.1–17" . يوجد نظام ترقيم جديد للإصدارات. تم إلغاء رقم الإصدار الأول، وهو 1، لعدم الحاجة إلى ثلاثة مستويات من أرقام الإصدارات. مع ذلك، تمت إضافة رقم إصدار ثالث جديد لتمثيل التغييرات التي تُجريها مواقع المستخدمين. سيكون هذا الرقم دائمًا صفرًا في Emacs عند توزيعه، وسيتم زيادته في كل مرة يتم فيها بناء Emacs في موقع آخر.
  13. "الأسئلة الشائعة حول GNU Emacs" . يشير رقم الإصدار المكون من عنصرين (على سبيل المثال، '22.1') ​​إلى إصدار تم إصداره؛ وتشير ثلاثة عناصر إلى إصدار قيد التطوير (على سبيل المثال، '23.0.50' هو ما سيصبح في النهاية '23.1').
  14. ستول، كليفورد (1988). "مطاردة القرصان الماكر" . اتصالات رابطة آلات الحوسبة . 31 (5): 484-497 . doi : 10.1145/42411.42412 . S2CID 6956966 . 
  15. "ردًا على: GNU EMACS" . GNU . تم الاسترجاع في 16-11-2014 .]
  16. "ردًا على: البحث عن مسؤول صيانة أو فريق جديد لبرنامج Emacs" . قائمة بريدية gnu.org . تم الاطلاع بتاريخ 23 فبراير 2008 .انظر أيضًا "ستالمان يتحدث عن تسليم برنامج GNU Emacs، ومستقبله، وأهمية التسمية"
  17. "تجميد الميزات" . lists.gnu.org .
  18. "إيماكس يحصل على مُشرف جديد بعد رحيل ريتشارد ستالمان" . ذا ريجستر .
  19. "نرحب بمساعد الصيانة الجديد: إيلي زاريتسكي" . lists.gnu.org .
  20. الإعلان عن الفائزين بجوائز البرمجيات الحرة: إيلي زاريتسكي، تاد (سكيود زيبيلين)، جنو جامي ، مؤسسة البرمجيات الحرة، 18 مارس 2023 ، تاريخ الاطلاع 29 مارس 2023
  21. يساهم زاريتسكي في برنامج GNU Emacs منذ التسعينيات، وحصل على جائزة البرمجيات الحرة لعام 2022 من مؤسسة البرمجيات الحرة. [ 20 ]
  22. "لارس إنجبريجتسن هو الآن أحد القائمين على صيانة إيماكس" . lists.gnu.org .
  23. "تحية كبيرة لإيلي!" . lists.gnu.org .
  24. "شكر وتقدير" . www.gnu.org .
  25. "ستيفن كانغاس أصبح الآن أحد القائمين على صيانة إيماكس" . lists.gnu.org .
  26. "مشرف جديد على Emacs: أندريا كورالو" . lists.gnu.org .
  27. "رخصة جنو للوثائق الحرة (دليل جنو إيماكس)" . GNU.org . 3 نوفمبر 2008. تم الاطلاع عليه في 27 أبريل 2026 .
  28. بروكماير، جو (29 يوليو 2011). "ماذا تقول؟ برنامج GNU Emacs ينتهك رخصة GPL" . عالم الشبكات . تم الاسترجاع في 19 يناير 2016 .
  29. تم إلغاء الترخيص: تطبيق القسم 4 من رخصة جنو العمومية العامة ودروس شركة بيست باي على نظام أندرويد من جوجل. مؤرشف بتاريخ 27-01-2016 في أرشيف الإنترنت بواسطة إدوارد ج. نوتون (8 أغسطس 2011).
  30. "Emacs ينتهك رخصة GPL منذ عام 2009 - Slashdot" . developers.slashdot.org . 29 يوليو 2011. تاريخ الاسترجاع: 10 يناير 2022 .
  31. "رد: ملفات مُجمّعة بدون مصادر؟؟؟؟؟" . lists.gnu.org . تم الاطلاع عليه بتاريخ 10 يناير 2022 .
  32. ^ هالمي ، هيكي. هينانين، جحا (1988). “GNU Emacs كبيئة برمجة قابلة للتوسيع ديناميكيًا”. البرمجيات: الممارسة والخبرة . 18 (10): 999-1009 . دوى : 10.1002/spe.4380181006 . S2CID 8629911 . 
  33. سبينليس، ديوميديس؛ غوسيوس، جورجيوس (15 يناير 2009). العمارة الجميلة: مفكرون بارزون يكشفون الجمال الخفي في تصميم البرمجيات . دار نشر أورايلي ميديا. رقم ISBN 9780596554392.
  34. هايبرغر، ريتشارد م.؛ هولاند، بيرت (23-12-2015). التحليل الإحصائي وعرض البيانات: دورة متوسطة مع أمثلة في لغة البرمجة R. سبرينغر. ISBN 9781493921225.
  35. "حفظ جلسات إيماكس" .
  36. "منطقة الصدى" .
  37. "مقدمة تعليمية لبرنامج GNU Emacs" .
  38. "الإطارات - دليل GNU Emacs" . مع ذلك، لا يزال من الممكن إنشاء عدة "إطارات" على نوافذ طرفية نصية؛ تُعرض هذه الإطارات واحدًا تلو الآخر، لتملأ شاشة الطرفية بالكامل.
  39. كاميرون، ديبرا؛ روزنبلات، بيل؛ ريموند، إريك س. (1996). تعلم جنو إيماكس . سلسلة In a Nutshell ( الطبعة الثانية). دار نشر أورايلي ميديا، ص 533. ISBN   978-1-56592-152-8تم الاطلاع عليه بتاريخ 2010-11-02 . الخط هو مزيج من نوع الخط واللون.
  40. "الخيارات الأولية" . في وضع المعالجة الدفعية، لا يعرض Emacs النص الذي يتم تحريره، وتؤدي أحرف مقاطعة الطرفية القياسية مثل Cz وCc وظيفتها المعتادة. أما دوال Emacs التي تطبع عادةً رسالة في منطقة الصدى، فستطبع إما إلى دفق الإخراج القياسي (stdout) أو دفق الخطأ القياسي (stderr). (وبالتحديد، تطبع دوال مثل prin1 وprinc وprint إلى stdout، بينما تطبع دوال مثل message وerror إلى stderr). أما الدوال التي تقرأ عادةً مدخلات لوحة المفاتيح من المخزن المؤقت المصغر، فتأخذ مدخلاتها من دفق الإدخال القياسي للطرفية (stdin).
  41. "Emacs Lisp كلغة برمجة نصية" . leancrew.com . تم الاطلاع عليه بتاريخ 27-06-2023 .
  42. ستالمان، ريتشارد؛ وآخرون . (1987). دليل جنو إيماكس (ملف PDF) (الطبعة 19 ). بوسطن، ماساتشوستس، الولايات المتحدة الأمريكية: مؤسسة البرمجيات الحرة. رمز Bibcode : 1987gem..book.....S . تاريخ الاسترجاع: 8 يناير 2022 .  
  43. "وسائط سطر الأوامر" .
  44. "أرشيف حزم GNU Emacs Lisp" . مؤسسة البرمجيات الحرة.
  45. 1 2 3 ستالمان، ريتشارد (2007-06-03). "إصدار Emacs 22.1" . info-gnu-emacs (قائمة بريدية) . تم الاطلاع عليه بتاريخ 2011-07-31 .
  46. جوناس برنولي. "إنه ماجيت! نسخة خزفية من جيت داخل إيماكس" . تم الاطلاع عليه بتاريخ 8 فبراير 2017 .
  47. بيترسن، ميكي. "مقدمة إلى ماجيت، وضع إيماكس لجيت". إتقان إيماكس . تم الاسترجاع في 8 فبراير 2017 .
  48. "6.1 هل يواجه برنامج Emacs مشاكل مع الملفات التي يزيد حجمها عن 8 ميجابايت؟ "
  49. "وحدات إيماكس الديناميكية" . دليل مرجعي للغة ليسب في إيماكس من جنو . تم الاطلاع عليه بتاريخ 15 أبريل 2022 .
  50. "ترجمة لغة ليسب إلى كود أصلي" . دليل مرجعي للغة ليسب في برنامج جنو إيماكس . تم الاطلاع عليه بتاريخ 15 أبريل 2022 .
  51. ^ كورالو ، أندريا. ناسي، لوكا؛ مانكا ، نيكولا (2020-04-06). “جلب GNU Emacs إلى الكود الأصلي”. ندوة اللثغة الأوروبية 2020 . أرخايف : 2004.02504 . دوى : 10.5281/زينودو.3736362 .
  52. ب، رامبراساد (24-06-2005). "أسئلة وأجوبة حول برنامج GNU Emacs لأنظمة ويندوز 95/98/ME/NT/XP و2000" . تم الاطلاع عليه بتاريخ 27-09-2006 .
  53. بورغمان، لينارت (2006). "الصفحة الرئيسية لـ EmacsW32" . مؤرشف من الأصل بتاريخ 2007-03-06 . تم الاطلاع عليه بتاريخ 2006-09-27 .
  54. "GNU Emacs على نظام ويندوز" . شركة فرانز، 2006. تم الاطلاع عليه بتاريخ 27-09-2006 .
  55. "Emacs لنظام التشغيل Mac OS X" . تم الاطلاع عليه بتاريخ 2022-02-09 .
  56. "حزمة Carbon Emacs" . تم الاطلاع عليها بتاريخ 10-06-2012 .
  57. "أكواماكس هو برنامج سهل الاستخدام، يشبه برنامج إيماكس الخاص بنظام ماك، ويعمل على نظام التشغيل ماك أو إس إكس" . تم الاطلاع عليه بتاريخ 27-09-2006 .
  58. "gnu.org" . www.gnu.org . تم الاطلاع عليه بتاريخ 2023-07-05 .
  59. "Emacs | F-Droid – مستودع تطبيقات أندرويد مجاني ومفتوح المصدر" . f-droid.org . تم الاطلاع عليه بتاريخ 26-06-2023 .
  60. https://www.gnu.org/gnu/gnu-linux-faq.en.html#whynoslash
  61. ستيفن جيه، تورنبول. "XEmacs مقابل GNU Emacs" . تم الاسترجاع في 2012-10-02 .
  62. "xemacs(1): Emacs: Next Generation – صفحة دليل لينكس" . linux.die.net . تم الاطلاع عليه بتاريخ 26-06-2023 .
  63. "لقد مات XEmacs. عاش XEmacs! "
  64. "الصفحة الرئيسية - ويكي المروج" . 16 فبراير 2012. مؤرشف من الأصل في 2012-02-16.
  65. "موقع SXEmacs الإلكتروني" . Sxemacs.org. 11-10-2009 . تم الاطلاع عليه بتاريخ 8-11-2009 .
  66. "ريماكس" . مستودع ريماكس على جيت هاب . تم الاطلاع عليه بتاريخ 22 فبراير 2017 .
  67. "Emacs NG - نهج جديد لـ Emacs" . صفحة مشروع Emacs NG . تم الاطلاع عليه بتاريخ 21 يوليو 2025 .
  68. "NEWS.24.5" . أخبار GNU Emacs - تاريخ التغييرات المرئية للمستخدم.
  69. "أخبار مضادة" . بالنسبة للمستخدمين الذين يفضلون الإصدارات القديمة، إليكم معلومات حول الرجوع إلى إصدار Emacs 24.5. نأمل أن تستمتعوا بالبساطة الأكبر الناتجة عن غياب العديد من ميزات Emacs 25.2.
  70. 1 2 "الجدول الزمني لبرنامج إيماكس" . www.jwz.org . تم الاطلاع عليه بتاريخ 10 يناير 2022 .
  71. "إصدار Emacs 30.2" . lists.gnu.org . تم الاطلاع عليه بتاريخ 24-08-2025 .
  72. "إصدار Emacs 30.1" . lists.gnu.org . تم الاطلاع عليه بتاريخ 2025-03-06 .
  73. "ما الذي يميز Emacs 30؟" . www.gnu.org . تم الاطلاع عليه بتاريخ 2025-03-06 .
  74. كانغاس، ستيفان (22 يونيو 2024). "إصدار Emacs 29.4" . مؤرشف من الأصل بتاريخ 25 يونيو 2024. تم الاطلاع عليه بتاريخ 7 يوليو 2024. يُعد Emacs 29.4 إصدارًا طارئًا لإصلاح الأخطاء؛ ولا يتضمن أي ميزات جديدة باستثناء عدد قليل من التغييرات التي تهدف إلى حل ثغرة أمنية تم اكتشافها في Emacs 29.3 والإصدارات الأقدم.
  75. كانغاس، ستيفان (22 يونيو 2024). "etc/NEWS: تحديث لإيماكس 29.4" . جنو سافانا . مؤرشف من الأصل في 8 يوليو 2024. تم الاطلاع عليه في 7 يوليو 2024. إيماكس 29.4 هو إصدار طارئ لإصلاح ثغرة أمنية، ويهدف إلى معالجة الثغرة الموضحة أدناه... لم تعد أوامر سطر الأوامر العشوائية تُنفذ عند تفعيل وضع Org. هذا لأسباب أمنية، لتجنب تنفيذ أوامر ضارة.
  76. "أخبار جنو إيماكس" . git.savannah.gnu.org . مؤرشف من الأصل بتاريخ 27-07-2024 . تم الاطلاع عليه بتاريخ 15-09-2024 .
  77. "GNU Emacs - مشروع GNU" . www.gnu.org . تم الاطلاع عليه بتاريخ 21-02-2024 .
  78. "تم إصدار Emacs 29.1" .
  79. "التغييرات في Emacs 29.1" .
  80. ^ باتسوف، بوزيدار (2023-07-30). "تم إصدار إيماكس 29.1" . إيماكس ريدوكس . تم الاسترجاع 2023-07-30 .
  81. "التغييرات في Emacs 28.2" .
  82. "التغييرات في Emacs 27.2" .
  83. "إصدار Emacs 26.1" . lists.gnu.org . تم الاطلاع عليه بتاريخ 29-05-2018 .
  84. "التغييرات في Emacs 25.3" .
  85. "التغييرات في Emacs 25.2" .
  86. "إصدار Emacs 25.1" . lists.gnu.org . تم الاطلاع عليه بتاريخ 17-09-2016 .
  87. "أخبار GNU Emacs - تاريخ التغييرات المرئية للمستخدم" . 10-04-2015 . تم الاطلاع عليه بتاريخ 11-04-2015 .
  88. بيتون، نيكولاس (10 أبريل 2015). "إصدار إيماكس 24.5" . مؤرشف من الأصل بتاريخ 11 أبريل 2015. تم الاطلاع عليه بتاريخ 11 أبريل 2015 .
  89. موريس، غلين (2014-10-20). "إصدار Emacs 24.4" . تم الاطلاع عليه بتاريخ 22-10-2014 .
  90. موريس، جلين (10 مارس 2013). "إصدار إيماكس 24.3" . تم الاطلاع عليه بتاريخ 16 مارس 2013 .
  91. ييدونغ، تشونغ (27 أغسطس 2012). "الإصدار التجريبي 24.2 من إيماكس" . تم الاطلاع عليه بتاريخ 11 نوفمبر 2012 .
  92. ييدونغ، تشونغ (2012-06-01). "الإصدار التجريبي 24.1 من إيماكس" . تم الاطلاع عليه بتاريخ 2012-06-01 .
  93. ييدونغ، تشونغ (9 يناير 2012). "ثغرة أمنية في EDE؛ خطط إصدار جديدة" . تم الاطلاع عليه بتاريخ 23 فبراير 2012 .
  94. "emacs-fu: تم إصدار إيماكس 23!" . Emacs-fu.blogspot.com. 2009-07-28 . تم الاطلاع عليه بتاريخ 2009-11-08 .
  95. زاوودني، جيريمي (15 ديسمبر 2003). "تحرير الملفات عن بُعد باستخدام إيماكس مع ترامب" . مجلة لينكس . مؤرشف من الأصل في 17 أبريل 2008. تم الاطلاع عليه في 1 فبراير 2010. ترامب [...] اختصار لـ "الوصول الشفاف عن بُعد (للملفات)، بروتوكول متعدد".
  96. مؤسسة البرمجيات الحرة (2007). "أخبار إيماكس الإصدار 22.1" . تم الاطلاع عليه بتاريخ 29-12-2013 .
  97. 1 2 3 "NEWS.19" .
  98. "برامج فلاش جنو" .
  99. "NEWS.18" .
  100. "NEWS.18" . يمكن الآن توجيه البرامج مثل برامج البريد الإلكتروني التي تستدعي "المحرر" كعملية فرعية لتحرير بعض النصوص لاستخدام عملية Emacs موجودة بدلاً من إنشاء محرر جديد.
  101. 1 2 "NEWS.1–17" .
  102. "Xemacs Internals" .

للمزيد من القراءة