שגיאת פתרון בעיות: Vim לא יכול לפתוח קובץ לכתיבה

Troubleshooting Error



Vim הוא עורך טקסט המשמש במערכות הפעלה Linux המסייעים ביצירה ועדכון של קבצי טקסט שונים עם הרחבות שונות. לפעמים, כשאתה מנסה ליצור קבצים בעזרת כלי Vim, מתקבלת שגיאה: Vim לא יכול לפתוח קובץ לכתיבה. הסיבות לשגיאה זו יכולות להיות יותר מאחת.

דרישות מוקדמות:

עליך להתקין ולהגדיר את הפצת Linux במחשב שלך. במקרה שלנו, יש לנו הפצת אובונטו 20.04 לינוקס. מצד שני, עליך להיות בעל זכויות סודו לשימוש במערכת לינוקס וכלי השירות Vim.







התקנת Vim:

כבר בהתחלה, עליך לוודא שיש לך כלי Vim מותקן בהפצת Linux שלך. לשם כך, נבדוק זאת תחילה במערכת שלנו. לכן, עליך לפתוח את מסוף שורת הפקודה מסרגל הפעילויות של שולחן העבודה של לינוקס. לאחר מכן, בצע את הפקודה למטה Vim כדי לקבל מידע על Vim. כפי שמוצג בתמונה, אין כלי Vim מותקן באובונטו 20.04 שלנו. הוא גם מציע כמה פקודות הוראה להתקנת Vim במערכת. השתמש באחד מהם להתקנת Vim.



$ בוא







כעת, תורנו להתקין את Vim במערכת הלינוקס שלנו. לכן עלינו להשתמש בפקודה sudo apt לשם כך. נסה את הפקודה שלהלן כדי להתקין אותה במערכת שלך. הוא יזדקק לקוד הסיסמה של חשבון הבסיס שלך כדי לאתחל את תהליך ההתקנה. הזן את סיסמת סודו שלך ולחץ על כפתור Enter כדי להמשיך. תראה שהוא יתחיל להתקין ולהוריד את כלי השירות Vim יחד עם חבילות אחרות.

$סודומַתְאִיםלהתקין באתי




במהלך תהליך ההתקנה, היא תשהה, ותופיע שאלה. המערכת תכניס שאלה לאישור פעולת ההתקנה שלך, האומרת: האם אתה רוצה להמשיך? [Y/n]. אם אתה רוצה להמשיך את תהליך ההתקנה של Vim, עליך להקיש על y ולחץ על Enter, אחרת הקש על n והקש על כפתור Enter. אז הקשנו על Y והקשנו על מקש Enter כדי להמשיך בהתקנת עורך Vim באובונטו 20.04.


הוא יתחיל בהתקנה הנכונה של עורך Vim. עליך להמתין זמן מה עד להשלמת התהליך.

לאחר התקנת Vim, תוכל לבדוק את המידע שלה באמצעות אותה פקודה להלן.

$ בוא

אם מערכת הלינוקס שלך פותחת בהצלחה את החלון שלהלן כפי שמוצג בתצלום המצורף, אז טוב להשתמש בעורך Vim.

קבל שגיאה:

כעת ניצור קובץ באמצעות הפקודה Vim במעטפת הפקודה. ניצור קובץ זה בכל אחת מהספריות. אז נסה את הפקודה למטה Vim כדי ליצור קובץ smtpd.conf בנתיב הספרייה המפורט להלן.

$ vim /usr/lib64/sas12/smtpd.conf


החלון המוצג להלן ייפתח, כאשר הנתיב ושם הקובץ יופיעו בצד התחתון של הכותרת התחתונה. הגיע הזמן לכתוב את תוכן הקובץ בנתיב הנתון.

כדי לכתוב את תוכן הקובץ ולצאת מעורך ה- Vim, נסה את הפקודה wq להלן יחד עם הסימן המעי הגס: ולאחר מכן לחץ על כפתור Enter כדי להפעיל פקודה זו.

: wq

מיד לאחר שתלחץ על כפתור Enter, תקבל שגיאה: E212: לא ניתן לפתוח קובץ לכתיבה כפי שמוצג בתמונת הפלט שלהלן. לחץ על הלחצן Enter כדי להמשיך.

כדי לבדוק את הסיבה לשגיאה זו, עלינו לכתוב הוראה נוספת בעורך Vim. נסה את פקודת sudo להלן בעורך Vim, החל במילת המפתח: w, וכלה במילת המפתח tee ובסימן האחוזים. הקש על מקש Enter כדי לראות את הסיבה לשגיאה.

: ב! סודו טי %


זה דורש את סיסמת חשבון sudo שלך כדי לכתוב את תוכן הקובץ ולשמור את הקובץ בנתיב שהוזכר. הזן את קוד סיסמת השורש שלך ולחץ על כפתור Enter. הפלט מראה כי אין קובץ או ספרייה כאלה זמינים במערכת Linux שלך. המשמעות היא שאנו מספקים את הסיבה לשגיאה זו. לחץ שוב על מקש Enter כדי להמשיך עם Vim.

כתוב את הפקודה להלן צא ולחץ על מקש Enter כדי לחזור למעטפת הטרמינל.

: מה

למדנו על הסיבה לשגיאה, זאת מכיוון שהנתיב שסופק לא נוצר בפועל. תוכל גם לבדוק את הנתיב במעטפת שורת הפקודה באמצעות הפקודה ls. הפלט מראה שמדריך כזה אינו נוצר.

$ ls / usr / lib64 / sas12

פתרון שגיאה:

ראשית, עלינו ליצור נתיב או ספרייה במעטפת שורת הפקודה. כדי ליצור ספרייה המוזכרת בנתיב המפורט לעיל, עלינו להשתמש בפקודה mkdir יחד עם הדגל -p. אם אתה משתמש ב- mkdir ללא מילת המפתח sudo יתכן כי באמצעות חריג ההרשאה נדחתה.

$mkdir– עמ/usr/lib64/sas12

ננסה את הפקודה הזו עם מילת המפתח sudo ותראה שהיא עובדת מצוין.

$סודו mkdir– עמ/usr/lib64/sas12

שוב כתוב את הפקודה Vim ואחריה נתיב הקובץ כדי לבדוק את השינויים. זה יפתח את עורך Vim.

$באתי /usr/lib64/sas12/smtpd.conf

כאשר אתה כותב את פקודת sudo להלן, ייתכן שתצטרך להמשיך את סיסמת חשבון sudo שלך. לאחר כתיבת קוד הסיסמה ולחיצה על כפתור Enter, אתה יכול לראות שהוא יפיק אזהרה. עליך ללחוץ על מקש L ואחריו על כפתור Enter כדי לטעון קובץ זה בתיקייה המסופקת.

: ב!סודו טי %

הוא יטען את הקובץ וייתן לו זכויות לקריאה בלבד. הקש על מקש Enter.

עכשיו, כשאתה מזין את הפקודה wq, זה יעבוד מצוין.

: wq

סיכום:

עשינו את פתרון השגיאה: Vim לא יכול לפתוח קובץ לכתיבה, כהרף עין. אני מקווה שתוכל לפתור את השגיאה הזו בנוחות.