إيماكس 101 : مُقدمة إلى إيماكس

2020-02-16

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

ما هو إيماكس؟

إيماكس هو تطبيق حاسوب حرّ ومفتوح المصدر، يُصنّف ضمن فئة "مُحرّرات النصوص"، أي تمامًا مثلما يمكن تصنيف تطبيق "المفكرة" في ويندوز، أو gedit في لينكس. لكن بغض النظر عن تصنيفه أو تعريفه كمحرر نصوص، سنجد مع الوقت أنه يمكن اعتبار إيماكس واجهة استخدام للحاسوب، نصيّة التوجه، قابلة للبرمجة. بعبارة أخرى تكون المقارنة بين إيماكس وطرفية Bash أدق من المقارنة بين إيماكس ومحرر VS Code من مايكروسوفت. حاليًا لا يهم تمامًا ما الذي تعنيه العبارة السابقة، ويمكننا المتابعة بآمان مع اعتبار إيماكس محرّرًا نصيّا "متفوقًا".

تُشير كلمة Emacs في الحقيقة إلى مجموعة من مُحررات النصوص التي تجمعها القدرة على التمديد والتخصيص، أشهر هذه المحررات هو غنو إيماكس والذي يُشار إليه اليوم اختصارًا بإيماكس. الإصدار الأولي أطلق عام 1985 من قبل ريتشارد ستولمن كأداة ضمن مشروع غنو، لكتابة نظام تشغيل حرّ ومفتوح المصدر.

هذا التاريخ الطويل أورث إيماكس مجموعة من الخصائص، التي قد يرغب البعض بتصنيفها إلى إيجابيات وسلبيات. من بين تلك "السلبيات" اختصارات لوحة المفاتيح الافتراضية. والتي تختلف كلّ الاختلاف عما نألفه من برامج هذه الأيام. مثلا الضغط على Ctrl + C لن ينسخ نصًا إلى الحافظة، كما أن الضغط على Ctrl + V لن يلصق نصًا منها. هذا سيكون مربكًا خلال الشهر الأول من التعلم. ما يدفع البعض إلى تعديل هذا السلوك الافتراضي لمحاكاة الاختصارات المألوفة.

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

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

لِمن هذه السلسلة

هذه السلسلة مناسبة جدًا لـ:

  • الأشخاص الذين يعتمدون في عملهم كثيرًا على تحرير النصوص. مثل الكُتّاب، المحرّرين، المترجمين إلخ.
  • المبرمجين. رغم أنهم يندرجون في التصنيف السابق لكن وجب التخصيص :)
  • من يرغب بتعلم كيفية استخدام الحاسوب من خلال واجهة نصيّة.
  • من يرغب بتعلّم واحد من أشهر البرمجيات الحرّة على الإطلاق.

هذه السلسلة ليست موجهّة للمبرمجين أو التقنيين في الأصل، بل كُتبت بوضع المحررين في الاعتبار الأوّل. البرمجة باستخدام إيماكس ستكون سلسلة لاحقة ومستقلة

إن كنتَ ممن:

  • لا يرغب بحفظ اختصارات لوحة المفاتيح.
  • و \ أو تُفضّل الأيقونات والقوائم والرسوميات في التعامل مع التطبيقات.

فقد تواجه صعوبة في تعلّم ايماكس:

كيف يبدو إيماكس؟

بشكلٍ افتراضي هذا ما يبدو عليه البرنامج فور تثبيته:

../images/2020/emacs.png

تثبيت إيماكس

يتوفر محرّر إيماكس لمنصات ويندوز، لينكس، وماك أوإس. فقط اتبع الطريقة الملائمة لنظام الشتغيل الذي تستخدمه. هذه السلسلة سوف تعتمد على الإصدارة 26.3، لكن معظم ما سيأتي فيها سيكون متوافق مع الإصدارات الأقدم، لا سيما الإصدار 25.1

المصطلحات الأساسية

فيما يلي شرح مُبسّط لأهم المصطلحات التي سنتعامل معها خلال هذه السلسلة. سأذكر هنا المقابل الإنكليزي لكل واحدٍ منها، لكن غالبًا ما سأكتفي لاحقًا بذكر المرادف العربي أو كتابة المصطلح بأحرف عربية.

البفر Buffer: تقنيًا؛ البفر هو مخزن الذاكرة الذي يحجزه إيماكس لعرض محتويات ملف، أو عملية، أو برنامج. على سبيل المثال، يؤدّي فتح ملف من جهاز الكمبيوتر إلى نسخ محتوياته إلى بفر جديد. عمليات التحرير والتعديل على النصّ تتم ضمن البفر. لاحقًا عندما نكون راضيين عن العمل الذي قمنا به، يمكننا حفظ الملف، والذي سيعني نسخ محتويات البفر إلى الملف من جديد.

الإطار Frame: هو ما نُسميّه في لغة الحوسبة الحديثة النافذة. فمثلًا فتح إطاري إيماكس يعني وجود نافذتين مستقلتين.

النافذة Window: هي الإطار الداخلي الذي يحمل البفر في إيماكس. يمكن ضمن إيماكس فتح بفرين إثنين (أو أكثر) جنبًا إلى جنب (مثلا لمقارنة بعض النصوص مع بعضها). كل إطار داخلي منها يُدعى نافذة بلغة إيماكس. ضمن هذه السلسلة كلما ذُكر إطار أو نافذة فسيكون المقصود بهما التعريف الخاص بإيماكس.

شريط الوضع Modeline: هو شريط يعرض معلومات منوّعة حول البفر قيد التشغيل. عادةً ما يُسمى بباقي البرامج بشريط الحالة Status Bar.

ميني بفر Minibuffer: هي المنطقة السفلية في ايماكس والتي يمكن من خلالها تنفيذ الأوامر (مثل فتح ملف) واستقبال تغذية راجعة من ايماكس عنها.

مؤشر الكتابة Point: عادةً ما يُشار لمؤشر الكتابة بباقي البرامج باسم Cursor.

التصفية Killing: يُقصد بها قص النصوص أو نسخها. أو إغلاق البفر نهائيًا من إطار إيماكس. يتضح المعنى المقصود حسب السياق.

السحب Yanking: يعني لصق النصوص. والمقصود هنا؛ سحب النص إلى البفر الحالي في المكان الذي يقف فيه مؤشر الكتابة.

الوضع الرئيس Major Mode: لكل بفر وضعٌ رئيسٌ وحيد. ويُقصد به مجموعة الخصائص والأوامر المتاحة ضمن بفر ما. مثلا عند فتح ملف نصيّ سيحصل البفر على الوضع الرئيس Text Mode وعند زيارة ملف ماركداون سيكون وضعه الرئيس Markdown Mode. إيماكس يختار الوضع الرئيس تلقائيًا بناءً على لاحقة الملف وبعض المعايير الأخرى.

الوضع الثانوي Minor Mode: يُقصد به ميزة ثانوية يُمكن تشغيلها أو إبطالها في أي بفر. يمكن تشغيل عشرات الأوضاع الثانوية سويةً ضمن البفر الواحد. مثلا إظهار أرقام الأسطر في المُحرر يُعتبر وضعًا ثانوي.

في الدرس القادم سنبدأ بتعلم الاختصارات الرئيسية للحركة وتعديل النصوص.

comments powered by Disqus