# HG changeset patch # User Eli Zaretskii # Date 1280591218 -10800 # Node ID c18e82c381e4e7c6c38671304d9a5805daad90b0 # Parent a854e7a0e7ebb285d5ab960396d9023dc668445c Add a Hebrew translation of the tutorial. etc/tutorials/TUTORIAL.he: New file. etc/tutorials/TUTORIAL.translators: Add TUTORIAL.he. lisp/files.el (bidi-paragraph-direction): Define safe local values. lisp/language/hebrew.el ("Hebrew"): Add TUTORIAL.he to language-info-alist. Remove outdated FIXME in a comment. diff -r a854e7a0e7eb -r c18e82c381e4 etc/ChangeLog --- a/etc/ChangeLog Sat Jul 31 09:39:24 2010 +0000 +++ b/etc/ChangeLog Sat Jul 31 18:46:58 2010 +0300 @@ -1,3 +1,9 @@ +2010-07-31 Eli Zaretskii + + * tutorials/TUTORIAL.he: New file. + + * tutorials/TUTORIAL.translators: Add TUTORIAL.he. + 2010-07-24 Christoph Scholtes * NEWS: Document new --distfiles configure.bat option and diff -r a854e7a0e7eb -r c18e82c381e4 etc/tutorials/TUTORIAL.he --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etc/tutorials/TUTORIAL.he Sat Jul 31 18:46:58 2010 +0300 @@ -0,0 +1,1037 @@ +שיעור ראשון בשימוש ב-Emacs. זכויות שימוש ראה בסוף המסמך. + +פקודות רבות של Emacs משתמשות במקש CONTROL (לפעמים הוא מסומן ב-CTRL או CTL) +או במקש META (לפעמים מסומן EDIT או ALT). במקום לציין את כל השמות האפשריים +בכל פעם, נשתמש בקיצורים הבאים: + +‏<תו>-C משמעותו לחץ והחזק מקש CONTROL ואז הקש על מקש <תו>. + לדוגמא, C-f משמעותו: לחץ והחזק CONTROL והקש על f. +‏<תו>-M משמעותו לחץ והחזק מקש META או EDIT או ALT ואז הקש על מקש <תו>. + אם במקלדת אין אף אחד ממקשי META או EDIT או ALT, אפשר להקיש + ולשחרר מקש ESC ואז להקיש <תו>. אנו נכתוב עבור מקש ESC. + +הערה חשובה: כדי לצאת מ-Emacs יש להקיש C-x C-c (שני תוים, משמאל לימין). +כדי להפסיק פקודה באמצע ההקשה, יש להקיש C-g. +המחרוזת ">>" בקצה הימני מסמנת הוראות עבורכם כדי לנסות להשתמש בפקודה כלשהי. +לדוגמה: +<<שורות ריקות תתווספנה סביב השורה הבאה ע"י help-with-tutorial>> +[אמצע העמוד הושאר ריק למטרות לימודיות. הטקסט ממשיך להלן] +>> הקישו עתה C-v (הצג העמוד הבא) ע"מ להתקדם לעמוד הבא. (קדימה, נסו זאת + ע"י לחיצה והחזקה של מקש CONTROL והקשה על v.) + מעתה והלאה, עליכם לעשות זאת בכל פעם שתסיימו לקרוא את המוצג על המסך. + +שימו לב לחפיפה של שתי שורות כאשר אתם עוברים ממסך למשך, מה שמבטיח רציפות +מסוימת בעת קריאת הטקסט. + +דבר ראשון שעליכם ללמוד הוא כיצד לנוע ממקום אחד למשנהו בתוך הטקסט. אתם +כבר יודעים כיצד להתקדם לעמוד הבא, עם C-v. לחזרה לעמוד הקודם הקישו M-v +(החזיקו מקש META והקישו v או הקישו ‭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. (שימו לב שבשני צידי החלון קיימים פסים נוספים. אלה נקראים +"השוליים" -- "fringes" -- ומשמשים להצגת סימני המשך שורה וסימונים +אחרים. פס הגלילה, לעומתם, מופיע רק בצד אחד והוא הכי קרוב לקצה החלון +בצד ההוא.) + +>> נסו עתה להקליק בכפתור האמצעי של העכבר בחלק העליון של האזור המודגש + של פס הגלילה. פעולה זו אמורה לגלול את הטקסט בשיעור שתלוי במקום בו + הקלקתם. + +>> נסו לגרור את העכבר מעלה ומטה, תוך כדי לחיצה על הכפתור האמצעי. + כתוצאה, Emacs יגלול את הטקסט מעלה ומטה בהתאם לתנועת העכבר. + +אם העכבר שלכם מצויד בגלגל, תוכלו להשתמש גם בו לגלילת הטקסט. + +* אם Emacs מפסיק להגיב +---------------------- + +אם Emacs מפסיק להגיב לפקודות, תוכלו להפסיק אותו בבטחה ע"י הקשת C-g. +פקודות שביצוען מתארך אף הן ניתנות להפסקה בעזרת C-g. + +בנוסף, תגרום הקשת C-g לביטול הארגומנט הנומרי או תחילת הפקודה שטרם +השלמתם להקיש והתחרטתם. + +>> הקישו C-u 100 כדי לציין ארגומנט של 100, ולאחר מכן C-g. עתה הקישו + C-f. הוא צריך לנוע תו אחד בלבד, שכן ביטלתם את הארגומנט בעזרת C-g. + +אם הקשתם בטעות, ניתן לבטלו בעזרת C-g. + +* פקודות מנוטרלות +----------------- + +מספר פקודות ב-Emacs מנוטרלות בכוונה כדי שמשתמשים מתחילים לא יפעילו +אותן בדרך מקרה. + +אם תקישו את אחת הפקודות הללו, Emacs יציג הודעה המתארת את הפקודה וישאל +אם לבצע את הפקודה או לבטלה. + +אם אכן בכוונתכם לנסות את הפקודה, הקישו (מקש הרווח) בתשובה לשאלה. +בדרך כלל, אם אינכם מעוניינים לבצע את הפקודה המנוטרלת, הקישו "n" בתשובה +לשאלה הזו. + +* חלונות +-------- + +תצוגת Emacs יכולה לכלול יותר מחלון אחד, כשכל אחד מהם מציג טקסט משלו. +מאוחר יותר נסביר כיצד להשתמש בחלונות מרובים. כעת ברצוננו להסביר כיצד +להפטר מחלונות מנותרים ולחזור לעריכה בחלון יחיד. אין דבר פשוט מזה: + + ‏C-x 1 חלון אחד בלבד (כלומר, סגור את כל החלונות האחרים). + +כדי להפעיל פקודה זו, הקישו CONTROL-x ולאחריו את הספרה 1. הפקודה C-x 1 +מרחיבה את החלון המציג את הסמן כך שהוא תופס את כל שטח התצוגה. הפקודה +מבטלת את שאר החלונות. + +>> הניעו את הסמן לתוך שורה זו והקישו C-u 0 C-l. +>> עתה הקישו CONTROL-h k CONTROL-f. + שימו לב כיצד החלון הנוכחי מצטמצם ומופיע חלון חדש שבו מוצג + התיעוד של הפקודה CONTROL-f. + +>> הקישו C-x 1 ושימו לב שהחלון עם ההסבר על C-f נעלם. + +פקודה זו שונה מכל שאר הפקודות שלמדנו עד כה בכך שהיא מכילה שני תוים. +היא מתחילה עם התו CONTROL-x. פקודות רבות מאד מתחילות ב-CONTROL-x; חלק +גדול מהן עוסקות בחלונות, קבצים, חוצצים ונושאים דומים אחרים. פקודות אלו +מכילות שנים, שלושה ואפילו ארבעה תוים. + + +* הכנסה ומחיקה +------------- + +אם ברצונכם להכניס טקסט, פשוט הקישו על המקשים המתאימים. תוים רגילים, +כגון A, א, 7, * וכד' מתפרשים ע"י Emacs כטקסט ומיד מתווספים לטקסט +הקיים. הקישו (מקש חזרת גרר) כדי להכניס את תו השורה החדשה +(Newline). + +למחיקת התו האחרון שהקשתם הקישו . המקש שאנו קוראים לו +יכול להתקרא בשמות שונים -- "Delete", "DEL" או "Backspace". בדרך כלל +זהו מקש גדול ובולט שנמצא לא הרחק ממקש , והוא משמש אתכם למחיקת +התו אחרון גם בתוכניות אחרות, לא רק ב-Emacs. + +אם קיים במקלדת שלכם מקש גדול שעליו רשום , אז זהון המקש אשר +ישמש כ-. גם אם יהיה מקש אחר המסומן ב-"Delete" במקום אחרת זה +אינו ה- שלכם. + +באופן כללי יותר, מוחק את התו שקודם למיקום הסמן. + +>> הקישו עתה מספר תוים, ואחר-כך מחקו אותם ע"י הקשות אחדות + על . אל תחששו לשנות את הקובץ הזה -- העותק המקורי + של השיעור יישאר ללא שינוי. אתם עובדים על העותק האישי שלכם. + +כאשר שורה של טקסט נעשית ארוכה משורה אחת של תצוגה, חלק מהטקסט ממשיך +בשורת תצוגה נוספת, היא "שורת ההמשך". תו לוכסן ("/") בסוף השורה (או +חץ עקלקל קטן באזור השוליים -- "fringe") מסמל שלשורה יש שורת המשך. + +>> הקישו טקסט עד שתגיעו לקצה השורה, ואז תמשיכו להקיש עוד טקסט. + כתוצאה, תראו שמופיעה שורת המשך. + +>> עתה הקישו ע"מ למחוק טקסט עד שהשורה תיעשה קצרה מספיק + ותתאים לשורה בודדת ע"ג התצוגה. שורת ההמשך תיעלם. + +ניתן למחוק את תו ה-Newline כמו כל תו אחר. מחיקת ה-Newline בין שתי +שורות תמזג את השורות לשורה אחת. אם השורה המשולבת תהיה ארוכה מרוחב +התצוגה, היא תוצג עם שורת המשך. + +>> הניעו את הסמן לתחילת השורה והקישו . כתוצאה, השורה תתמזג + אם קודמתה. + +>> עתה הקישו כדי להחזיר את ה-Newline שמחקתם. + +זכרו כי לרוב הפקודות ב-Emacs אפשר לציין מספר חזרות. גם תוי טקסט +שייכים לקבוצת פקודות זו. חזרה על תו טקסט מכניסה אותו מספר פעמים. + +>> נסו זאת עכשיו -- הקישו ‪C-u 8 *‬ ע"מ להכניס ********. + +ובכן, למדתם את האופן הבסיסי ביותר להדפיס משהו ב-Emacs ולתקן שגיאות. +אפשר למחוק גם מלים ואף שורות שלמות. להלן סיכום פקודות המחיקה: + + ‏ מחק תו שלפני הסמן + ‏C-d מחק תו מתחת או אחרי הסמן + + ‏‭M-‬ גזור מילה שלפני הסמן + ‏M-d גזור מילה שאחרי הסמן + + ‏C-k גזור טקסט מהסמן ועד סוף השורה + ‏M-k גזור טקסט עד סוף המשפט הנוכחי. + +שימו לב שהיחס בין ו-C-d לעומת M-‎ ו-M-d ממשיכים את +ההקבלה שבין C-f ו-M-f (אמנם איננו תו בקרה, בוא נזניח את +הנקודה הזו לעת-עתה). C-k ו-M-k דומים ל-C-e ו-M-e, אם נקביל שורות +למשפטים. + +בנוסף, קיימת שיטה אחידה שמאפשרת לגזור קטע כלשהו של טקסט. לשם כך, תגיעו +לקצה האחד של חלק הטקסט והקישו C-@‎ או C-‎ (אחד מבין שני אלו). +( הוא מקש הרווח.) עתה הניעו את הסמן לקצה השני של חלק הטקסט והקישו +C-w. כתוצאה, כל הטקסט בין שני המקומות הללו ייגזר. + +>> הניעו את הסמן אל האות ב בתחילת הפיסקה הקודמת. +>> הקישו C-‎. ‏Emacs צריך להציג הודעה האומרת "Mark set" בתחתית + התצוגה. +>> הניעו את הסמן אל האות צ בשורה השניה של הפיסקה. +>> הקישו C-w. בכך תגזרו את חלק הטקסט שמתחיל ב-ב ומסתיים לפני ה-צ. + +ההבדל בין "מחיקה" ("deletion") ו-"גזירה" ("killing") הוא שהטקסט +"הגזור" ניתן לאחזור ולהכנסה (במקום כלשהוא בטקסט), ואילו טקסט "מחוק" לא +ניתן להכניס מחדש בשיטה זו. (אבל ניתן לבטל את מחיקה -- ראה להלן.) אחזור +הטקסט הגזור נקרא "הדבקה" ("yanking"). באופן כללי, פקודות אשר עלולות +להעלים כמויות גדולות של טקסט תמיד גוזרות את הטקסט (כך שניתן יהיה בקלות +לשחזרו) בעוד הפקודות שמורידות תו בודד או שורות ריקות ותוי רווח -- +מוחקות (כך שלא ניתן להדביק את הטקסט שנמחק). כך, ו-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-x u. + +בדרך כלל, C-x u מבטל את השינויים שבוצעו ע"י פקודה אחת. הפעלה חוזרת של +C-x u ברצף מבטלת שינויים של פקודות קודמות, אחת אחרי השניה. + +שני יוצאים מהכלל הזה: פקודות שאינן משנות טקסט (למשל פקודות הנעת הסמן +ופקודות גלילה) אינן נספרות ותוים שמכניסים את עצמם מקובצים בקבוצות של +עד 20, כדי להקטין את מספר הפעמים שיש להקיש C-x u כדי לבטל הכנסת טקסט. + +>> גזרו שורה זו עם C-k, אחר-כך הקישו C-x u והיא תופיע שוב. + +‏C-_‎ הינה דרך חלופית להפעיל את פקודת הביטול. היא פועלת בדיוק כמו C-x u, +אבל קלה יותר להקשה מספר פעמים בזו אחר זו. החסרון של C-_‎ הוא שבכמה +מקלדות לא ברור מאליו כיצד להקיש זאת. זו הסיבה לקיומו של C-x u. במקלדות +אחדות ניתן להקיש C-_‎ ע"י החזקת CONTROL והקשת לוכסן /. + +ארגומנט נומרי ל-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 שהשתמשה במיני-חוצץ. התוצאה היא שאף קובץ לא נפתח. + +משסיימתם להקיש את שם הקובץ, הקישו לסיים את הקלט. או-אז תיגש +C-x C-f לעבודה ותמצא ותפתח את הקובץ שבחרתם. המיני-חוצץ נעלם כאשר +פקודת ה-C-x C-f תסיים את עבודתה. + +זמן קצר אחר-כך תוכן הקובץ יופיע ע"ג התצוגה ותוכלו לבצע בו שינויים. +כשתחליטו לשמור את השינויים, הקישו את הפקודה הבאה: + + ‏C-x C-s שמור את הקובץ + +פקודה זו שומרת בקובץ את הטקסט המוחזק בתוך Emacs. בפעם הראשונה שתפעילו +פקודה זו, Emacs משנה את שם הקובץ המקורי לשם חדש כך שהמקור לא ילך +לאיבוד. השם החדש נוצר ע"י הוספת "~" בסוף השם המקורי של הקובץ. + +כשהשמירה מסתיימת, Emacs מציג בשורה התחתונה את שם הקובץ שנשמר. נסו +לשמור לעתים מזומנות ע"מ להימנע מלאבד יותר מדי מהעבודה שלכם אם המחשב +ייפול (ראה להלן פיסקה על שמירה אוטומטית). + +>> הקישו C-x C-s כדי לשמור את העותק שלכם של השיעור. + כתוצאה, תופיע ההודעה "Wrote ... TUTORIAL.he" בתחתית התצוגה. + +ניתן לפתוח קובץ קיים ע"מ לצפות בו או לערוך אותו. ניתן גם לפתוח קובץ +שאינו קיים. זו הדרך ליצור קבצים חדשים בעזרת Emacs: פתחו את הקובץ +שיהיה תחילה ריק ואז התחילו להקיש טקסט לתוכו. כשתפעילו את פקודת השמירה, +Emacs ייצור את הקובץ עם הטקסט שהקשתם. מאותו רגע ואילך, תוכלו לחשוב +שהינכם עורכים קובץ קיים. + + +* חוצצים +-------- + +אם תפתחו קובץ נוסף עם C-x C-f, הקובץ הראשון עדיין נשאר פתוח ב-Emacs. +תוכלו לחזור אליו ע"י C-x C-f. כך תוכלו לפתוח מספר רב של קבצים. + +>> ניצור עתה קובץ בשם "foo" ע"י הקשת C-x C-f foo ‎. + אחר-כך הכניסו קצת טקסט, ערכו אותו ולבסוף שמרו בקובץ "foo" + ע"י C-x C-s. עתה חזרו לשיעור בעזרת C-x C-f TUTORIAL.he ‎. + +‏Emacs מחזיק כל קובץ בתוך יישות בשם "חוצץ" ("buffer"). פתיחת קובץ יוצרת +חוצץ חדש בתוך Emacs. כדי לראות את רשימת החוצצים הקיימים בתוך Emacs, +הקישו + + ‏C-x C-b הצג רשימת כל החוצצים + +>> נסו את C-x C-b בנקודה זו. + +שימו לב שלכל חוצץ יש שם וכל חוצץ עשוי גם לציין את שם הקובץ שאת תוכנו +הוא מחזיק. כל טקסט שאתם מקישים בחלון Emacs תמיד יהיה חלק של חוצץ +כלשהו. + +>> הקישו C-x 1 כדי להפטר מרשימת החוצצים. + +כשקיימים מספר חוצצים, רק אחד מהם יכול להיות החוצץ "הנוכחי" בכל רגע +נתון. זהו החוצץ בו אתם מבצעים עריכה באותו רגע. אם ברצונכם לערוך חוצץ +אחר, עליכם "לעבור" חוצץ. עבור חוצצים שמתאימים לקבצים, ניתן לעשות זאת +ע"י C-x C-f שיפקוד את הקובץ בשנית. אבל קיימת דרך פשוטה יותר: שימוש +בפקודה C-x b. פקודה זו תחייב אותכם להקיש את שם החוצץ. + +>> הקישו C-x b foo ‎ כדי לחזור לחוצץ "foo" אשר מחזיק טקסט של + הקובץ "foo". אחר-כך הקישו C-x b TUTORIAL.he ‎ כדי לשוב + לשיעור זה. + +ברוב המקרים שם החוצץ זהה לשם הקובץ (ללא שם התיקיה שלו). אבל אין זה +תמיד כך. רשימת החוצצים שנוצרת ע"י C-x C-b תמיד תציג את שמות כל החוצצים +הקיימים ב-Emacs. + +כל טקסט שמוצג בחלון של Emacs הינו תמיד חלק של חוצץ כלשהו. קיימים +חוצצים שאינם קשורים לשום קובץ. לדוגמא, החוצץ בשם "*Buffer List*" אינו +מציג שום קובץ. זהו חוצץ המחזיק את רשימת החוצצים שנוצר ע"י C-x C-b. +חוצץ בשם "*Messages*" אף הוא אינו קשור לשום קובץ; הוא מחזיק את ההודעות +שהופיעו בשורה התחתונה במהלך עבודתכם בתוך Emacs. + +>> הקישו C-x b *Messages* ‎ כדי לצפות בחוצץ של הודעות. + אחר-כך הקישו C-x b TUTORIAL.he ‎ ע"מ לחזור לשיעור זה. + +אם עשיתם שינויים בטקסט של קובץ ואחר-כך פתחתם קובץ אחר, אין הדבר שומר +את השינויים שעשיתם לקובץ הראשון. השינויים הללו נשארים בתוך 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 שהופעל ע"י תוכניות אחרות +כגון קריאת דוא"ל -- תוכניות אלו לא תמיד יודעות להסתדר עם השעיית 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‎" ו-Emacs +ישלים את השם המלא. ( הוא מקש Tab, בדרך כלל תמצאו אותו מעל מקש +ה-CapsLock או Shift, ליד הקצה השמאלי של המקלדת.) סיימו את שם הפקודה +ע"י הקשת . + +הפקודה להחלפת מחרוזת זקוקה לשני ארגומנטים -- המחרוזת שתוחלף וזו שתחליף +אותה. סיימו הקשה של כל אחת מהן ע"י . + +>> הביאו את הסמן שתי שורות מתחת לשורה זו. + עתה הקישו M-x repl schangedaltered‎. + + שימו לב שהמילה "changed" בשורה זו שתנתה: זה עתה החלפתם את + המילה c-h-a-n-g-e-d במילה "altered" בכל מקום בו היא נמצאת אחרי + הסמן. + + +* שמירה אוטומטית +---------------- + +שינויים שערכתם בקובץ אבל טרם שמרתם עלולים ללכת לאיבוד אם המחשב שלכם +נתקע. ע"מ להגן עליכם מפני סכנה זו, Emacs שומר לעתים מזומנות כל קובץ +שנמצא בעריכה. השמירה האוטומטית הזאת נעשית לקובץ נפרד ששמו מתחיל +ומסתיים בתו #. לדוגמא, אם הינכם עורכים קובץ בשם "hello.c", קובץ השמירה +האוטומטית שיווצר עבורו ייקרא "#hello.c#". שמירה רגילה של הקובץ על ידכם +מוחקת את קובץ השמירה האוטומטית. + +אם המחשב אכן נתקע, תוכלו לנציל את השינויים שלא הספקתם לשמור. לשם כך, +יש לפתוח את הקובץ כרגיל (את הקובץ בשמו המקורי, לא את קובץ השמירה +האוטומטית), ואחר-כך להקיש M-x recover-file ‎. כש-Emacs יבקש +אישור, הקישו yes‎ כדי ש-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 ‎. + +אל דאגה: אף אחת מפקודות Emacs שלמדתם עד כה משנה את התנהגותה באופן +מהותי. עם זאת, שימו לב ש-M-f ו-M-b מתייחסים עכשיו ל-'גרש' כחלק מהמילה. +לפני-כן, ב-Fundamental mode, ‏M-f ו-M-b התנהגו עם הגרש כמפריד בין +מילים. + +אופנים ראשיים בדרך-כלל משנים קלות את התנהגות הפקודות: רוב הפקודות +עדיין "עושות אותה עבודה" בכל האופנים הראשיים, אבל עושות אותה קצת אחרת. + +לצפיה בתיעוד של האופן הראשי הנוכחי יש להקיש C-h m. + +>> השתמשו ב-C-u C-v פעם אחת או יותר כדי להביא שורה זו לראשית התצוגה. +>> עתה הקישו C-h m כדי לראות במה Text mode שונה מה-Fundamental mode. +>> לבסוף, הקישו C-x 1 כדי לסלק את התיעוד מהתצוגה. + +אופנים ראשיים נקראים כך משום שקיימים גם אופני-משנה (minor modes). +אופני משנה אינם מהווים חלופה לאופנים הראשיים, הם רק משנים אותם במקצת. +כל אופן-משנה ניתן להפעלה או ביטול ללא תלות בכל שאר אופני המשנה וללא +תלות באופן הראשי הנוכחי. לכן תוכלו להפעיל אופן-משנה אחד או יותר, או אף +אופן-משנה. + +אחד מאופני-המשנה השימושיים ביותר, במיוחד לשם עריכת טקס בשפת-אנוש, הוא +Auto Fill mode. כאשר אופן זה מופעל, Emacs אוטומטית פותח שורה חדשה +בסיום מילה אם הטקסט שהקשתם ארוך מדי בשביל שורה אחת. + +להפעלת Auto Fill mode יש להקיש M-x auto-fill-mode ‎. כאשר אופן +זה מופעל, ניתן לבטלו ע"י M-x auto-fill-mode ‎. זאת אומרת, פקודה +זו מפעילה את האופן כשאינו פעיל ומבטלת אותו כשהוא פעיל. לפעולה זו +קוראים "מיתוג" -- הפקודה "ממתגת" את האופן. + +>> הקישו עתה M-x auto-fill-mode ‎. אחר-כך הקישו "שדגכ " (עם + הרווח בסוף) שוב ושוב עד שתיפתח שורה חדשה. הרווחים חשובים משום + ש-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") והוא ממתין +להקשתכם את המחרוזת אותה ברצונכם למצוא. הקשה על מסיימת את +החיפוש. + +>> הקישו עתה C-s כדי להתחיל בחיפוש. לאט-לאט, אות-אות, הקישו את המילה + "סמן", עם הפסקה אחרי כל אות, ושימו לב להתנהגות הסמן. + זה עתה מצאתם את המילה "סמן" פעם אחת. +>> הקישו C-s שוב, כדי למצוא את "סמן" במקומות נוספים בטקסט. +>> הקישו שלוש פעמים ושימו לב לתנועת הסמן בכל הקשה. +>> הקישו לסיום החיפוש. + +האם שמתם לב למה שקרה? במהלך "חיפוש מצטבר" Emacs מנסה למצוא את המקום +הבא בו מופיעה המחרוזת שהקשתם. כדי למצוא את המחרוזת במקום הבא, פשוט +הקישו C-s פעם נוספת. אם המחרוזת אינה נמצאת בהמשך הטקסט, Emacs מצפצף +ומודיע שהחיפוש נכנס למצב של "כשלון" ("failing"). הקשה על C-g גם היא +מסיימת את החיפוש. + +(הערה: במערכות אחדות הקשה על C-s מקפיעה את תצוגת המסך, כך שלא תראו +יותר שום פלט של Emacs. משמעות הדבר שתכונת מערכת ההפעלה ששמה "flow +control" מופעלת ע"י C-s ואינה מעבירה את C-s ל-Emacs. לביטול הקפאת +התצוגה במערכות אלו יש להקיש C-q.) + +אם במהלך החיפוש תקישו על , תראו שהתו האחרון של המחרוזת +המבוקשת נמחק והחיפוש חוזר למקום הקודם בו נמצאה המחרוזת ללא התו האחרון. +למשל, נניח שהקשתם "ס" ע"מ למצוא את המקום הבא בו מופיעה האות "ס". אם +עכשיו תקישו "מ", הסמן יזוז למקום בו נמצא "סמ". עתה הקישו . +ה-"מ" נמחק מהמחרוזת והסמן חוזר למקום בו הוא מצא את "ס" לראשונה. + +אם במהלך החיפוש תפעילו פקודה כלשהי ע"י הקשה על מקש תוך לחיצה על +CONTROL או META, החיפוש יסתיים. (כמה תווים יוצאים מכלל זה -- אלו תווים +מיוחדים בעת חיפוש, כדוגמת C-s ו-C-r.) + +הקשה על C-s מתחילה חיפוש שמנסה למצוא את המחרוזת _אחרי_ הסמן. אם +ברצונכם למצוא משהו בטקסט הקודם למקום הנוכחי, הקישו C-r במקום C-s. כל +מה שאמרנו לגבי C-s תקף גם לגבי C-r, אלא שכיוון החיפוש מתהפך. + + +* חלונות מרובים +--------------- + +אחת התכונות הנוחות של Emacs היא כי ניתן להציג יותר מחלון אחד על המסך +בו-זמנית. (הערה: Emacs משתמש במונח "frame" -- "תבנית" -- בשביל מה +שתוכניות אחרות מכנות "חלון". תבניות מתוארות בפסקה הבאה. תוכלו למצוא את +רשימת המונחים של Emacs בפרק "Glossary" של מדריך משתמש.) + +>> הביאו סמן לשורה זו והקישו C-u 0 C-l ‏(CONTROL-L ולא CONTROL-1). + +>> עתה הקישו C-x 2 וכתוצאה מכך החלון יתחלק לשניים. כל אחד משני החלונות + מציג את השיעור הזה. הסמן נשאר בחלון העליוןץ + +>> הקישו C-M-v כדי לגלול את החלון התחתון. + (אם במקלדת שלכם אין מקש META אמיתי, הקישו ‎ C-v כתחליף.) + +>> הקישו C-x o ‏("o" הוא רמז ל-"other", "אחר") ע"מ להעביר את הסמן לחלון + התחתון. +>> הקישו C-v ו-M-v בחלון התחתון כדי לגלול אותו. + המשיכו לקרוא הוראות אלו בחלון העליון. + +>> הקישו C-x o שוב לחזור לחלון העליון. + הסמן בחלון העליון יישאר במקום בו הוא היה לפני-כן. + +תוכלו להמשיך להשתמש ב-C-x o כדי לדלג בין שני החלונות. לכל חלון מיקום +סמן משלו, אבל רק חלון אחד מציג את הסמן בכל רגע. כל פקודות העריכה +הרגילות פועלות על החלון שבו מוצג הסמן. אנו קוראים לחלון זה "החלון +הנבחר". + +הפקודה C-M-v נוחה מאד כאשר הינכם עורכים טקסט בחלון אחד ומשתמשים בחלון +אחר לייחוס. תוכלו בכל עת לשמור על הסמן בחלון בו אתם עורכים טקסט +ולהתקדם בחלון השני בעזרת C-M-v. + +‏C-M-v היא דוגמא אחת של פקודת CONTROL-META. אם במקלדת שלכם קיים מקש +META אמיתי, תוכלו להקיש את הפקודה ע"י לחיצה והחזקה של מקשי CONTROL +ו-META גם יחד ואז להקיש v. הסדר שבו תלחצו על CONTROL ו-META אינו משנה +כי שני המקשים הללו פועלים ע"י שינוי התו המוקש יחד איתם. + +אם אין במקלדת מקש META אמיתי ואתם משתמשים ב- כתחליף, הסדר כן +משנה: חייבים להקיש ורק לאחר מכן CONTROL-v, וזאת משום +ש-CONTROL- v לא יעבוד. הוא תו בזכות עצמו, שלא כמו CONTROL +או META. + +>> הקישו C-x 1 (בחלון העליון) כדי לסלק את החלון התחתון. + +(אילו הקשתם C-x 1 בחלון התחתון, הייתם מסלקים את החלון העליון. תוכלו +לחשוב על פקודה זו כ-"השאר רק חלון אחד -- החלון בו אני נמצא עתה".) + +אין חובה להציג את אותו החוצץ בשני החלונות. תוכלו להשתמש ב-C-x C-f +לפתיחת קובץ באחד החלונות -- דבר זה אינו משפיע על החלון השני. אפשר גם +לפתוח קבצים שונים בכל אחד משני החלונות באופן בלתי-תלוי. + +הנה עוד שיטה להשתמש בשני חלונות להצגה של שני דברים שונים: + +>> הקישו C-x 4 C-f ואחר-כך הקישו שם של אחד הקבצים שלכם. + סיימו עם . שימו לב שהקובץ המבוקש מוצג בחלון התחתון. הסמן + מדלג לשם אף הוא. + +>> הקישו C-x o לעבור לחלון העליון ואחר-כך הקישו C-x 1 כדי לסלק את + החלון התחתון. + + +* תבניות מרובות +--------------- + +‏Emacs מסוגל לפתוח מספר "תבניות" ("frames") בתנאי שאינכם משתמשים בצג +שמסוגל להציג רק טקסט. תבנית כוללת קבוצת חלונות, תפריט, פסי גלילה, אזור +תצוגת הד וכו'. (תוכניות אחרות נוהגות לקרוא לזה "חלון".) + +>> הקישו M-x make-frame ‎. + כתוצאה, תבנית חדשה תופיע על המסך. + +כל מה שעשיתם בתבנית המקורית ניתן לעשות גם בתבנית החדשה. התבנית הראשונה +אין בה שום דבר מיוחד. + +>> הקישו M-x delete-frame ‎. + התבנית שבה הקשתם את הפקודה תיסגר ותיעלם מהמסך. + +כמו-כן, ניתן לסגור תבנית בדרך הרגילה הנתמכת ע"י מנהל החלונות של המערכת +שלכם (בדרך-כלל, ע"י הקלקה על הכפתור המסומן ב-"X" בפינה עליונה של +התבנית.) שום מידע אינו הולך לעיבוד כאשר סוגרים תבנית (או חלון). המידע +הזה פשוט יורד מהתצוגה, אבל ניתן לאחזרו מאוחר יותר. + + +* רמות עריכה רקורסיביות +----------------------- + +יתכן ותיקלעו למצב שקרוי "רמת עריכה רקורסיבית". Emacs מציין זאת ע"י +סוגריים מרובעים בשורת הסטטוס מסביב לשם האופן הראשי. למשל, יוצג שם +[(Fundamental)] במקום (Fundamental). + +כדי להחלץ מרמת עריכה רקורסיבית יש להקיש . זוהי פקודה +כללית של "הימלטות". ניתן להשתמש בה גם כדי לסלק חלונות מיותרים וליציאה +מתוך מיני-חוצץ. + +>> הקישו M-x כדי להיכנס למיני-חוצץ; אחר-כך הקישו כדי + להיחלץ משם. + +הקשה על 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 ‎ כתחליף.) + +סוג העזרה הבסיס ביותר הוא 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) ‏‎ 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 ‎. + כתוצאה, יוצג תיעוד מלא של הפונקציה המממשת את הפקודה C-p כפי שהוא + ידוע ל-Emacs. + +פקודה דומה C-h v מציגה תיעוד של משתנה, כולל אלו שאת הערכים שלהם ניתן +לשנות כדי לקסטם את Emacs. יש להקיש את שם המשתנה כאשר Emacs יבקש זאת. + + ‏C-h a פקודות בנוגע לנושא מסויים. הקישו מילת מפתח ו-Emacs + יציג את רשימת הפקודות ששמותיהן מכילות את מילת המפתח. + כל הפקודות הללו ניתנות להפעלה ע"י META-x. עבור חלק + מהפקודות תוצג גם סדרת מקשים שמפעילה את הפקודה. + +>> הקישו C-h a file ‎. + +כתוצאה מזה, יוצג חלון עם רשימה של כל הפקודות ששמותיהן מכילות את המילה +"file". ביניהן תראו גם מקשי קיצור כגון C-x C-f לצד שמות הפקודות כגון +find-file. + +>> הקישו C-M-v כדי לגלול את חלון העזרה. עשו זאת פעמים אחדות. + +>> עתה הקישו C-x 1 כדי לסגור את חלון העזרה. + + ‏C-h i הצג מדריכים למשתמש הכלולים בחבילת Emacs. (פקודה זו + ידועה גם בשם "Info".) פקודה זאת פותחת חוצץ מיוחד הקרוי + "*info*" שבו תוכלו לקרוא מדריכים המותקנים במערכת שלכם. + הקישו m emacs ‎ כדי לקרוא במדריך למשתמשי Emacs. + אם אינכם מכירים את Info, הקישו ? ו-Emacs יקח אתכם + לשיעור על התכונות של Info mode. כשתסיימו עם השיעור + הזה, אנו בהחלט ממליצים להשתמש במדריך Emacs בתור התיעוד + העיקרי שלכם. + + +* עוד תכונות +------------ + +תוכלו ללמוד עוד על-אודות Emacs ע"י קריאה במדריך למשתמש שלו, אם כספר +מודפס או בגירסה מקוונת בתוך Emacs עצמו. (תוכלו להגיע אל המדריך דרך +תפריט Help או ע"י הקשה על C-h r.) אולם שתי תכונות שבוודאי ימצאו חן +בעיניכם הן השלמה אשר חוסכת הקשות, ו-dired שמאפשרת טיפול נוח בקבצים. + +השלמה היא דרך להימנע מהקשות מיותרות. למשל, אם ברצונכם לעבור לחוצץ +*Messages*, תוכלו להקיש C-x b *M‎ ו-Emacs ישלים את שאר האותיות של +שם החוצץ ככל שניתן להסיק ממה שהקשתם. השלמה פועלת גם על שמות הפקודות +ושמות קבצים. תכונת ההשלמה מתוארת במלואה במדריך למשתמש Emacs בצומת +(node) בשם "Completion". + +‏Dired מאפשר להציג רשימת קבצים בתיקיה (וכאפציה גם בתת-תיקיות שלה), לנוע +בתוך הרשימה הזו, לפתוח קבצים, לשנות את שמותיהם, למחוק אותם ולבצע עליהם +עוד פעולות רבות. Dired מתואר במלואו במדריך למשתמש בצומת בשם "Dired". + +בנוסף, מדריך למשתמש מתאר עוד הרבה מאד תכונות של Emacs. + + +* לסיום +------- + +כדי לצאת מ-Emacs יש להקיש C-x C-c. + +שיעור זה נכתב כדי להיות מובן לכל המשתמשים החדשים, לכן אם מצאתם שמשהו +כאן אינו ברור, אל תשבו ותאשימו את עצמכם -- תתלוננו! + + +* זכויות שימוש +-------------- + +שיעור זה הינו צאצא של שורה ארוכה של שיעורים בשימוש ב-Emacs, החל מהגרסה +הראשונה שנכתבה ע"י Stuart Cracraft עבור גירסת ה-Emacs המקורית. + +גירסה זו של השיעור הינה חלק מחבילת GNU Emacs. היא מוגנת בזכויות יוצרים +וניתנת להעתקה והפצת עותקים בתנאים מסויימים כדלקמן: + + Copyright (C) 2010 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; אם לא +קיבלתם אותו, תוכלו למצוא אותו ב-‭‬. + +הנכם מוזמנים לקרוא את הקובץ 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: diff -r a854e7a0e7eb -r c18e82c381e4 etc/tutorials/TUTORIAL.translators --- a/etc/tutorials/TUTORIAL.translators Sat Jul 31 09:39:24 2010 +0000 +++ b/etc/tutorials/TUTORIAL.translators Sat Jul 31 18:46:58 2010 +0300 @@ -31,6 +31,10 @@ Author: Éric Jacoboni Maintainer: Éric Jacoboni +* TUTORIAL.he +Author: Eli Zaretskii +Maintainer: Eli Zaretskii + * TUTORIAL.it: Author: Alfredo Finelli Italian GNU Translation Group diff -r a854e7a0e7eb -r c18e82c381e4 lisp/ChangeLog --- a/lisp/ChangeLog Sat Jul 31 09:39:24 2010 +0000 +++ b/lisp/ChangeLog Sat Jul 31 18:46:58 2010 +0300 @@ -1,3 +1,10 @@ +2010-07-31 Eli Zaretskii + + * files.el (bidi-paragraph-direction): Define safe local values. + + * language/hebrew.el ("Hebrew"): Add TUTORIAL.he to + language-info-alist. Remove outdated FIXME in a comment. + 2010-07-31 Alan Mackenzie * progmodes/cc-cmds.el (c-mask-paragraph): Fix bug #6688: diff -r a854e7a0e7eb -r c18e82c381e4 lisp/files.el --- a/lisp/files.el Sat Jul 31 09:39:24 2010 +0000 +++ b/lisp/files.el Sat Jul 31 18:46:58 2010 +0300 @@ -2784,6 +2784,9 @@ (truncate-lines . booleanp) ;; C source code (bidi-display-reordering . booleanp))) ;; C source code +(put 'bidi-paragraph-direction 'safe-local-variable + (lambda (v) (memq v '(nil right-to-left left-to-right)))) + (put 'c-set-style 'safe-local-eval-function t) (defvar file-local-variables-alist nil diff -r a854e7a0e7eb -r c18e82c381e4 lisp/language/hebrew.el --- a/lisp/language/hebrew.el Sat Jul 31 09:39:24 2010 +0000 +++ b/lisp/language/hebrew.el Sat Jul 31 18:46:58 2010 +0300 @@ -46,14 +46,13 @@ (define-coding-system-alias 'iso-8859-8 'hebrew-iso-8bit) ;; These are for Explicit and Implicit directionality information, as -;; defined in RFC 1556. We don't yet support directional information -;; in bidi languages, so these aliases are a lie, especially as far as -;; iso-8859-8-e is concerned. FIXME. +;; defined in RFC 1556. (define-coding-system-alias 'iso-8859-8-e 'hebrew-iso-8bit) (define-coding-system-alias 'iso-8859-8-i 'hebrew-iso-8bit) (set-language-info-alist - "Hebrew" '((charset iso-8859-8) + "Hebrew" '((tutorial . "TUTORIAL.he") + (charset iso-8859-8) (coding-priority hebrew-iso-8bit) (coding-system hebrew-iso-8bit windows-1255 cp862) (nonascii-translation . iso-8859-8)