123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020 |
- שיעור ראשון בשימוש ב־Emacs. זכויות שימוש ראה בסוף המסמך.
- פקודות רבות של Emacs משתמשות במקש CONTROL (לפעמים הוא מסומן ב־CTRL או CTL)
- או במקש META (לפעמים מסומן EDIT או ALT). במקום לציין את כל השמות האפשריים
- בכל פעם, נשתמש בקיצורים הבאים:
- <תו>-C משמעותו לחץ והחזק מקש CONTROL ואז הקש על מקש <תו>.
- לדוגמא, C-f משמעותו: לחץ והחזק CONTROL והקש על f.
- <תו>-M משמעותו לחץ והחזק מקש META או EDIT או ALT ואז הקש על מקש <תו>.
- אם במקלדת אין אף אחד ממקשי META או EDIT או ALT, אפשר להקיש
- ולשחרר מקש ESC ואז להקיש <תו>. אנו נכתוב <ESC> עבור מקש ESC.
- הערה חשובה: כדי לצאת מ־Emacs יש להקיש C-x C-c (שני תוים, משמאל לימין).
- כדי להפסיק פקודה באמצע ההקשה, יש להקיש C-g.
- המחרוזת ">>" בקצה הימני מסמנת הוראות עבורכם כדי לנסות להשתמש בפקודה כלשהי.
- לדוגמה:
- <<שורות ריקות תתווספנה סביב השורה הבאה ע"י help-with-tutorial>>
- [אמצע העמוד הושאר ריק למטרות לימודיות. הטקסט ממשיך להלן]
- >> הקישו עתה C-v (הצג העמוד הבא) על־מנת להתקדם לעמוד הבא. (קדימה, נסו
- זאת ע"י לחיצה והחזקה של מקש CONTROL והקשה על v.)
- מעתה והלאה, עליכם לעשות זאת בכל פעם שתסיימו לקרוא את המוצג על המסך.
- שימו לב לחפיפה של שתי שורות כאשר אתם עוברים ממסך למשך, מה שמבטיח רציפות
- מסוימת בעת קריאת הטקסט.
- דבר ראשון שעליכם ללמוד הוא כיצד לנוע ממקום אחד למשנהו בתוך הטקסט. אתם
- כבר יודעים כיצד להתקדם לעמוד הבא, עם C-v. לחזרה לעמוד הקודם הקישו M-v
- (החזיקו מקש META והקישו v או הקישו <ESC>v אם אין במקלדת מקש META
- או EDIT או ALT).
- >> נסו עתה כמה פעמים להקיש M-v ואחר־כך C-v.
- * סיכום עד כאן
- --------------
- לשם תנועה בעמודים שלמים וצפייה בהם, השתמשו בפקודות הבאות:
- C-v התקדם לעמוד הבא
- M-v חזור לעמוד הקודם
- C-l נקה תצוגה והצג מחדש את הטקסט,
- כך שהטקסט ליד הסמן יימצא במרכז התצוגה
- (שימו לב: CONTROL-L ולא CONTROL-1.)
- >> מצאו את הסמן על־גבי התצוגה וזכרו את הטקסט לידו. לאחר מכן הקישו C-l.
- מצאו את הסמן שנית ושימו לב שהוא עדיין ליד אותו הטקסט, אבל עכשיו
- הוא במרכז התצוגה.
- אם תקישו C-l שוב, קטע הטקסט הזה יזוז לקצה העליון של התצוגה. הקישו
- C-l שוב והוא יזוז לתחתית התצוגה.
- גם מקשי PageUp ו־PageDn, אם הם קיימים במקלדת שלכם, יכולים לשמש לתנועה
- בעמודים שלמים, אולם השימוש ב־C-v ו־M-v יעיל יותר.
- * תנועת סמן בסיסית
- ------------------
- תנועה בעמודים שלמים הינה שימושית, אבל כיצד ניתן להגיע למקום ספציפי
- בתוך הטקסט שעל־גבי התצוגה?
- ניתן לעשות זאת בכמה דרכים. אפשר למשל להשתמש במקשי החצים, אולם יהיה
- זה יעיל יותר אם תחזיקו את הידיים מעל החלק הסטנדרטי של המקלדת ותשתמשו
- בפקודות C-p, C-b, C-f ו־C-n. פקודות אלו שוות ערך לארבעת מקשי החצים,
- כדלקמן:
- שורה קודמת, C-p
- :
- :
- קדימה, C-f ... מיקום סמן נוכחי ... אחורה, C-b
- :
- :
- השורה הבאה, C-n
- >> השתמשו במקשי C-n ו־C-p על־מנת להגיע לשורה האמצעית של הדיאגרמה.
- הקישו C-l כדי למרכז את הדיאגרמה על־גבי התצוגה.
- קל יותר לזכור את המקשים הללו באמצעות המלים שהם מייצגים:
- P מ־previous (קודם), N מ־Next (הבא), B מ־Backward (אחורה)
- ו־F מ־Forward (קדימה). מקשי התנועה הבסיסיים הללו ישמשו אתכם כל הזמן.
- >> הקישו C-n כמה פעמים כדי למקם את הסמן בשורה זו.
- >> הניעו את הסמן בתוך השורה עם C-f ואחר־כך למעלה עם C-p.
- שימו לב מה עושה C-p כאשר הסמן נמצא באמצע השורה.
- כל שורה של טקטס מסתיימת בתו מיוחד הנקרא Newline. תו זה מפריד בין
- השורה לזו שאחריה. (בדרך כלל, השורה האחרונה בקובץ תסתיים אף היא
- ב־Newline, אך Emacs אינו זקוק לכך.)
- >> נסו C-b בתחילת שורה. הוא יגרום לסמן לנוע לסוף השורה הקודמת. זאת,
- משום שהוא נע אחורה וחולף על־פני תו ה־Newline.
- גם C-f יכול לחלוף על־פני Newline, בדיוק כמו C-b.
- >> הקישו C-b עוד כמה פעמים כדי לקבל הרגשה היכן נמצא הסמן.
- עתה הקישו C-f מספר פעמים הדרוש לשוב לסוף השורה. ואז הקישו
- C-f עוד פעם אחת כדי לנוע לתחילת השורה הבאה.
- כשהסמן יוצא מגבולות הטקסט המוצג, חלקי הטקסט מעבר לחלק המוצג נכנסים
- לתצוגה. לזה קוראים "גלילה". גלילה מאפשרת ל־Emacs להניע את הסמן למקום
- כלשהו בטקסט מבלי שהסמן ייעלם מהתצוגה.
- >> נסו להניע את הסמן אל מחוץ לתצוגה ע"י הקשת C-n ושימו לב למה שקורה.
- אם תנועה תו־תו איטית מדי, תוכלו לנוע מילים שלמות. M-f (META-f) מזיז
- את הסמן מילה אחת קדימה ואילו M-b זז מילה אחורה.
- >> הקישו M-f ו־M-b מספר פעמים.
- אם הסמן נמצא באמצע מילה, M-f זז לסוף המילה. אם הסמן נמצא בין שתי מלים,
- M-f עובר את המילה הבאה ונעצר בסופה. M-b פועל באופן דומה בכיוון הפוך.
- >> הקישו עתה M-f ו־M-b פעמים אחדות, וגם C-f ו־C-b פה ושם כדי שתוכלו
- להתרשם מהתוצאה של M-f ו־M-b במקומות שונים בתוך ובין המלים.
- שימו לב להקבלה שבין C-f ו־C-b מצד אחד ו־M-f ו־M-b מהצד השני. לעתים
- קרובות מאד מקשים עם META משמשים לפעולות הקשורות ליחידות של שפה (מלים,
- משפטים, פסקאות) ואילו מקשים עם CONTROL פועלים על יחידות בסיסיות שאינן
- תלויות בסוג הטקסט שהינכך עורכים (תוים, שורות, וכד').
- ההקבלה הזאת קיימת גם לגבי שורות ומשפטים: C-a ו־C-e נעים לתחילת השורה
- וסופה, בהתאמה, ואילו M-a ו־M-e נעים לתחילת המשפט וסופו.
- >> נסו עתה שתי הקשות על C-a ואחר־כך שתי הקשות על C-e.
- נסו שני M-a ואחר־כך שני M-e.
- שימו לב שחזרה על C-a אינה עושה דבר, ואילו כל הקשה חוזרת על M-a מניעה
- את הסמן במשפט נוסף. אמנם אין כאן אנלוגיה מושלמת, אבל התוצאה נראית
- טבעית בשני המקרים.
- מקום הסמן בתוך הטקסט נקרא "point" ("נקודה"). במלים אחרות, הסמן מראה
- את מיקומו של "point" בתוך הטקסט.
- הנה סיכום של פקודות פשוטות להנעת הסמן, כולל פקודות שנעות במלים
- ומשפטים שלמים:
- C-f נוע תו אחד קדימה
- C-b נוע תו אחד אחורה
- M-f נוע מילה קדימה
- M-b נוע מילה אחורה
- C-n נוע לשורה הבאה
- C-p נוע לשורה הקודמת
- C-a נוע לתחילת השורה
- C-e נוע לסוף השורה
- M-a נוע קדימה לסוף המשפט
- M-e נוע אחורה לתחילת המשפט
- >> נסו את כל הפקודות הללו מספר פעמים, לשם תרגול.
- אלו הן הפקודות הנפוצות ביותר.
- שתי פקודות תנועה חשובות אחרת הן M-< (META פחות), אשר נעה לתחילת
- הטקסט, ו־M-> (META יותר), אשר נעה לסוף הטקסט.
- ברוב המקלדות המקש ">" נמצא מעל הפסיק, לכן כדי להקישו יש צורך ללחוץ
- ולהחזיק מקש Shift. באופן דומה יש ללחוץ על Shift כדי להקיש M-< כי
- אחרת היה יוצא M-פסיק.
- >> נסו עתה M-< כדי להגיע לתחילת השיעור.
- אחר־כך הקישו C-v מספר פעמים, עד שתגיעו לכאן.
- >> עכשיו נסו M-> כדי להגיע לסוף השיעור.
- לאחר מכן הקישו M-v כמה פעמים כדי לחזור לכאן.
- ניתן להזיז את הסמן גם בעזרת מקשי החצים, אם הם קיימים במקלדת שלכם.
- אבל אנחנו ממליצים ללמוד להשתמש ב־C-b, C-f, C-n ו־C-p משלוש סיבות.
- קודם כל, הם יעבדו עם כל מקלדת. שנית, כשתתרגלו לעבוד עם Emacs, תראו
- כי השימוש במקשים אלו מהיר יותר מהשימוש בחצים (מכיון שאין צורך להזיז
- את היד מהחלק העיקרי של המקלדת). ושלישית, כשהמקשים הללו יהפכו להרגל,
- יהיה לכם קל יותר ללמוד פקודות מתקדמות יותר של תנועת הסמן.
- רוב הפקודות של Emacs מקבלות ארגומנט נומרי; עבור רוב הפקודות הארגומנט
- משמש כמונה של מספר החזרות על הפקודה. כדי לספק ארגומנט לפקודה, יש להקיש
- C-u ואחר־כך ספרות, וזאת לפני שמקישים את הפקודה עצמה. עם במקלדת קיים
- מקש META (או EDIT או ALT), יש גם אפשרות אחרת לציין ארגומנט נומרי:
- הקישו את הספרות תוך כדי החזקת מקש META. אנו ממליצים על C-u משום שהוא
- יעבוד עם כל מקלדת. הארגומנט הנומרי נקרא גם "ארגומנט קידומת" (prefix
- argument) משום מקישים אותו לפני הפקודה אליה הוא מתייחס.
- למשל, C-u 8 C-f מניע את הסמן 8 תוים קדימה.
- >> נסו להקיש C-n או C-p עם ארגומנט נומרי, כדי להזיז את הסמן אל שורה
- מסוימת בפקודה אחת בלבד.
- רוב הפקודות מפרשות את הארגומנט הנומרי כמונה חזרות, אבל פקודות מסוימות
- משתמשות בו בצורות אחרות. כמה פקודות (אבל אף אחת מבין אלו שלמדנו עד כה)
- משתמשות בו כדגלון -- נוכחותו של הארגומנט, ללא קשר לערכו המספרי, גורמת
- לפקודה להתנהג קצת אחרת.
- C-v ו־M-v יוצאים מהכלל הזה באופן אחר. כשפקודות אלו מקבלות ארגומנט,
- הן גוללים את התצוגה כמספר הזה של שורות, ולא בדפים. למשל, C-u 8 C-v
- יגלול את התצוגה ב־8 שורות.
- >> נסו עתה להקיש C-u 8 C-v.
- כתוצאה, התצוגה היתה צריכה לזוז ב־8 שורות. אם ברצונכם לגלול בחזרה,
- אפשר להשיג זאת ע"י מתן ארגומנט ל־M-v.
- אם הפעלתם את Emacs על־גבי תצוגה גרפית כגון X או MS-Windows, אתם
- צריכים לראות פס צר וגבוה, ששמו פס גלילה (scroll bar) בצידו של החלון
- של Emacs. ניתן לגלול את הטקסט ע"י הקלקת עכבר בתוך פס הגלילה.
- אם העכבר שלכם מצויד בגלגל, תוכלו להשתמש גם בו לגלילת הטקסט.
- * אם Emacs מפסיק להגיב
- ----------------------
- אם Emacs מפסיק להגיב לפקודות, תוכלו להפסיק אותו בבטחה ע"י הקשת C-g.
- פקודות שביצוען מתארך אף הן ניתנות להפסקה בעזרת C-g.
- בנוסף, תגרום הקשת C-g לביטול הארגומנט הנומרי או תחילת הפקודה שטרם
- השלמתם להקיש והתחרטתם.
- >> הקישו C-u 100 כדי לציין ארגומנט של 100, ולאחר מכן C-g. עתה הקישו
- C-f. הוא צריך לנוע תו אחד בלבד, שכן ביטלתם את הארגומנט בעזרת C-g.
- אם הקשתם <ESC> בטעות, ניתן לבטלו בעזרת C-g.
- * פקודות מנוטרלות
- -----------------
- מספר פקודות ב־Emacs מנוטרלות בכוונה כדי שמשתמשים מתחילים לא יפעילו
- אותן בדרך מקרה.
- אם תקישו את אחת הפקודות הללו, Emacs יציג הודעה המתארת את הפקודה וישאל
- אם לבצע את הפקודה או לבטלה.
- אם אכן בכוונתכם לנסות את הפקודה, הקישו <SPC> (מקש הרווח) בתשובה לשאלה.
- בדרך כלל, אם אינכם מעוניינים לבצע את הפקודה המנוטרלת, הקישו "n" בתשובה
- לשאלה הזו.
- * חלונות
- --------
- תצוגת Emacs יכולה לכלול יותר מחלון אחד, כשכל אחד מהם מציג טקסט משלו.
- מאוחר יותר נסביר כיצד להשתמש בחלונות מרובים. כעת ברצוננו להסביר כיצד
- להפטר מחלונות מנותרים ולחזור לעריכה בחלון יחיד. אין דבר פשוט מזה:
- C-x 1 חלון אחד בלבד (כלומר, סגור את כל החלונות האחרים).
- כדי להפעיל פקודה זו, הקישו CONTROL-x ולאחריו את הספרה 1. הפקודה C-x 1
- מרחיבה את החלון המציג את הסמן כך שהוא תופס את כל שטח התצוגה. הפקודה
- מבטלת את שאר החלונות.
- >> הניעו את הסמן לתוך שורה זו והקישו C-u 0 C-l.
- >> עתה הקישו C-h k C-f.
- שימו לב כיצד החלון הנוכחי מצטמצם ומופיע חלון חדש שבו מוצג
- התיעוד של הפקודה C-f.
- >> הקישו C-x 1 ושימו לב שהחלון עם ההסבר על C-f נעלם.
- פקודה זו שונה מכל שאר הפקודות שלמדנו עד כה בכך שהיא מכילה שני תוים.
- היא מתחילה עם התו CONTROL-x. פקודות רבות מאד מתחילות ב־CONTROL-x; חלק
- גדול מהן עוסקות בחלונות, קבצים, חוצצים ונושאים דומים אחרים. פקודות אלו
- מכילות שנים, שלושה ואפילו ארבעה תוים.
- * הכנסה ומחיקה
- --------------
- אם ברצונכם להכניס טקסט, פשוט הקישו על המקשים המתאימים. תוים רגילים,
- כגון A, א, 7, * וכד' מיד מתווספים לטקסט הקיים. הקישו <Return> (מקש
- חזרת גרר שלעתים נהוג לקרוא לו "Enter") כדי להכניס את תו השורה החדשה
- (Newline).
- למחיקת התו האחרון שהקשתם הקישו <DEL>. בדרך כלל זהו מקש שמסומן
- ב־"Backspace", והוא משמש אתכם למחיקת התו אחרון גם בתוכניות אחרות, לא
- רק ב־Emacs.
- יתכן שבמקלדת שלכם קיים מקש שעליו רשום <Delete>, אך זה אינו המקש שאנו
- קוראים לו <DEL>.
- >> הקישו עתה מספר תוים, ואחר־כך מחקו אותם ע"י הקשות אחדות
- על <DEL>. אל תחששו לשנות את הקובץ הזה -- העותק המקורי
- של השיעור יישאר ללא שינוי. אתם עובדים על העותק האישי שלכם.
- כאשר שורה של טקסט נעשית ארוכה משורה אחת של תצוגה, חלק מהטקסט ממשיך
- בשורת תצוגה נוספת, היא "שורת ההמשך". על תצוגה גרפית יופיע חץ עקלקל קטן
- באזור השוליים -- "fringe" שמסמל כי לשורה יש שורת המשך, ואילו על תצוגה
- טקסטואלית יופיע תו לוכסן ("/") לאותה תכלית בסוף השורה.
- >> הקישו טקסט עד שתגיעו לקצה השורה, ואז תמשיכו להקיש עוד טקסט.
- כתוצאה, תראו שמופיעה שורת המשך.
- >> עתה הקישו <DEL> על־מנת למחוק טקסט עד שהשורה תיעשה קצרה מספיק
- ותתאים לשורה בודדת על־גבי התצוגה. שורת ההמשך תיעלם.
- ניתן למחוק את תו ה־Newline כמו כל תו אחר. מחיקת ה־Newline בין שתי
- שורות תמזג את השורות לשורה אחת. אם השורה המשולבת תהיה ארוכה מרוחב
- התצוגה, היא תוצג עם שורת המשך.
- >> הניעו את הסמן לתחילת השורה והקישו <DEL>. כתוצאה, השורה תתמזג
- אם קודמתה.
- >> עתה הקישו <Return> כדי להחזיר את ה־Newline שמחקתם.
- זכרו כי לרוב הפקודות ב־Emacs אפשר לציין מספר חזרות. גם תוי טקסט
- שייכים לקבוצת פקודות זו. חזרה על תו טקסט מכניסה אותו מספר פעמים.
- >> נסו זאת עכשיו -- הקישו C-u 8 * על־מנת להכניס ********.
- ובכן, למדתם את האופן הבסיסי ביותר להדפיס משהו ב־Emacs ולתקן שגיאות.
- אפשר למחוק גם מלים ואף שורות שלמות. להלן סיכום פקודות המחיקה:
- <DEL> מחק תו שלפני הסמן
- C-d מחק תו מתחת או אחרי הסמן
- M-<DEL> גזור מילה שלפני הסמן
- M-d גזור מילה שאחרי הסמן
- C-k גזור טקסט מהסמן ועד סוף השורה
- M-k גזור טקסט עד סוף המשפט הנוכחי.
- שימו לב שהיחס בין <DEL> ו־C-d לעומת M-<DEL> ו־M-d ממשיכים את ההקבלה
- שבין C-f ו־M-f (אמנם <DEL> איננו תו בקרה, אבל בוא נזניח את הנקודה הזו
- לעת־עתה). C-k ו־M-k דומים ל־C-e ו־M-e, אם נקביל שורות למשפטים.
- בנוסף, קיימת שיטה אחידה שמאפשרת לגזור קטע כלשהו של טקסט. לשם כך, תגיעו
- לקצה האחד של חלק הטקסט והקישו C-<SPC>. (<SPC> הוא מקש הרווח.) עתה
- הניעו את הסמן לקצה השני של חלק הטקסט אשר ברצונכם לגזור. תוך כדי תנועת
- הסמן Emacs צובע את הטקסט בין הסמן לבין המקום בו הקשתם C-<SPC>. לבסוף,
- הקישו C-w. כתוצאה, כל הטקסט בין שני המקומות הללו ייגזר.
- >> הניעו את הסמן אל האות ב בתחילת הפיסקה הקודמת.
- >> הקישו C-<SPC>. Emacs צריך להציג הודעה האומרת "Mark set" בתחתית
- התצוגה.
- >> הניעו את הסמן אל האות צ בשורה השניה של הפיסקה.
- >> הקישו C-w. בכך תגזרו את חלק הטקסט שמתחיל ב־ב ומסתיים לפני ה־צ.
- ההבדל בין "מחיקה" ("deletion") ו־"גזירה" ("killing") הוא שהטקסט
- "הגזור" ניתן לאחזור ולהכנסה (במקום כלשהוא בטקסט), ואילו טקסט "מחוק" לא
- ניתן להכניס מחדש בשיטה זו. (אבל ניתן לבטל את מחיקה -- ראה להלן.) אחזור
- הטקסט הגזור נקרא "הדבקה" ("yanking"). באופן כללי, פקודות אשר עלולות
- להעלים כמויות גדולות של טקסט תמיד גוזרות את הטקסט (כך שניתן יהיה בקלות
- לשחזרו) בעוד הפקודות שמורידות תו בודד או שורות ריקות ותוי רווח --
- מוחקות (כך שלא ניתן להדביק את הטקסט שנמחק). כך, <DEL> ו־C-d מוחקים
- כאשר מפעילים אותם ללא ארגומנט, אבל גוזרים כאשר מפעילים אותם עם ארגומנט.
- >> הניעו את הסמן לתחילת שורה שאינה ריקה. אחר־כך הקישו C-k כדי לגזור
- את כל הטקסט של אותה שורה.
- >> הקישו C-k פעם נוספת. שימו לב שהוא גוזר את ה־Newline שבסוף השורה.
- שימו לב ש־C-k בודד גוזר את תכולת השורה, ו־C-k נוסף גוזר גם את השורה
- עצמה וגורם לשאר השורות לנוע כלפי מעלה. C-k מפרש את הארגומנט הנומרי
- באופן מיוחד: הוא גוזר כמספר הזה שורות, כולל ה־Newlines שלהן. זה שונה
- מסתם הפעלה חוזרת: C-u 2 C-k גוזר שתי שורות כולל ה־Newlines שלהן,
- ואילו הקשה על C-k פעמיים לא עושה כן.
- אחזור הטקסט שגזרנו נקרא "הדבקה" ("yanking"). (תחשבו על זה כעל שליפה
- של טקסט מתהום הנשייה אליה הוא נלקח.) ניתן להדביק את הטקסט שגזרתם
- באותו מקום ממנו נגזר או במקום אחר כלשהו בתוך הטקסט שאתם עורכים, או
- אפילו בקובץ אחר. ניתן להדביק את אותו הטקסט מספר פעמים ובכך ליצור
- עותקים מרובים ממנו. תוכניות עריכה אחרות משתמשות במונחים "cutting"
- ו־"pasting" במקום "killing" ו־"yanking" (ראה את מילון המונחים בפרק
- ה־"Glossary" של מדריך למשתמשי Emacs).
- הפקודה להדבקה היא C-y. היא מכניסה את הטקסט הגזור במקום הנוכחי של הסמן.
- >> נסו זאת: הקישו C-y כדי לאחזר טקסט שגזרתם קודם לכן.
- אם תקישו C-k מספר פעמים ברצף, כל הטקסט שגזרתם בדרך זו נשמר ביחד, כך
- ש־C-y בודד ידביק את כולו בבת אחת.
- >> עשו זאת עתה: הקישו C-k כמה פעמים.
- עכשיו לאחזור הטקסט שגזרתם:
- >> הקישו C-y. אחר־כך הניעו את הסמן כמה שורות כלפי מטה והקישו C-y שוב.
- כפי שראיתם, כך תוכלו להעתיק חלק מהטקסט ממקום למקום.
- מה לעשות אם יש לכם טקסט להדבקה, אבל בינתיים גזרתם טקסט אחר? C-y ידביק
- רק את הגזירה האחרונה. אולם הטקסט שגזרתם קודם לכן אינו הלך לאיבוד. ניתן
- לאחזרו בעזרת הפקודה M-y. אחרי שהקשתם C-y שמדביק את הטקסט שגזרתם
- לאחרונה, הקשה על M-y מחליפה את הטקסט המודבק בטקסט שגזרתם בפעם לפני
- האחרונה. הקשה חוזרת ונשנית על M-y מביאה טקסט שגזרתם בפעמים קודמות יותר
- ויותר. כשתראו שהטקסט המודבק הוא מה שרציתם להדביק, תפסיקו להקיש M-y
- ותמשיכו בעריכה כרגיל. אין צורך בשום פקודה מיוחדת לשם כך.
- אם תקישו M-y מספיק פעמים בזו אחר זו, תגיעו חזרה לנקודת ההתחלה (טקסט
- שגזרתם לאחרונה).
- >> גזרו שורה, אחר־כך תניעו את הסמן אנה ואנה, ולבסוף גזרו שורה נוספת.
- הקישו C-y כדי לאחזר את השורה השניה שגזרתם.
- עתה הקישו M-y והשורה שאחזרתם תוחלף בשורה הראשונה שגזרתם.
- הקישו M-y מספר פעמים נוספות ושימו לב לתוצאות. המשיכו להקיש M-y
- עד שהשורה השניה שגזרתם תופיע שוב, ואז תמשיכו עוד מספר פעמים.
- אם תרצו, תוכלו לנסות M-y עם ארגומנט חיובי או שלילי.
- * ביטול פעולות
- --------------
- אם שיניתם את הטקסט ואז החלטתם שהשינוי היה טעות, תוכלו לבטל את השינוי
- בעזרת פקודת הביטול, C-/.
- בדרך כלל,C-/ מבטל את השינויים שבוצעו ע"י פקודה אחת. הפעלה חוזרת של
- C-/ ברצף מבטלת שינויים של פקודות קודמות, אחת אחרי השניה.
- שני יוצאים מהכלל הזה: פקודות שאינן משנות טקסט (למשל פקודות הנעת הסמן
- ופקודות גלילה) אינן נספרות ותוים שמכניסים את עצמם מקובצים בקבוצות של
- עד 20, כדי להקטין את מספר הפעמים שיש להקיש C-/ כדי לבטל הכנסת טקסט.
- >> גזרו שורה זו עם C-k, אחר־כך הקישו C-/ והיא תופיע שוב.
- C-_ הינה דרך חלופית להפעיל את פקודת הביטול. היא פועלת בדיוק כמו C-/.
- במקלדות אחדות הקשה על C-/ שולחת ל־Emacs את התו C-_. חלופה נוספת היא
- C-x u, אם־כי היא פחות נוחה להקשה מספר פעמים בזו אחר זו.
- ארגומנט נומרי ל־C-/ או ל־C-_ או ל־C-x u משמש כמספר החזרות על הפקודה.
- ניתן לבטל מחיקה של טקסט בדיוק כמו שניתן לבטל גזירה. ההבדלים בין מחיקה
- וגזירה משפיעים על יכולתכם להדביק את הטקסט הגזור עם C-y; הם אינם חשובים
- לעניין הביטול.
- * קבצים
- -------
- על־מנת שהטקסט שערכתם יישמר, יש לשים אותו בקובץ. אחרת, הוא ייעלם ברגע
- שתצאו מ־Emacs. כדי לשים את הטקס בקובץ, יש "לפתוח" ("find") את הקובץ
- לפני שמתחילים להקיש טקסט. (שם אחר לכך הוא "לפקוד" את הקובץ - "visit".)
- פתיחת הקובץ משמעותה שתוכן הקובץ מוצג בתוך Emacs. מבחינות רבות הדבר
- דומה לעריכת הקובץ עצמו. אולם, השוניים שלכם בתוך Emacs אינם הופכים חלק
- מהקובץ עד שאתם "שומרים" את הקובץ. זאת, כדי להימנע מיצירת קובץ שאינו
- שלם במערכת שלא כרצונכם. אפילו אם אתם שומרים את הקובץ, Emacs משאיר את
- התוכן המקורי בשם שונה למקרה שמאוחר יותר תחליטו שהשינויים נעשו בטעות.
- אם תביטו בחלק התחתון של התצוגה, תראו שם שורה בולטת שמתחילה במקפים וליד
- הקצה השמאלי שלה כתוב "TUTORIAL.he". חלק זה של התצוגה בדרך כלל מציג את
- שם הקובץ אותו אתם פוקדים. כרגע אתם פוקדים קובץ בשם "TUTORIAL.he" שהוא
- עותק הטיוטה האישי שלכם של שיעור השימוש ב־Emacs. פתיחת קובץ כלשהו
- ב־Emacs תציג את שמו של הקובץ במקום זה.
- היבט אחד מיוחד של פתיחת קובץ הוא שיש לציין את שם הקובץ אשר ברצונכם
- לפתוח. אנו אומרים שהפקודה "קוראת ארגומנט" (במקרה זה הארגומנט הוא שם
- הקובץ). אחרי שתקישו את הפקודה
- C-x C-f פתח קובץ
- Emacs מבקש שתקישו את שם הקובץ. שם הקובץ שתקישו מופיע בשורה התחתונה של
- התצוגה. שורה זו נקראת "מיני־חוצץ" ("minibuffer") כשהיא משמשת לסוג זה
- של קלט. ניתן להשתמש בכל פקודות העריכה הרגילות של Emacs כשמקישים את
- שם הקובץ בחוצץ זה.
- אם טרם סיימתם להקיש את שם הקובץ (או כל סוג אחר של קלט במיני־חוצץ),
- ניתן לבטל את הפקודה בעזרת C-g.
- >> הקישו C-x C-f ואחר־כך הקישו C-g. זה מבטל את המיני־חוצץ וגם מבטל
- את הפקודה C-x C-f שהשתמשה במיני־חוצץ. התוצאה היא שאף קובץ לא נפתח.
- משסיימתם להקיש את שם הקובץ, הקישו <Return> לסיים את הקלט. או־אז
- המיני־חוצץ נעלם והפקודה C-x C-f תיגש לעבודה ותמצא ותפתח את הקובץ
- שבחרתם. כאשר פקודת ה־C-x C-f תסיים את עבודתה, תוכן הקובץ יופיע על־גבי
- התצוגה ותוכלו לבצע בו שינויים. כשתחליטו לשמור את השינויים, הקישו את
- הפקודה הבאה:
- C-x C-s שמור את הקובץ
- פקודה זו שומרת בקובץ את הטקסט המוחזק בתוך Emacs. בפעם הראשונה שתפעילו
- פקודה זו, Emacs משנה את שם הקובץ המקורי לשם חדש כך שהמקור לא ילך
- לאיבוד. השם החדש נוצר ע"י הוספת "~" בסוף השם המקורי של הקובץ.
- כשהשמירה מסתיימת, Emacs מציג בשורה התחתונה את שם הקובץ שנשמר. נסו
- לשמור לעתים מזומנות על־מנת להימנע מלאבד יותר מדי מהעבודה שלכם אם המחשב
- ייפול (ראה להלן פיסקה על שמירה אוטומטית).
- >> הקישו C-x C-s TUTORIAL.he ותסיימו בהקשת <Return>. כתוצאה, שיעור זה
- יישמר בקובץ בשם TUTORIAL.he ובתחתית התצוגה תופיע ההודעה
- "Wrote ...TUTORIAL.he".
- ניתן לפתוח קובץ קיים על־מנת לצפות בו או לערוך אותו. ניתן גם לפתוח קובץ
- שאינו קיים. זו הדרך ליצור קבצים חדשים בעזרת Emacs: פתחו את הקובץ
- שיהיה תחילה ריק ואז התחילו להקיש טקסט לתוכו. כשתפעילו את פקודת השמירה,
- Emacs ייצור את הקובץ עם הטקסט שהקשתם. מאותו רגע ואילך, תוכלו לחשוב
- שהינכם עורכים קובץ קיים.
- * חוצצים
- --------
- אם תפתחו קובץ נוסף עם C-x C-f, הקובץ הראשון עדיין נשאר פתוח ב־Emacs.
- תוכלו לחזור אליו ע"י C-x C-f. כך תוכלו לפתוח מספר רב של קבצים.
- Emacs מחזיק כל קובץ בתוך יישות בשם "חוצץ" ("buffer"). פתיחת קובץ יוצרת
- חוצץ חדש בתוך Emacs. כדי לראות את רשימת החוצצים הקיימים בתוך Emacs,
- הקישו
- C-x C-b הצג רשימת כל החוצצים
- >> נסו את C-x C-b בנקודה זו.
- שימו לב שלכל חוצץ יש שם וכל חוצץ עשוי גם לציין את שם הקובץ שאת תוכנו
- הוא מחזיק. כל טקסט שאתם מקישים בחלון Emacs תמיד יהיה חלק של חוצץ
- כלשהו.
- >> הקישו C-x 1 כדי להפטר מרשימת החוצצים.
- כשקיימים מספר חוצצים, רק אחד מהם יכול להיות החוצץ "הנוכחי" בכל רגע
- נתון. זהו החוצץ בו אתם מבצעים עריכה באותו רגע. אם ברצונכם לערוך חוצץ
- אחר, עליכם "לעבור" חוצץ. עבור חוצצים שמתאימים לקבצים, ניתן לעשות זאת
- ע"י C-x C-f שיפקוד את הקובץ בשנית. אבל קיימת דרך פשוטה יותר: שימוש
- בפקודה C-x b. פקודה זו תחייב אותכם להקיש את שם החוצץ.
- >> ניצור עתה קובץ בשם "foo" ע"י הקשת C-x C-f foo <Return>.
- עתה חזרו לשיעור זה בעזרת C-x b TUTORIAL.he <Return>.
- ברוב המקרים שם החוצץ זהה לשם הקובץ (ללא שם התיקיה שלו). אבל אין זה
- תמיד כך. רשימת החוצצים שנוצרת ע"י C-x C-b תציג הן את שם החוצץ והן את
- שם הקובץ עבור כל החוצצים הקיימים ב־Emacs.
- כל טקסט שמוצג בחלון של Emacs הינו תמיד חלק של חוצץ כלשהו. קיימים
- חוצצים שאינם קשורים לשום קובץ. לדוגמא, החוצץ בשם "*Buffer List*"
- המחזיק את רשימת החוצצים שנוצרה ע"י C-x C-b אינו מציג שום קובץ. גם
- לחוצץ הנוכחי ששמו TUTORIAL.he לא היה קובץ עד שהקשתם על C-x C-s כדי
- לשמור אותו בקובץ.
- חוצץ בשם "*Messages*" אף הוא אינו קשור לשום קובץ; הוא מחזיק את ההודעות
- שהופיעו בשורה התחתונה במהלך עבודתכם בתוך Emacs.
- >> הקישו C-x b *Messages* <Return> כדי לצפות בחוצץ של הודעות.
- אחר־כך הקישו C-x b TUTORIAL.he <Return> על־מנת לחזור לשיעור זה.
- אם עשיתם שינויים בטקסט של קובץ ואחר־כך פתחתם קובץ אחר, אין הדבר שומר
- את השינויים שעשיתם לקובץ הראשון. השינויים הללו נשארים בתוך Emacs, בתוך
- החוצץ של אותו קובץ. יצירתו ועריכתו של הקובץ הנוסף אינם משפיעים על
- החוצץ של הקובץ הראשון. דבר זה הוא שימושי, אך משמעותו היא שיש צורך
- בשיטה נוחה לשמור את החוצץ של הקובץ הראשון. היה זה מאד לא נוח אילו
- לשם כך הייתם צריכים לעבור לחוצץ ההוא בעזרת C-x C-f ואז לשמור עם
- C-x C-s. לכן קיימת פקודה
- C-x s שמור חוצצים אחדים
- C-x s עובר על כל החוצצים אשר מכילים שינויים שטרם נשמרו. לגבי כל חוצץ
- כזה הוא שואל אתכם האם לשמור אותו או לא.
- >> הכניסו שורה של טקסט ואחר־כך הקישו C-x s.
- הוא צריך לשאול האם לשמור חוצץ בשם TUTORIAL.he.
- השיבו בחיוב ע"י הקשה על "y".
- * הרחבת אוסף הפקודות
- --------------------
- מספר הפקודות ב־Emacs גדול בהרבה ממה שניתן להפעיל ע"י כל תוי ה־control
- וה־meta. כדי להתגבר על בעיה זו, Emacs משתמש בפקודות X המרחיבות (eXtend)
- את אוסף הפקודות הרגיל. פקודות הרחבה אלו הן שתים:
- C-x הרחבת תו. תו בודד שבא אחריו משלים את הפקודה.
- M-x הרחבה ע"י שם הפקודה. אחריו בא שם ארוך של פקודה.
- בעזרת שתי אלו ניתן להפעיל פקודות שימושיות שבהן משתמשים לעתים רחוקות
- יותר מאשר פקודות שלמדתם עד עכשיו. כמה מהן כבר ראיתם: C-x C-f לפתיחת
- קובץ, ו־C-x C-s לשמירת קובץ, לדוגמא. דוגמא נוספת היא פקודה לצאת
- מ־Emacs -- C-x C-c. (כשאתם מפעילים C-x C-c, אל תדאגו לשינויים שטרם
- נשמרו; C-x C-c מציע לשמור כל קובץ ששיניתם לפני שהוא מסיים את Emacs.)
- אם אתם משתמשים בצג גרפי, אינכם זקוקים לפקודה מיוחדת כדי לעבור מ־Emacs
- לתוכנית אחרת. אפשר לעשות זאת בעזרת העכבר או פקודות של מנהל החלונות.
- אולם, כאשר אתם משתמשים בתצוגה טקסטואלית שמסוגלת להציג רק תוכנית אחת
- בו־זמנית, תצטרכו "להשעות" ("suspend") את Emacs על־מנת לעבור לתוכנית
- אחרת.
- הפקודה C-z יוצאת מ־Emacs *באופן זמני* -- כך שתוכלו לשוב אליו מאוחר
- יותר ולהמשיך מאותה נקודה. כאשר Emacs רץ על תצוגת טקסט, C-z "משעה" את
- Emacs: הוא מחזיר אתכם לשורת הפקודות הבסיסית של מערכת ההפעלה ("shell"),
- אבל אינו מסיים את Emacs. ברוב המערכות, כדי להמשיך בעבודתכם ב־Emacs,
- תצטרכו להקיש את הפקודה "fg" או "%emacs".
- הרגע הנכון להשתמש ב־C-x C-c הוא כאשר אתם עומדים להתנתק (log out).
- כמו־כן, תצטרכו להשתמש בו כדי לצאת מ־Emacs שהופעל ע"י תוכניות אחרות
- כגון קריאת דואר אלקטרוני.
- קיימות פקודות C-x רבות מאד. להלן רשימת אלו שכבר למדתם:
- C-x C-f פתח קובץ
- C-x C-s שמור קובץ
- C-x s שמור חוצצים אחדים
- C-x C-b הצג רשימת חוצצים
- C-x b החלף חוצץ
- C-x C-c צא מ־Emacs
- C-x 1 השאר רק חלון אחד ומחק כל השאר
- C-x u בטל פקודה אחרונה
- הרחבה ע"י שם הפקודה שימושית עם פקודות עוד יותר נדירות או פקודות
- ספציפיות רק לאופני פעולה (modes) מיוחדים. דוגמא לכך היא פקודה
- replace-string (החלף מחרוזת) אשר מחליפה מחרוזת אחת במשנה בכל החוצץ.
- אחרי שתקישו M-x, Emacs מציג M-x בתחתית התצוגה ומחכה שתקישו את שם
- הפקודה, במקרה זה "replace-string". מספיק שתקישו "repl s<TAB>" ו־Emacs
- ישלים את השם המלא. (<TAB> הוא מקש Tab, בדרך כלל תמצאו אותו מעל מקש
- ה־CapsLock או Shift, ליד הקצה השמאלי של המקלדת.) סיימו את הזנת הפקודה
- ע"י הקשת <Return>.
- הפקודה להחלפת מחרוזת זקוקה לשני ארגומנטים -- המחרוזת שתוחלף וזו שתחליף
- אותה. סיימו הקשה של כל אחת מהן ע"י <Return>.
- >> הביאו את הסמן שתי שורות מתחת לשורה זו.
- עתה הקישו M-x repl s<Return>changed<Return>altered<Return>.
- שימו לב שהמילה "changed" בשורה זו שתנתה: זה עתה החלפתם את
- המילה c-h-a-n-g-e-d במילה "altered" בכל מקום בו היא נמצאת אחרי
- הסמן.
- * שמירה אוטומטית
- ----------------
- שינויים שערכתם בקובץ אבל טרם שמרתם עלולים ללכת לאיבוד אם המחשב שלכם
- נתקע. על־מנת להגן עליכם מפני סכנה זו, Emacs שומר לעתים מזומנות כל קובץ
- שנמצא בעריכה. השמירה האוטומטית הזאת נעשית לקובץ נפרד ששמו מתחיל
- ומסתיים בתו #. לדוגמא, אם הינכם עורכים קובץ בשם "hello.c", קובץ השמירה
- האוטומטית שיווצר עבורו ייקרא "#hello.c#". שמירה רגילה של הקובץ על ידכם
- מוחקת את קובץ השמירה האוטומטית.
- אם המחשב אכן נתקע, תוכלו לנציל את השינויים שלא הספקתם לשמור. לשם כך,
- יש לפתוח את הקובץ כרגיל (את הקובץ בשמו המקורי, לא את קובץ השמירה
- האוטומטית), ואחר־כך להקיש M-x recover-file <Return>. כש־Emacs יבקש
- אישור, הקישו yes<Return> כדי ש־Emacs ישחזר את הקובץ כפי שנשמר
- אוטומטית.
- * תצוגת הד
- ----------
- אם Emacs מגלה שאתם מקישים פקודה לאט, הוא מציג את שהקשתם בתחתית התצוגה,
- באזור שנקרא "אזור תצוגת הד". אזור זה משתמש בשורה התחתונה של התצוגה.
- * שורת סטטוס
- ------------
- השורה שמעל אזור תצוגת הד נקראת "שורת הסטטוס" (mode line). שורה זו
- מציגה משהו כמו:
- U:**- TUTORIAL.he 63% L651 (Fundamental)
- שורה זו מציגה מידע חשוב לגבי מצבו של Emacs ולגבי הטקסט שנמצא בעריכה.
- אתם כבר יודעים מהי משמעותו של שם הקובץ -- זהו הקובץ שפתחתם. NN% מציין
- את מיקומכם הנוכחי בתוך הטקסט, לאמור כי NN אחוזים מתכולת החוצץ קודמים
- לטקסט המוצג כרגע בחלון. אם המוצג בחלון כולל את תחילת הטקסט, תראו שם
- "Top" במקום "0% ". אם המוצג בחלון כולל את סוף הטקסט, תראו שם "Bot"
- (bottom). אם הטקסט כל־כך קצר שכולו מוצג בחלון, שורת הסטטוס תציג "All".
- האות L והמספר שאחריה מציינים את המיקום הנוכחי בדרך אחרת: הם מראים את
- מספר השורה שבה נמצא הסמן.
- הכוכביות ליד הקצה השמאלי משמעותן כי שיניתם את הטקסט. מיד אחרי פתיחת
- הקובץ או אחרי שמירתו החלק הזה של שורת הסטטוס אינו מציג כוכביות, אלא רק
- מקפים.
- החלק שבתוך הסוגריים אומר לכם מהo אופני העריכה (editing modes) הפעילים
- כעת. ברירת המחדל היא Fundamental, האופן הבסיס, שבו אתם משתמשים כעת.
- זוהי דוגמא של "אופן עריכה ראשי" (major mode).
- ל־Emacs אופני עריכה ראשיים רבים ומגוונים. חלק מהם נועדו לעריכה של שפת
- תכנות מסוימת ו/או סוג מסוים של טקסט, כגון Lisp mode, Text mode וכד'.
- בכל רגע נתון רק אופן עיקרי אחד יכול להיות פעיל ושמו תמיד מצויין בשורת
- הסטטוס באותו מקום בו כרגע אתם רואים "Fundamental".
- כל אופן עיקרי גורם לכמה פקודות לפעול בצורה מיוחדת. למשל, ישנן פקודות
- ליצירת הערות בתוך תוכנית, והיות וכל שפת תכנות מגדירה את הפורמט של
- הערות בצורה אחרת, כל אופן עיקרי חייב להכניס הערות בצורה שמתאימה לשפה.
- כל אופן עיקרי הינו למעשה שם הפקודה שבעזרתה אפשר להפעיל את אותו האופן.
- למשל הפקודה להפעיל את האופן Fundamental הינה M-x fundamental-mode.
- אם בכוונתכם לערוך טקסט בשפה אנושית כלשהי, כמו הקובץ הזה, כדאי לכם
- להשתמש ב־Text mode.
- >> הקישו M-x text-mode <Return>.
- אל דאגה: אף אחת מפקודות Emacs שלמדתם עד כה משנה את התנהגותה באופן
- מהותי. עם זאת, שימו לב ש־M-f ו־M-b מתייחסים עכשיו ל־'גרש' כחלק מהמילה.
- לפני־כן, ב־Fundamental mode, M-f ו־M-b התנהגו עם הגרש כמפריד בין
- מילים.
- אופנים ראשיים בדרך־כלל משנים קלות את התנהגות הפקודות: רוב הפקודות
- עדיין "עושות אותה עבודה" בכל האופנים הראשיים, אבל עושות אותה קצת אחרת.
- לצפיה בתיעוד של האופן הראשי הנוכחי יש להקיש C-h m.
- >> הקישו C-l C-l כדי להביא שורה זו לראשית התצוגה.
- >> עתה הקישו C-h m כדי לראות במה Text mode שונה מה־Fundamental mode.
- >> לבסוף, הקישו C-x 1 כדי לסלק את התיעוד מהתצוגה.
- אופנים ראשיים נקראים כך משום שקיימים גם אופני־משנה (minor modes).
- אופני משנה אינם מהווים חלופה לאופנים הראשיים, הם רק משנים אותם במקצת.
- כל אופן־משנה ניתן להפעלה או ביטול ללא תלות בכל שאר אופני המשנה וללא
- תלות באופן הראשי הנוכחי. לכן תוכלו להפעיל אופן־משנה אחד או יותר, או אף
- אופן־משנה.
- אחד מאופני־המשנה השימושיים ביותר, במיוחד לשם עריכת טקס בשפת־אנוש, הוא
- Auto Fill mode. כאשר אופן זה מופעל, Emacs אוטומטית פותח שורה חדשה
- בסיום מילה אם הטקסט שהקשתם ארוך מדי בשביל שורה אחת.
- להפעלת Auto Fill mode יש להקיש M-x auto-fill-mode <Return>. כאשר אופן
- זה מופעל, ניתן לבטלו ע"י M-x auto-fill-mode <Return>. זאת אומרת, פקודה
- זו מפעילה את האופן כשאינו פעיל ומבטלת אותו כשהוא פעיל. לפעולה זו
- קוראים "מיתוג" -- הפקודה "ממתגת" את האופן.
- >> הקישו עתה M-x auto-fill-mode <Return>. אחר־כך הקישו "שדגכ " (עם
- הרווח בסוף) שוב ושוב עד שתיפתח שורה חדשה. הרווחים חשובים משום
- ש־Auto Fill mode שובר שורות אך ורק ברווח שבין המלים.
- השוליים (margin) ש־Emacs שומר בדרך־כלל מתחילים אחרי 70 תווים, אבל ניתן
- לשנות הגדרה זו בעזרת הפקודה C-x f. פקודה זו מקבלת את ההגדרה החדשה של
- השוליים כארגומנט נומרי.
- >> הקישו C-x f עם ארגומנט של 20. (C-u 2 0 C-x f). אחר־כך הקישו טקסט
- כלשהו ושימו לב ש־Emacs פותח שורות חדשות אחרי 20 תווים לכל היותר.
- לבסוף, החזירו את הגדרת השוליים ל־70 ע"י שימוש חוזר ב־C-x f.
- אם ערכתם שינויים באמצע פסקה, Auto Fill mode לא ימלא שורות מחדש באופן
- אוטומטי.
- כדי למלא מחדש את כל הפסקה הקישו M-q (META-q) כשהסמן נמצא בתוך
- הפסקה.
- >> הניעו את הסמן לתוך הפסקה הקודמת והקישו M-q.
- * חיפוש
- -------
- Emacs יכול לחפש מחרוזות (רצף של תווים) קדימה או אחורה בתוך הטקסט.
- חיפוש של מחרוזת הוא סוג של פקודה להנעת הסמן: הוא ממקם את הסמן היכן
- שנמצאה המחרוזת הבאה.
- החיפוש של Emacs הינו "מצטבר" ("incremental"). פירוש הדבר הוא שהחיפוש
- מתבצע במקביל להקשתכם את המחרוזת אותה ברצונכם למצוא.
- הפקודה להתחיל בחיפוש היא C-s לחיפוש קדימה ו־C-r לחיפוש אחורה. חכו! אל
- תפעילו אותן עדיין.
- כשתקישו C-s, תראו שבאזור תצוגת ההד יופיע הטקסט "I-search". זה אומר
- ש־Emacs נמצא במצב "חיפוש מצטבר" ("incremental search") והוא ממתין
- להקשתכם את המחרוזת אותה ברצונכם למצוא. הקשה על <Return> מסיימת את
- החיפוש.
- >> הקישו עתה C-s כדי להתחיל בחיפוש. לאט־לאט, אות־אות, הקישו את המילה
- "סמן", עם הפסקה אחרי כל אות, ושימו לב להתנהגות הסמן.
- זה עתה מצאתם את המילה "סמן" פעם אחת.
- >> הקישו C-s שוב, כדי למצוא את "סמן" במקומות נוספים בטקסט.
- >> הקישו <DEL> שלוש פעמים ושימו לב לתנועת הסמן בכל הקשה.
- >> הקישו <Return> לסיום החיפוש.
- האם שמתם לב למה שקרה? במהלך "חיפוש מצטבר" Emacs מנסה למצוא את המקום
- הבא בו מופיעה המחרוזת שהקשתם. כדי למצוא את המחרוזת במקום הבא, פשוט
- הקישו C-s פעם נוספת. אם המחרוזת אינה נמצאת בהמשך הטקסט, Emacs מצפצף
- ומודיע שהחיפוש נכנס למצב של "כשלון" ("failing"). הקשה על C-g גם היא
- מסיימת את החיפוש.
- אם במהלך החיפוש תקישו על <DEL>, החיפוש "נסוג" למצב קודם. אם הקשתם
- <DEL> מיד אחרי C-s, הקשת <DEL> מחזירה את הסמן למקום הקודם בו נמצאה
- המחרוזת. אם אין מקומות קודמים בהם מופיעה המחרוזת, הקשת <DEL> מוחקת את
- התו האחרון של המחרוזת המבוקשת. למשל, נניח שהקשתם "ס" על־מנת למצוא את
- המקום הבא בו מופיעה האות "ס". אם עכשיו תקישו "מ", הסמן יזוז למקום בו
- נמצא "סמ". עתה הקישו <DEL>. ה־"מ" נמחק מהמחרוזת והסמן חוזר למקום בו
- הוא מצא את "ס" לראשונה.
- אם במהלך החיפוש תפעילו פקודה כלשהי ע"י הקשה על מקש תוך לחיצה על
- CONTROL או META, החיפוש יסתיים. (כמה תווים יוצאים מכלל זה -- אלו תווים
- מיוחדים בעת חיפוש, כדוגמת C-s ו־C-r.)
- הקשה על C-s מתחילה חיפוש שמנסה למצוא את המחרוזת _אחרי_ הסמן. אם
- ברצונכם למצוא משהו בטקסט הקודם למקום הנוכחי, הקישו C-r במקום C-s. כל
- מה שאמרנו לגבי C-s תקף גם לגבי C-r, אלא שכיוון החיפוש מתהפך.
- * חלונות מרובים
- ---------------
- אחת התכונות הנוחות של Emacs היא כי ניתן להציג יותר מחלון אחד על המסך
- בו־זמנית. (הערה: Emacs משתמש במונח "frame" -- "תבנית" -- בשביל מה
- שתוכניות אחרות מכנות "חלון". תבניות מתוארות בפסקה הבאה. תוכלו למצוא את
- רשימת המונחים של Emacs בפרק "Glossary" של מדריך משתמש.)
- >> הביאו סמן לשורה זו והקישו C-l C-l (CONTROL-L ולא CONTROL-1).
- >> עתה הקישו C-x 2 וכתוצאה מכך החלון יתחלק לשניים. כל אחד משני החלונות
- מציג את השיעור הזה. הסמן נשאר בחלון העליון.
- >> הקישו C-M-v כדי לגלול את החלון התחתון.
- (אם במקלדת שלכם אין מקש META אמיתי, הקישו <ESC> C-v כתחליף.)
- >> הקישו C-x o ("o" הוא רמז ל־"other", "אחר") על־מנת להעביר את הסמן
- לחלון התחתון.
- >> הקישו C-v ו־M-v בחלון התחתון כדי לגלול אותו.
- המשיכו לקרוא הוראות אלו בחלון העליון.
- >> הקישו C-x o שוב לחזור לחלון העליון.
- הסמן בחלון העליון יישאר במקום בו הוא היה לפני־כן.
- תוכלו להמשיך להשתמש ב־C-x o כדי לדלג בין החלונות. "החלון הנבחר", אותו
- חלון בו הנכם עורכים טקסט, מזוהה ע"י סמן בולט שמהבהב בזמן שאינכם
- מקלידים. לכל החלונות האחרים מיקום סמן משלהם; אם הפעלתם את Emacs על צג
- גרפי, מיקום הסמן בחלונות האחרים מוצג כתיבה ריקה שאינה מהבהבת.
- הפקודה C-M-v נוחה מאד כאשר הינכם עורכים טקסט בחלון אחד ומשתמשים בחלון
- אחר לייחוס. תוכלו להתקדם בחלון השני בעזרת C-M-v מבלי לעזוב את החלון
- הנבחר.
- C-M-v היא דוגמא אחת של פקודת CONTROL-META. אם במקלדת שלכם קיים מקש
- META (או Alt) אמיתי, תוכלו להקיש את הפקודה ע"י לחיצה והחזקה של מקשי
- CONTROL ו־META גם יחד ואז להקיש v. הסדר שבו תלחצו על CONTROL ו־META
- אינו משנה כי שני המקשים הללו פועלים ע"י שינוי התו המוקש יחד איתם.
- אם אין במקלדת מקש META אמיתי ואתם משתמשים ב־<ESC> כתחליף, הסדר כן
- משנה: חייבים להקיש <ESC> ורק לאחר מכן CONTROL-v, וזאת משום
- ש־CONTROL-<ESC> v לא יעבוד. <ESC> הוא תו בזכות עצמו, שלא כמו CONTROL
- או META.
- >> הקישו C-x 1 (בחלון העליון) כדי לסלק את החלון התחתון.
- (אילו הקשתם C-x 1 בחלון התחתון, הייתם מסלקים את החלון העליון. תוכלו
- לחשוב על פקודה זו כ־"השאר רק חלון אחד -- החלון בו אני נמצא עתה".)
- אין חובה להציג את אותו החוצץ בשני החלונות. תוכלו להשתמש ב־C-x C-f
- לפתיחת קובץ באחד החלונות -- דבר זה אינו משפיע על החלון השני. אפשר גם
- לפתוח קבצים שונים בכל אחד משני החלונות באופן בלתי־תלוי.
- הנה עוד שיטה להשתמש בשני חלונות להצגה של שני דברים שונים:
- >> הקישו C-x 4 C-f ואחר־כך הקישו שם של אחד הקבצים שלכם.
- סיימו עם <Return>. שימו לב שהקובץ המבוקש מוצג בחלון התחתון. הסמן
- מדלג לשם אף הוא.
- >> הקישו C-x o לעבור לחלון העליון ואחר־כך הקישו C-x 1 כדי לסלק את
- החלון התחתון.
- * תבניות מרובות
- ---------------
- Emacs מסוגל לפתוח מספר "תבניות" ("frames"). תבנית כוללת קבוצת חלונות,
- תפריט, פסי גלילה, אזור תצוגת הד וכו'. על צג גרפי מה שאנו קוראים
- "תבנית" נקרא בדרך־כלל "חלון". ניתן להציג תבניות אחדות על אותו צג גרפי
- בו־זמנית על צג טקסטואלי אפשר להציג רק תבנית אחת בכל עת.
- >> הקישו M-x make-frame <Return>.
- כתוצאה, תבנית חדשה תופיע על המסך.
- כל מה שעשיתם בתבנית המקורית ניתן לעשות גם בתבנית החדשה. התבנית הראשונה
- אין בה שום דבר מיוחד.
- >> הקישו M-x delete-frame <Return>.
- התבנית שבה הקשתם את הפקודה תיסגר ותיעלם מהמסך.
- כמו־כן, ניתן לסגור תבנית בדרך הרגילה הנתמכת ע"י התצוגה הגרפית של
- המערכת שלכם (בדרך־כלל, ע"י הקלקה על הכפתור המסומן ב־"X" בפינה עליונה
- של התבנית.) שום מידע אינו הולך לעיבוד כאשר סוגרים תבנית (או חלון).
- המידע הזה פשוט יורד מהתצוגה, אבל ניתן לאחזרו מאוחר יותר.
- * רמות עריכה רקורסיביות
- -----------------------
- יתכן ותיקלעו למצב שקרוי "רמת עריכה רקורסיבית". Emacs מציין זאת ע"י
- סוגריים מרובעים בשורת הסטטוס מסביב לשם האופן הראשי. למשל, יוצג שם
- [(Fundamental)] במקום (Fundamental).
- כדי להחלץ מרמת עריכה רקורסיבית יש להקיש <ESC> <ESC> <ESC>. זוהי פקודה
- כללית של "הימלטות". ניתן להשתמש בה גם כדי לסלק חלונות מיותרים וליציאה
- מתוך מיני־חוצץ.
- >> הקישו M-x כדי להיכנס למיני־חוצץ; אחר־כך הקישו <ESC> <ESC> <ESC> כדי
- להיחלץ משם.
- הקשה על C-g לא תחלץ אתכם מרמות עריכה רקורסיביות. זאת, משום ש־C-g מבטל
- פקודות וארגומנטים _במסגרת_ הרמה הרקורסיבית, מבלי לצאת ממנה.
- * לקבלת עזרה נוספת
- ------------------
- בשיעור הראשון הזה השתדלנו לתת בידיכם מידע שאך יספיק להתחלת השימוש שלכם
- ב־Emacs. Emacs מכיל כל־כך הרבה שאין שום אפשרות לתאר ולהסביר כאן את
- הכל. אולם, סביר שתרצו ללמוד יותר על Emacs שכן יש בו עוד הרבה תכונות
- שימושיות. Emacs כולל פקודות לשם קריאת תיעוד על הפקודות של Emacs.
- הפעלת פקודות "עזרה" אלו תמיד מתחילה במקש CONTROL-h שעל־כן נקרא "מקש
- עזרה" ("help").
- להפעלת פקודות עזרה יש להקיש את C-h ואחר־כך עוד תו שמבקש עזרה מסוג
- מסויים. אם אתם _באמת_ אבודים, הקישו C-h ? ו־Emacs יציג את סוגי העזרה
- שהוא מעמיד לרשותכם. אם הקשתם C-h ובסופו של דבר החלטתם שאין צורך בשום
- עזרה, פשוט הקישו C-g לבטל את הפקודה.
- (אם הקשת C-h אינה מציגה בתחתית התצוגה הודעה בדבר עזרה, נסו להקיש F1 או
- M-x help <Return> כתחליף.)
- סוג העזרה הבסיס ביותר הוא C-h c. הקישו C-h, אחריו את האות c ואז הקישו
- סדרת מקשים שמפעילה פקודה כלשהי. Emacs יציג תיאור מאד קצר של הפקודה
- ההיא.
- >> הקישו C-h c C-p.
- התוצאה שתוצג צריכה להיות משהו כמו זה:
- C-p runs the command previous-line
- ההודעה הזו מראה את "שם הפונקציה". היות ושמות הפונקציות נבחרים כדי
- לציין מה הן עושות, השמות עשויים לשמש כתיעוד מקוצר -- מספיק כדי להזכיר
- לכם את הפקודות שלמדתם בעבר.
- ניתן לציין אחרי C-h c גם פקודות שמופעלות ע"י סדרת מקשים באורך גדול
- מאחד, כגון C-x C-s או (אם אין מקש META או EDIT או ALT) <ESC> v.
- לקבלת מידע מפורט יותר על פקודה, השתמשו בפקודה C-h k במקום C-h c.
- >> הקישו C-h k C-p.
- כתוצאה, יוצגו השם והתיעוד של הפונקציה בחלון Emacs נפרד. כשתסיימו לקרוא
- את התיעוד, הקישו C-x 1 כדי לסלק את חלון העזרה. לא חייבים לעשות זאת
- מיד. אפשר לבצע קצת עריכה תוך שימוש בתיעוד המוצג ורק אחר־כך להקיש C-x 1.
- הנה עוד כמה פקודות עזרה שימושיות:
- C-h f תן הסבר על פונקציה. יש להקיש את שם הפונקציה.
- >> נסו להקיש C-h f previous-line <Return>.
- כתוצאה, יוצג תיעוד מלא של הפונקציה המממשת את הפקודה C-p כפי שהוא
- ידוע ל־Emacs.
- פקודה דומה C-h v מציגה תיעוד של משתנה, כולל אלו שאת הערכים שלהם ניתן
- לשנות כדי לקסטם את Emacs. יש להקיש את שם המשתנה כאשר Emacs יבקש זאת.
- C-h a פקודות בנוגע לנושא מסויים. הקישו מילת מפתח ו־Emacs
- יציג את רשימת הפקודות ששמותיהן מכילות את מילת המפתח.
- כל הפקודות הללו ניתנות להפעלה ע"י META-x. עבור חלק
- מהפקודות תוצג גם סדרת מקשים שמפעילה את הפקודה.
- >> הקישו C-h a file <Return>.
- כתוצאה מזה, יוצג חלון עם רשימה של כל הפקודות ששמותיהן מכילות את המילה
- "file". ביניהן תראו גם מקשי קיצור כגון C-x C-f לצד שמות הפקודות כגון
- find-file.
- >> הקישו C-M-v כדי לגלול את חלון העזרה. עשו זאת פעמים אחדות.
- >> עתה הקישו C-x 1 כדי לסגור את חלון העזרה.
- C-h i הצג מדריכים למשתמש הכלולים בחבילת Emacs. (פקודה זו
- ידועה גם בשם "Info".) פקודה זאת פותחת חוצץ מיוחד הקרוי
- "*info*" שבו תוכלו לקרוא מדריכים המותקנים במערכת שלכם.
- הקישו m emacs <Return> כדי לקרוא במדריך למשתמשי Emacs.
- אם אינכם מכירים את Info, הקישו ? ו־Emacs יקח אתכם
- לשיעור על התכונות של Info mode. כשתסיימו עם השיעור
- הזה, אנו בהחלט ממליצים להשתמש במדריך Emacs בתור התיעוד
- העיקרי שלכם.
- * עוד תכונות
- ------------
- תוכלו ללמוד עוד על־אודות Emacs ע"י קריאה במדריך למשתמש שלו, אם כספר
- מודפס או בגירסה מקוונת בתוך Emacs עצמו. (תוכלו להגיע אל המדריך דרך
- תפריט Help או ע"י הקשה על C-h r.) אולם שתי תכונות שבוודאי ימצאו חן
- בעיניכם הן השלמה אשר חוסכת הקשות, ו־dired שמאפשרת טיפול נוח בקבצים.
- השלמה היא דרך להימנע מהקשות מיותרות. למשל, אם ברצונכם לעבור לחוצץ
- *Messages*, תוכלו להקיש C-x b *M<Tab> ו־Emacs ישלים את שאר האותיות של
- שם החוצץ ככל שניתן להסיק ממה שהקשתם. השלמה פועלת גם על שמות הפקודות
- ושמות קבצים. תכונת ההשלמה מתוארת במלואה במדריך למשתמש Emacs בצומת
- (node) בשם "Completion".
- Dired מאפשר להציג רשימת קבצים בתיקיה (וכאפציה גם בתת־תיקיות שלה), לנוע
- בתוך הרשימה הזו, לפתוח קבצים, לשנות את שמותיהם, למחוק אותם ולבצע עליהם
- עוד פעולות רבות. Dired מתואר במלואו במדריך למשתמש בצומת בשם "Dired".
- בנוסף, מדריך למשתמש מתאר עוד הרבה מאד תכונות של Emacs.
- * לסיום
- -------
- כדי לצאת מ־Emacs יש להקיש C-x C-c.
- שיעור זה נכתב כדי להיות מובן לכל המשתמשים החדשים, לכן אם מצאתם שמשהו
- כאן אינו ברור, אל תשבו ותאשימו את עצמכם -- תתלוננו!
- * זכויות שימוש
- --------------
- שיעור זה הינו צאצא של שורה ארוכה של שיעורים בשימוש ב־Emacs, החל מהגרסה
- הראשונה שנכתבה ע"י Stuart Cracraft עבור גירסת ה־Emacs המקורית.
- גירסה זו של השיעור הינה חלק מחבילת GNU Emacs. היא מוגנת בזכויות יוצרים
- וניתנת להעתקה והפצת עותקים בתנאים מסויימים כדלקמן:
- Copyright (C) 2010-2012 Free Software Foundation, Inc.
- GNU Emacs הינו תכנה חפשית; זכותכם להפיצו ו\או לשנותו בכפוף לתנאי
- הרשיון GNU General Public License, כפי שהוא יוצא לאור ע"י Free
- Software Foundation, אם בגרסא 3 של הרשיון, ואם (כאופציה השמורה לכם)
- בכל גרסא מאוחרת יותר.
- GNU Emacs מופץ מתוך תקווה שהוא יביא תועלת, אולם ללא כל כתב אחריות;
- אפילו לא אחריות־במשתמע של סחירות או התאמה לאיזו תכלית מסוימת. לפרטים,
- אנא עיינו ב־GNU General Public License.
- GNU Emacs אמור להיות מלווה בעותק של GNU General Public License; אם לא
- קיבלתם אותו, תוכלו למצוא אותו ב־<http://www.gnu.org/licenses/>.
- הנכם מוזמנים לקרוא את הקובץ COPYING ואז אכן לחלק עותקים של GNU Emacs
- לחבריכם. עזרו לנו לחסל את "הבעלות" על תוכנה שאינה אלא חבלה בתוכנה,
- וזאת ע"י שימוש, כתיבה ושיתוף של תוכנה חופשית!
- --- end of TUTORIAL.he ---
- ;;; Local Variables:
- ;;; coding: utf-8
- ;;; bidi-display-reordering: t
- ;;; sentence-end-double-space: nil
- ;;; bidi-paragraph-direction: nil
- ;;; End:
|