איך הפסקתי לפחד ונתתי למחשב לעבוד בשבילי
פוסט זה כולל טיפ קצר על כלי עבודה בסביבת Linux. בשביל ללמוד יותר על עבודה בסביבת Linux ו Unix אני ממליץ לכם לבדוק את קורס Linux שיש לנו כאן באתר. הקורס כולל מעל 50 שיעורי וידאו והמון תרגול מעשי ומתאים גם למתחילים.
אין על אוטומציה, ולמרות זאת לפעמים יש משימות קטנות שנשארות אתנו בביצוע ידני הרבה זמן. לפעמים מתוך עצלות, לפעמים סתם לא בטוחים איך לגשת לזה. כך היה הסיפור שלי עם תאריכי פרסום לפוסטים.
קוראים וותיקים יודעים שאני מעלה פוסטים פעמיים בשבוע בימי שני וחמישי. הכתיבה מבוצעת איפשהו באמצע וכל פעם שאני כותב פוסט אני פותח יומן לראות מה התאריך של יום שני או חמישי הקרוב וקובע פרסום מושהה.
ואז למדתי יוניקס.
1. מציאת התאריך של יום שני או חמישי הקרוב ביוניקס
ברור שאפשר (וכנראה לא קשה) לכתוב תוכנית רובי שתחשב את תאריך הפרסום הבא. במקרה שלי זה לא קרה וכשנה וחצי בדקתי ביומן מהו תאריך הפרסום הבא. חיטוט מהיר ב man page של date הזכיר לי את המתג -v
שמאפשר הזזה של התאריך. נשלב את זה עם seq ונקבל:
$ seq 7 | xargs -IN date -v '+Nd'
Mon Aug 1 08:57:52 IDT 2016
Tue Aug 2 08:57:52 IDT 2016
Wed Aug 3 08:57:52 IDT 2016
Thu Aug 4 08:57:52 IDT 2016
Fri Aug 5 08:57:52 IDT 2016
Sat Aug 6 08:57:52 IDT 2016
Sun Aug 7 08:57:52 IDT 2016
ומכאן קל לראות לאן זה הולך. תוספת של grep והתאמות של התאריך תתן את התוצאה:
$ seq 7 | xargs -IN date -v '+Nd' +'%a:%Y-%m-%d'|egrep 'Mon|Thu'|head -1|cut -d: -f2
2016-08-01
ויש לנו את תאריך הפרסום הבא. עכשיו רק צריך קיצור דרך מהיר בעורך הטקסט.
2. קיצור דרך ל vim
עורך הטקסט האהוב עליי הוא vim. הדרך הקלה להוסיף קיצור דרך מסוג זה נקראת abbrevation. מאחר ואצטרך את התאריך רק בשורת הפקודה של vim כהמשך לפקודת :e
בעת פתיחת קובץ חדש אשתמש בפקודה cabbr כדי ליצור קיצור דרך שיוכר רק בשורת הפקודה.
הטריק הוא להשתמש ב Evaluation Register כדי להדביק תוצאה של פקודת vim, ולהשתמש בפקודה system כדי להריץ פקודת יוניקס. השורה הרלוונטית מתוך vimrc:
cabbr pdt <C-r>=system("seq 7 \| xargs -IN date -v'+Nd' +'%a:%Y-%m-%d' \| egrep 'Thu\|Mon' \| head -1 \| cut -d: -f2 \| xargs echo -n")<cr>
סימן \
הכרחי לפני כל |
כדי ש-וים לא יתבלבל לתת משמעות אחרת לסימן ה |
ויעביר אותו כמו שהוא ל system. כעת בפעם הבאה שאפתח קובץ ב vim ואשתמש בצירוף pdt אוטומטית הצירוף יוחלף בתאריך הפרסום של הפוסט הבא.
3. קיצור דרך ל Emacs
הבעיה היחידה עם וים שהוא לא תומך בכתיבה מימין לשמאל, ולכן בכאב אני כותב את הפוסטים האלה באימקס. גם לאימקס יש מצב החלפה אוטומטית שנקרא abbrev-mode, אבל בינתיים הצלחתי להפעיל אותו רק באופן גלובלי כך שהוא משנה כל רצף pdt במסמך. אגב בשביל לכתוב את הפוסט הזה הייתי צריך לכבות את אותו abbrev-mode.
הפקודה הרלוונטית מתוך init.el נראית כך:
(setq-default abbrev-mode t)
(define-abbrev global-abbrev-table "pdt" (shell-command-to-string "seq 7|xargs -IN date -v +Nd +'%a:%Y-%m-%d'|egrep 'Thu|Mon'|head -1|cut -d: -f2|xargs echo -n"))
ואולי זאת הסיבה המרכזית שאני מעדיף וים.
שורה תחתונה עורך הטקסט שלכם יכול להיות חבר טוב ולחסוך המון עבודה. כדאי להכיר אותו וללמוד איך להתאים אותו לתהליך העבודה שלכם, וכך תוכלו גם אתם לתת למחשב לעבוד בשבילכם.