עריכת קלט אינטרקטיבית

עריכת קלט אינטראקטיבית והשלמה אוטומטית במפרש של פייתון

המפרש של פייתון לסביבת יוניקס, מאפשר מספר יכולות עריכת שורה מתקדמות באמצעות הספרייה GNU Readline. במסמך זה, אציג את השימוש בכמה מהן. מבוסס על [WWW] הטוטוריאל הרשמי של פיתון.

במסמך זה, קיצור מקשים המתחיל ב-C, מסמן Ctrl, כלומר, C-E הוא למעשה Ctrl+E

עריכת שורה

בעת הקלדת פלט למפרש של פייתון, ניתן לערוך את השורה הנוכחית באמצעות קיצורי המקשים המשמשים את GNU Emacs. בפרט, נזכיר כאן את C-A המשמש לנוע לתחילת השורה, C-E לסופה, ואת C-K, ש"הורג" את השורה עד לסופה ואת C-Y שמדביק חזרה את הטקסט ש"נהרג".C-/ מבטל את הפעולה האחרונה שנעשתה.

שימוש בהיסטורית פקודות

כמו ב-Bash, גם פייתון מאפשר עיון בהיסטוריה, ובצורה דומה: החצים (או C-P ו- C-N, אם כבר הזכרנו את הקיצורים של Emacs) . שימוש ב- C-R מאפשר חיפוש הדרגתי אחר פקודות שהוקלדו בעבר. ניתן לשנות פקודות שאוחזרו מההיסטוריה, או להריץ אותן ללא שינוי.

השלמה אוטומטית

המפרש של פייתון, בדומה ל-Bash, מאפשר להשלים אוטומטית שמות של אובייקטים (שבפייתון, כמו בפייתון - זה בעצם הכל) הזמינים בסביבת העבודה. כך, באמצעות אפשור האופציה:

[[ltr]]

import rlcompleter, readline
readline.parse_and_bind('tab: complete')

[[rtl]]

ניתן לדרוש מפייתון להשלים את הפקודה בעת לחיצה כפולה על Tab. ניתן לקבע את ההוראה הזו על ידי רישומה בקובץ, לדוגמה, ~/.pystartup, PYTHONSTARTUP כך שיצביע עליו. והגדרת משתנה הסביבה

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

מידע נוסף

הסברים מפורמטים יותר אודות שימוש ביכולות של GNU Readline בפיתון ניתן למצוא בדף המתאים במבוסס על [WWW] הטוטוריאל הרשמי של פיתון, וב[WWW] תיעוד של GNU readline.

טיפ למשתמשי מק

ספריית readline לא מופצת יחד עם פייתון, כנראה בגלל בעיות רישוי. נדמה לי שהוא מותקנת כבר במערכת עשר, שהרי כל ה-shells מאפשרים עריכה של הקלט, אבל פייתון לא יודע להשתמש בזה. הפתרון הוא פשוט, ותמצאו אותו כאן: [WWW] http://www.pycs.net/bbum/2004/1/21/#200401211


קטגוריה היפי

last edited 2004-09-13 19:09:42 by ניר סופר