זוהי הפקודה samplan9 שניתן להפעיל בספק האירוח החינמי של OnWorks באמצעות אחת מתחנות העבודה המקוונות המרובות שלנו, כגון Ubuntu Online, Fedora Online, אמולטור מקוון של Windows או אמולטור מקוון של MAC OS
תָכְנִית:
שֵׁם
sam, B, E, sam.save, samterm, samsave - עורך מסך עם ביטויים רגולריים מבניים
תַקצִיר
סם [ אוֹפְּצִיָה ... ] [ קבצים ]
סם -r מכונה
sam.save
B פילה[:קו]...
E פילה
תיאור
סם הוא עורך מרובה קבצים. זה משנה עותק מקומי של קובץ חיצוני. העותק הוא
כאן נקרא א פילה. הקבצים מפורטים בתפריט הזמין דרך לחצן העכבר 3 או
מה היא n פקודה. לכל קובץ יש שם משויך, בדרך כלל שם הקובץ החיצוני
שממנו הוא נקרא, וסיבית 'משונה' שמציינת אם הקובץ של העורך
מסכים עם הקובץ החיצוני. הקובץ החיצוני לא נקרא לקובץ העורך עד
הוא הופך תחילה לקובץ הנוכחי - זה שעליו חלות פקודות עריכה - ולאחר מכן התפריט שלו
הערך מודפס. האפשרויות הן
-a כניסה אוטומטית. במצב זה, כאשר מקלידים תו חדש בטרמינל
מִמְשָׁק, samterm מעתיק את הרווח הלבן המוביל בשורה הנוכחית לקו החדש.
-d אל "תוריד" את החלק המסוף של סם. העריכה תתבצע באמצעות הפקודה
שפה בלבד, כמו ב ed(1).
-r מכונה
הפעל את החלק המארח מרחוק במחשב שצוין, את החלק המסוף באופן מקומי.
-s נתיב
הפעל את החלק המארח מהקובץ שצוין במארח המרוחק. רק בעל משמעות
עם -r אוֹפְּצִיָה.
-t נתיב
התחל את החלק המסוף מהקובץ שצוין. שימושי לניפוי באגים.
רגיל ביטויים
ביטויים רגולריים הם כמו ב regexp(7) בתוספת של \n לייצג קווים חדשים. א
ביטוי רגולרי לעולם לא יכיל תו חדש מילולי. הקבוע הריק
ביטוי מייצג את הביטוי השלם האחרון שנתקל בו. ביטוי רגולרי ב
סם מתאים למחרוזת המשנה הארוכה ביותר השמאלית ביותר המתאימה באופן רשמי על ידי הביטוי. מחפש
בכיוון ההפוך שווה ערך לחיפוש אחורה עם הקטנה
פעולות הפוכות בביטוי.
כתובות
כתובת מזהה מחרוזת משנה בקובץ. בהמשך, `דמות n' פירושו ה
מחרוזת null אחרי ה- nהתו -ה בקובץ, כאשר 1 התו הראשון בקובץ.
`קו n' פירושו ה nהתאמה -ה, החל בתחילת הקובץ, של הרגיל
expression לכל הקבצים תמיד יש מחרוזת משנה נוכחית, הנקראת נקודה, זו ברירת המחדל
כתובת.
פָּשׁוּט כתובות
#n המחרוזת הריקה אחרי תו n; #0 הוא ההתחלה של הקובץ.
n קו n; 0 הוא ההתחלה של הקובץ.
/regexp/
?regexp?
המחרוזת המשנה התואמת לביטוי הרגולרי, שנמצאה על ידי הסתכלות לכיוון הסוף
(/) או התחלה (?) של הקובץ, ובמידת הצורך המשך החיפוש מ-
קצה אחר לנקודת ההתחלה של החיפוש. המחרוזת המשנה התואמת עשויה להתפצל
נקודת ההתחלה. כאשר נכנסים לתבנית המכילה סימן שאלה מילולי עבור
חיפוש אחורה, יש לציין את סימן השאלה כחבר בכיתה.
0 המחרוזת לפני השורה המלאה הראשונה. זו לא בהכרח מחרוזת האפס;
לִרְאוֹת + ו - לְהַלָן.
$ מחרוזת ה-null בסוף הקובץ.
. נְקוּדָה.
' הסימן בקובץ (ראה את k הפקודה למטה).
"regexp"
לפני כתובת פשוטה (ברירת מחדל .), מתייחס לכתובת המוערכת ב-
קובץ ייחודי ששורת התפריט שלו תואמת לביטוי הרגולרי.
תרכובת כתובות
בדברים הבאים, a1 ו a2 הן כתובות.
a1+a2 הכתובת a2 מוערך החל מהסוף a1.
a1-a2 הכתובת a2 מוערך בהסתכלות בכיוון ההפוך החל מההתחלה
of a1.
a1,a2 המחרוזת המשנה מתחילת a1 עד סוף a2. אם a1 חסר, 0 is
מוחלף. אם a2 חסר, $ מוחלף.
a1;a2 כמו a1,a2, אבל עם a2 מוערך בסוף, והנקודה מוגדרת ל, a1.
המפעילים + ו - הם בעדיפות גבוהה, בעוד , ו ; הם בעלי עדיפות נמוכה.
בשניהם + ו - טפסים, אם a2 הוא כתובת שורה או תו עם מספר חסר, ה
מספר ברירת המחדל הוא 1. אם a1 חסר, מוחלף. אם שניהם a1 ו a2 נוכחים
ומובחן, + עלול להימחק. a2 עשוי להיות ביטוי רגולרי; אם הוא תחום
לפי השפעת ה + or - הוא הפוך.
זוהי שגיאה שכתובת מורכבת מייצגת תת-מחרוזת פגומה. כמה שימושי
ניבים: a1+- (a1-+) בוחר את השורה המכילה את הסוף (ההתחלה) של a1. 0/regexp/
מאתר את ההתאמה הראשונה של הביטוי בקובץ. (הצורה 0;// קובע נקודה
שלא לצורך.) ./regexp/ / / מוצא את המופע השני הבא של הביטוי, ו
.,/regexp/ מרחיב את הנקודה.
פקודות
להלן, טקסט התחום באמצעות לוכסנים מייצג טקסט המופרד על ידי כל אפשרות להדפסה
תו מלבד אלפאנומריה. ניתן להסיר כל מספר של תוחמים נגררים, עם
התעלמות מרובות המייצגות אז מחרוזות אפס, אבל המפריד הראשון חייב להיות תמיד
מתנה. בכל טקסט מופרד, שורה חדשה עשויה שלא להופיע מילולית; \n ניתן להקליד עבור
שורה חדשה; ו \/ מצטט את התוחם, כאן נטוי אחורי מתפרש בצורה מילולית אחרת,
למעט ב s פקודות.
לרוב הפקודות עשויות להיות קידומת כתובת כדי לציין את טווח הפעולה שלהן. הָהֵן
שאולי לא מסומנים בסימון למטה. אם פקודה לוקחת כתובת ואף אחת לא מסופקת,
נעשה שימוש בנקודה. היוצא מן הכלל היחיד הוא w הפקודה, שברירת המחדל היא 0,$. ב
תיאור, 'טווח' משמש כדי לייצג כל כתובת שסופקה. נקבעו פקודות רבות
הערך של נקודה כתופעת לוואי. אם כן, הוא תמיד מוגדר ל'תוצאה' של השינוי:
המחרוזת הריקה למחיקה, הטקסט החדש להוספת וכו' (אבל ראה את s ו e
פקודות).
טקסט פקודות
a/טֶקסט/
or
a
קווים of טֶקסט
. הכנס את הטקסט לקובץ אחרי הטווח. הגדר נקודה.
c
i כמו a, אבל c מחליף את הטקסט, בעוד i מוסיף לפני הטווח.
d מחק את הטקסט בטווח. הגדר נקודה.
s/regexp/טֶקסט/
תחליף טֶקסט עבור ההתאמה הראשונה לביטוי הרגולרי בטווח. מַעֲרֶכֶת
נקודה לטווח השונה. ב טֶקסט הדמות & מייצג את המיתר ש
התאים לביטוי. נטוי אחורי מתנהג כרגיל אלא אם כן אחריו ספרה: \d
מייצג את המחרוזת שתואמת לתת-הביטוי שהתחיל ב- d-השמאלי
מַאֲמָר מוּסְגָר. אם s מיד אחריו מספר n, כמו ב s2/x/y/, ה nה- יצא
התאמה בטווח מוחלף. אם אחרי הפקודה מופיע א g, כמו ב
s/x/y/g, כל ההתאמות בטווח מוחלפות.
m a1
t a1 מהלך \ לזוז \ לעבור (m) או העתק (t) הטווח לאחרי a1. הגדר נקודה.
לְהַצִיג פקודות
p הדפס את הטקסט בטווח. הגדר נקודה.
= הדפס את כתובת השורה וכתובת התווים של הטווח.
=# הדפס רק את כתובת התווים של הטווח.
שלח פקודות
* b רשימת קבצים
הגדר את הקובץ הנוכחי לקובץ הראשון ששמו ברשימה זה סם יש גם בה
תַפרִיט. הרשימה עשויה לבוא לידי ביטוי <תכנית פעולה 9 הפקודה במקרה זה שמות הקבצים הם
נלקחים כמילים (במובן המעטפת) שנוצרו על ידי הפקודה תוכנית 9.
* B רשימת קבצים
כמו b, אלא ששמות קבצים שאינם בתפריט מוזנים שם, וכל הקבצים
שמות ברשימה נבדקים.
* n הדפס תפריט של קבצים. הפורמט הוא:
' או ריק המציין שהקובץ שונה או נקי,
- or + מציין שהקובץ לא נקרא או שנקרא (בטרמינל, * אומר
יותר מחלון אחד פתוח),
. או ריק המציין את הקובץ הנוכחי,
ריק,
ואת שם הקובץ.
* D רשימת קבצים
מחק את הקבצים בעלי השם מהתפריט. אם אין שם של קבצים, הקובץ הנוכחי נמחק.
זו טעות ל D קובץ שונה, אבל עוקב D תמחק קובץ כזה.
I / O פקודות
* e שם הקובץ
החלף את הקובץ בתוכן של הקובץ החיצוני בעל השם. הגדר את הנקודה ל-
תחילת הקובץ.
r שם הקובץ
החלף את הטקסט בטווח בתוכן של הקובץ החיצוני בעל השם. הגדר נקודה.
w שם הקובץ
כתוב את הטווח (ברירת מחדל 0,$) לקובץ החיצוני בעל השם.
* f שם הקובץ
הגדר את שם הקובץ והדפיס את ערך התפריט שנוצר.
אם שם הקובץ נעדר מאחד מאלה, נעשה שימוש בשם הקובץ הנוכחי. e תמיד
מגדיר את שם הקובץ; r ו w עשה זאת אם לקובץ אין שם.
< תכנית פעולה 9-פקודות
החלף את הטווח בפלט הסטנדרטי של הפקודה Plan 9.
> תכנית פעולה 9-פקודות
שלח את הטווח לקלט הסטנדרטי של הפקודה Plan 9.
| תכנית פעולה 9-פקודות
שלח את הטווח לקלט הסטנדרטי, והחלף אותו בפלט הסטנדרטי, של
פקודת תוכנית 9.
* ! תכנית פעולה 9-פקודות
הפעל את הפקודה Plan 9.
* cd בספרייה
שנה ספריית עבודה. אם לא צוינה ספרייה, $home משמש.
בכל אחד מ <, >, | or !, אם תכנית פעולה 9 הפקודה מושמט האחרון תכנית פעולה 9 הפקודה (מכל
סוג) מוחלף. אם סם is הוריד (באמצעות תצוגת העכבר והראסטר, כלומר לא
באמצעות אפשרות -d), ! מגדיר קלט סטנדרטי ל / dev / null, ושאר פלט שלא הוקצה
(stdout ל ! ו >, סטדרר עבור כולם) ממוקם ב /tmp/sam.err והשורות הראשונות
מודפסים.
לולאות ו תנאים
x/regexp/ הפקודה
עבור כל התאמה של הביטוי הרגולרי בטווח, הפעל את הפקודה עם dot set
לגפרור. הגדר את הנקודה להתאמה האחרונה. אם הביטוי הרגולרי שלו
מושמטים לוכסנים, מניחים. התאמות מחרוזות אפס עשויות להתרחש לפני כן
כל תו של הטווח ובסוף הטווח.
y/regexp/ הפקודה
כמו x, אבל הפעל את הפקודה עבור כל תת מחרוזת שנמצאת לפני, בין או אחרי
ההתאמות שייווצרו על ידי x. אין ביטוי רגולרי ברירת מחדל.
תת-מחרוזות Null עשויות להופיע לפני כל תו בטווח.
* X/regexp/ הפקודה
עבור כל קובץ שהערך בתפריט שלו תואם לביטוי הרגולרי, הפוך את ה-
הקובץ הנוכחי והפעל את הפקודה. אם הביטוי מושמט, הפקודה מופעלת
בכל קובץ.
* Y/regexp/ הפקודה
כמו X, אבל עבור קבצים שאינם תואמים לביטוי הרגולרי, וה-
נדרש ביטוי.
g/regexp/ הפקודה
v/regexp/ הפקודה
אם הטווח מכיל (g) או אינו מכיל (v) התאמה לביטוי, סט
נקדו לטווח והריצו את הפקודה.
אלה עשויים להיות מקוננים באופן שרירותי עמוק, אבל רק מופע אחד של אחד מהם X or Y עשוי להופיע
בפקודה אחת. פקודה ריקה ב-an x or y ברירת מחדל ל p; פקודה ריקה פנימה X
or Y ברירת מחדל ל f. g ו v אין ברירת מחדל.
קוֹבֶץ מְעוּרָב
k הגדר את הסימן של הקובץ הנוכחי לטווח. לא קובע נקודה.
* q לְהַפְסִיק. זו שגיאה לצאת עם קבצים שהשתנו, אבל שנייה q יצליח.
* u n בטל את האחרון n (ברירת מחדל 1) פקודות ברמה העליונה ששינו את התוכן או השם של
הקובץ הנוכחי, וכל קובץ אחר שהשינוי האחרון שלו היה בו-זמנית
השינוי של הקובץ הנוכחי. רצוף uהמעבר אחורה בזמן. היחיד
פקודות שעבורן u אינו יעיל הן cd, u, q, w ו D. אם n הוא שלילי, u
'מחדש', מבטל את הביטול, מתקדם שוב בזמן.
(ריק)
אם הטווח מפורש, הגדר את הנקודה לטווח. אם סם הורד, ה
הנקודה המתקבלת נבחרת על המסך; אחרת הוא מודפס. אם אין כתובת
שצוין (הפקודה היא שורה חדשה) נקודה מורחבת בכל כיוון לקו
גבולות ומודפסים. אם הנקודה לא השתנתה, היא מוגדרת ל .1 והודפס.
הַקבָּצָה ו מספר שינויים
ניתן לקבץ פקודות על ידי סגירתן בסוגריים {}. פקודות בתוך הפלטה חייבות
מופיעים בשורות נפרדות (לא נדרשים קווים אחוריים בין הפקודות). מבחינה סמנטית, א
סוגר פתיחה הוא כמו פקודה: הוא לוקח כתובת (אופציונלית) ומגדיר נקודה עבור כל תת-
פקודה. פקודות בתוך הסוגרים מבוצעות ברצף, אך שינויים מבוצעים על ידי אחד
הפקודה אינה גלויה לפקודות אחרות (ראה הפסקה הבאה). פלטה עשויה להיות מקוננת
שרירותי.
כאשר פקודה מבצעת מספר שינויים בקובץ, כמו ב x/re/c/text/, הכתובות של
כל השינויים בקובץ מחושבים בקובץ המקורי. אם השינויים נמצאים
רצף, הם מוחלים על הקובץ. הוספות עוקבות באותה כתובת הן
מצולות להכנסה בודדת המורכבת ממספר ההוספות לפי הסדר שהוחל.
השמיים מסוף
מה להלן מתייחס להתנהגות של סם כשהורדה, כלומר, כאשר פועלת כ
עורך תצוגה על צג רסטר. זוהי התנהגות ברירת המחדל; קורא סם עם
-d אפשרות (ללא הורדה) מספקת גישה לשפת הפקודה בלבד.
לכל קובץ יכול להיות אפס או יותר חלונות פתוחים. כל חלון שווה ערך ומתעדכן
בו זמנית עם שינויים בחלונות אחרים באותו קובץ. לכל חלון יש
ערך בלתי תלוי של נקודה, מסומן על ידי מחרוזת משנה מודגשת בתצוגה. נקודה עשויה להיות
באזור שלא בתוך החלון. בדרך כלל יש 'חלון נוכחי', המסומן ב-a
גבול כהה, שעליו חלות טקסט מוקלד ופקודות עריכה. ניתן להקליד ולערוך טקסט
כמו ב ריו(1); גם מקש ה-Escape (ESC) בוחר (מגדיר את הנקודה ל) טקסט שהוקלד מאז האחרון
לחיצה על כפתור העכבר.
תפריט כפתור 3 שולט בפעולות החלון. החלק העליון של התפריט מספק את הדברים הבאים
אופרטורים, שכל אחד מהם משתמש באחד או יותר ריו-כמו סמנים כדי להנחות את בחירת א
חלון או טאטוא של מלבן. 'מטאטא' מלבן אפס מקבל חלון גדול,
disjoint מחלון הפקודה או מהמסך כולו, תלוי איפה ה-null
מלבן הוא.
חדש צור קובץ חדש וריק.
אפס צור עותק של חלון קיים.
לשנות את הגודל כמו ב ריו.
close מחק את החלון. בחלון האחרון של קובץ, close הוא שווה ערך ל D ל
הקובץ.
לכתוב שווה ערך לא w לקובץ.
מתחת לאופרטורים אלה יש רשימה של קבצים זמינים, החל מ- ~~sam~~, הפקודה
חַלוֹן. בחירת קובץ מהרשימה הופכת את החלון האחרון בשימוש בקובץ זה
זרם, אלא אם הוא כבר נוכחי, ובמקרה זה הבחירות עוברות במחזוריות הפתוח
חלונות. אם אין חלונות פתוחים בקובץ, המשתמש מתבקש לפתוח אחד. קבצים
אחר מאשר ~~sam~~ מסומנים באחת התווים -+* לפי כאפס, אחד או
חלונות נוספים פתוחים בקובץ. סימן נוסף מופיע על הקובץ הנוכחי
חלון וציטוט בודד, ', בקובץ ששונה מאז הכתיבה האחרונה.
חלון הפקודה, נוצר באופן אוטומטי כאשר סם מתחיל, הוא חלון רגיל למעט
שהטקסט שהוקלד אליו מתפרש כפקודות עבור העורך ולא כטקסט פסיבי,
וטקסט המודפס על ידי פקודות עורך מופיע בו. ההתנהגות היא כמו ריועם
`נקודת פלט' שמפרידה בין פקודות שהוקלדו לפלט הקודם. פקודות מוקלדות
בחלון הפקודה החל על הקובץ הפתוח הנוכחי - הקובץ הנוכחי האחרון
חלון.
מניפולציה טֶקסט
כפתור 1 משנה בחירה, בדומה ריו. הצבעה על חלון לא נוכחי עם כפתור 1
עושה את זה עדכני; בתוך החלון הנוכחי, כפתור 1 בוחר טקסט, ובכך מגדיר נקודה.
לחיצה כפולה בוחרת טקסט לגבולות של מילים, שורות, מחרוזות במירכאות או
מחרוזות בסוגריים, בהתאם לטקסט בלחיצה.
לחצן 2 מספק תפריט של פקודות עריכה:
לחתוך מחק נקודה ושמור את הטקסט שנמחק במאגר הסנרף.
פסטה החלף את הטקסט בנקודה בתוכן של מאגר הסנרף.
לחטוף שמור את הטקסט בנקודה במאגר הסנרף.
להוביל שלח את הטקסט בבחירה כהודעת שרשרת. אם הבחירה ריקה, ה-
בלוק טקסט מופרד ברווח לבן נשלח כהודעת אנכית עם א קליק
תכונה המגדירה היכן הבחירה נמצאת (ראה להוביל(7)).
להסתכל חפש קדימה את המופע הבא של הטקסט המילולי בנקודה. אם הנקודה היא ה
מחרוזת null, נעשה שימוש בטקסט במאגר הסנרף. מאגר הסנרף אינו מושפע.
החלף מאגרי סנרף עם ריו.
/regexp
חפש קדימה את ההתאמה הבאה של הביטוי הרגולרי האחרון שהוקלד ב-a
פקודה. (לא בחלון הפקודה.)
לשלוח שלח את הטקסט בנקודה, או את מאגר הסנרף אם הנקודה היא מחרוזת האפס, כאילו זה היה
הקלד לחלון הפקודה. שומר את הטקסט שנשלח במאגר הסנרף. (פקודה
חלון בלבד.)
חיצוני תקשורת
סם מקשיב ל עריכה יציאת אינסטלציה. אם אינסטלציה אינה פעילה, בהזמנה סם יוצר
צינור בשם /srv/sam.המשתמש המשמש כמקור נוסף לפקודות. דמויות
שנכתבו לצינור הנקוב מטופלים כאילו הוקלמו בחלון הפקודה.
B היא פקודה ברמת מעטפת שגורמת למופע של סם פועל באותו מסוף ל
לטעון את השם קבצים. B משתמש בצנרת או בצינור הנקוב, לפי השירות
זמין. אם אינסטלציה אינה מופעלת, האפשרות מאפשרת לציין מספר קו
כדי שהמיקום הראשוני יוצג בקובץ בשם האחרון (צנרת מספקת עוד
מנגנון כללי ליכולת זו).
E היא פקודה ברמת מעטפת שניתן להשתמש בה בתור עורכת $ בסביבת יוניקס. זה רץ B
on פילה ואז לא יוצא עד פילה משתנה, מה שנלקח כאות לכך פילה
הסתיים בעריכה.
לא נורמלי סיום
If סם מסתיים שלא על ידי א q פקודה (על ידי ניתוק, מחיקת החלון שלו וכו'),
קבצים שהשתנו נשמרים בקובץ הפעלה, $HOME/sam.save. התוכנית הזו, מתי
מבוצע, שואל אם לכתוב כל קובץ בחזרה לקובץ חיצוני. התשובה גורמת
כְּתִיבָה; כל דבר אחר מדלג על הקובץ.
השתמש ב-samplan9 באינטרנט באמצעות שירותי onworks.net