Emacs

Emacs או EMACS (ראשי תיבות: Editor MACroS; בעברית: אִימֶקְס) היא משפחה של עורכי טקסט שנודעו בעיקר בזכות האפשרות להרחיב אותם לשימושים חדשים. רק גרסה אחת, זו המכונה GNU Emacs (בעברית יש לבטא גְנוּ אִימֶקְס), שנוצרה על ידי ריצ'רד סטולמן עבור מיזם GNU, נפוצה עדיין בשימוש ולמעשה נחשבת לתוכנה החופשית הוותיקה ביותר בפיתוח פעיל. Emacs זמינה במגוון רחב מאוד של מערכות הפעלה (היסטוריות ומודרניות) וזכתה למעמד מיתולוגי בקהילת התוכנה החופשית והקוד הפתוח, בין השאר בזכות היותה צד ב"מלחמת העורכים" המיתולוגית בינה לעורך טקסט חופשי ותיק אחר, vi. הפיתוח של Emacs החל בשנות ה-70 במעבדת מדעי המחשב וה-AI של MIT. התוכנה זכתה מאז לקהל גדול ונאמן מאוד של מתכנתים ברחבי העולם וסטולמן נותר מעורב בפיתוחה. חלקים של Emacs נכתבו בשפת C, אך ליבתו של העורך היא מפרש עבור ניב של שפת התכנות Lisp הנקרא Emacs Lisp. בשפה זו נכתבות מרבית ההרחבות השונות. Emacs זמינה עבור מערכות הפעלה היסטוריות ומודרניות רבות, בהן במיוחד לינוקס, חלונות ו-macOS וכן גרסאות שונות של מערכות BSD, סולאריס ואחרות. במהלך השנים הפרויקט, לו תרמו רבבות מתכנתים מרחבי העולם, פוצל למספר גרסאות שנועדו לספק את צורכיהם של המשתמשים השונים. בולטת במיוחד XEmacs (שנקראה תחילה Lucid Emacs), אשר הייתה הגרסה הראשונה של Emacs עבורה פותח ממשק גרפי לשימוש במערכת X11. XEmacs, להבדיל מ-GNU Emacs, איננה נמצאת בפיתוח פעיל. בעקבות יצירת הגרסה המתחרה החל סטולמן להבחין בין הגרסה המקורית ו"חיקוייה" על ידי כתיבת השם המקורי כ-"Emacs" בעוד שהשם "emacs" התייחס לגרסאות אחרות. הפיתוח של GNU Emacs נמשך גם כיום. גרסה 29.2 שוחררה בינואר 2024. יכולת ההרחבה וההתאמה של Emacs למשימות שונות היא אחת התכונות החשובות והמוכרות ביותר של העורך. הוא מופץ בדרך כלל בליווי מגוון הרחבות – בהן מנהל קבצים (dired), קורא דואר אלקטרוני וקבוצות דיון (gnus), דפדפן אינטרנט (eww) ועוד. Emacs בשימוש בראש ובראשונה כעורך קוד מקור. לצורך זה הוא כולל תמיכה מובנית בשפות קוד רבות. תמיכה עבור שפות קוד חדשות זמינה באמצעות הרחבות צד-שלישי. Emacs משנה את התנהגותו בהתאם לסוג הקובץ שהמשתמשים עורכים ברגע נתון, זאת על ידי מעבר אוטומטי מ"מצב עריכה" (mode) אחד לאחר. מצבי העריכה הבסיסיים ביותר הם של קובץ טקסט פשוט, קובץ HTML וכיוצא בזה. התמיכה בשפות התכנות השונות כוללת התאמה לצורת העימוד (indentation), צביעת התחביר (highlighting) וגישה לכלים ועזרים שונים בשימוש בפיתוח בכל שפה. Emacs מתאימה מאוד גם לעריכת מסמכים. היא תומכת בשפות רבות, בהן גם שפות הנכתבות מימין לשמאל, כמו עברית, ערבית, פרסית, או אמהרית, אבל גם שפות שאינן מבוססות על מערכות כתב או אלפבית לטיני, כמו רוסית, יוונית, יפנית, קוריאנית, תאית, וייטנאמית, וכן מספר מערכות כתב בשימוש על ידי עמים ילידים ביבשת אמריקה. קיצורי המקשים המקובלים ב-Emacs הפכו בעצמם פופולריים גם בקרב משתמשי מערכות הפעלה מבוססות יוניקס, והם מוצעים גם כאפשרות לבחירת המשתמשים, הן ברמת מערכת ההפעלה, או כתכונה בעורכי טקסט ותוכנות שונים. עורכי טקסט שפותחו בהשראת Emacs, כגון QEmacs ו־Zile (ראשי תיבות של Zile Is Lossy Emacs), הם דוגמאות בולטות. מלבד גמישות רבה בהתאמה אישית, הן תכנותית והן דרך מערכת ניהול הגדרות התאמה מובנית, Emacs נודע גם כעורך קוד הכולל בתוכו תיעוד מגוון ועשיר. כמעט כל היבט של Emacs ניתן להתאמה אישית. משתמשים יוצרים קובץ תצורה .emacs או emacs.el או init.el (הנקודה הכרחית ומציינת קובץ ניסתר במערכת הקבצים) אותם הם שומרים בספריית הבית, או בספרייה .emacs.d או .config/emacs/ (במערכות מבוססות לינוקס) הנקרא על ידי Emacs בעת ההפעלה, וההוראות המצויות בו מבוצעות זו אחר זו. קובץ התצורה מאפשר לקבוע הגדרות מערכת שונות מברירת המחדל (למשל שיטת קידוד הקבצים המועדפת) ולהפעיל הרחבות שונות, בהתאם לצורך. בקובץ זה ניתן לתאר מקשי קיצור להפעלת פונקציות מערכת או פקודות, לבחור את ערכת הצבעים בשימוש, או להגדיר אילו פעולות יבוצעו בתגובה לאירועים שונים. למשל, ניתן לקבוע כי לפני שמירת הקובץ Emacs ינקה מהקובץ תווים מיותרים. לנוחיותם של משתמשים המעדיפים זאת ניתן להשתמש במערכת "customize" המובנה ב-Emacs ומספקת ממשק ויזואלי לעריכת ההגדרות השונות. השינויים נשמרים בסופו של קובץ התצורה הראשי באופן אוטומטי, או בקובץ נפרד. הפולקלור הרווח בקרב משתמשי Emacs הוא שעיקר הזמן של המשתמשים בו מוקדש לניהול התצורה ולהתאמה אישית. הגמישות האינסופית לכאורה נובעת מהאופן בו נבנתה Emacs ומהיתרונות שמציעה שפת Emacs Lisp, שהיא שפת ניהול התצורה. השימוש בשפה זו מחייב ידע מוקדם ומיומנות. כתוצאה מכך קהילת המשתמשים יצרה במהלך השנים "ערכות" תצורה, שאפשרו למשתמשים להעתיק קובץ אחד או יותר למערכת ההפעלה שלהם ועל ידי כך לאמץ את גישת המפתחים שיצרו את הערכה, במקום להמציא את הגלגל מחדש. הבולטות בדור החדש של ערכות התצורה כיום הן Spacemacs, ו-Doom Emacs, המפותחות ומתוחזקות על ידי קהילת מתנדבים, בנפרד מפרויקט Emacs. כנסיית Emacs, שהוקמה על ידי ריצ'רד סטולמן, היא דת פארודית שנוצרה עבור משתמשי Emacs. בעוד שהיא מתייחסת ל-vi כדבר חייתי (vi-vi-vi הוא 6-6-6 בספרות רומיות), היא אינה מתנגדת לשימוש ב-vi; במקום זאת, היא מכנה את vi תוכנה קניינית ארורה. ("שימוש בגרסה חופשית של vi אינו חטא אלא תשובה"). לכנסיית Emacs יש קבוצת דיון משלה, alt.religion.emacs, שיש בה פוסטים המתיימרים לתמוך בדת הפארודית הזו. תומכי vi יצרו פולחן vi המתנגד לכנסיית Emacs. סטולמן כינה את עצמו בצחוק כאל סנט איגנוציוס (I GNU cius), קדוש בכנסיית Emacs. זאת בהתייחסות לאיגנאטיוס מאנטיוכיה, אב כנסייה מוקדם ונחשב בנצרות. Emacs Lisp Org-mode מדיה וקבצים בנושא Emacs בוויקישיתוף אתר הבית של אימאקס gnu.org, www.gnu.org Multics Emacs History/Design/Implementation, www.multicians.org Emacs Timeline, www.jwz.org Emacs 29.2 released, lists.gnu.org A Tutorial Introduction to Emacs, www2.lib.uchicago.edu Spacemacs: Emacs advanced Kit focused on Evil, www.spacemacs.org Documentation - Doom Emacs v21.08 documentation, docs.doomemacs.org Saint IGNUcius - Richard Stallman, stallman.org The unabridged selective transcript of Richard M Stallman's talk at the ANU | All about Linux, web.archive.org, ‏2011-10-04