ฉันจะทำให้แท็บเสร็จสมบูรณ์ในล่าม Python แบบโต้ตอบได้อย่างไร


14

ฉันมักใช้ล่ามแบบอินเทอร์แอคทีฟของ Python 3000 แต่มันขาดความสะดวกสบายในการใช้งานแท็บจนเสร็จสิ้นที่ฉันคุ้นเคยจาก ipython ซึ่งไม่สามารถใช้งานได้กับ Python 3.x

ฉันจะเปิดใช้งานการทำให้แท็บสมบูรณ์ในแท็กทั้งหมด 2.6 และ 3.x ได้อย่างไร

คำตอบ:


17

ก่อนอื่นให้สร้างไฟล์ใหม่ที่เรียกว่า.pythonstartup.pyในโฮมไดเร็กตอรี่ของคุณ ใส่สคริปต์ต่อไปนี้ลงไป:

try:
    import readline
except ImportError:
    print("Module readline not available.")
else:
    import rlcompleter
    readline.parse_and_bind("tab: complete")

วงเล็บที่อยู่รอบ ๆ สตริงจะต้องแน่ใจว่าสามารถใช้งานได้กับทั้ง Python 2 และ Python 3

ทุกครั้งที่มีการเริ่มล่ามแบบโต้ตอบมันจะเรียกใช้งานสคริปต์ที่กำหนดไว้$PYTHONSTARTUPหากมี หากต้องการตั้งค่าให้เรียกใช้สคริปต์ด้านบนให้พิมพ์

export PYTHONSTARTUP="~/.pythonstartup.py"

คุณควรเขียนบรรทัดนี้ไปที่ไฟล์.bashrcหรือ.bash_profileไฟล์ของคุณเพื่อให้มันทำงานโดยอัตโนมัติเมื่อเชลล์ใหม่เริ่มทำงาน


6
ข้อสังเกต: สิ่งนี้จะไม่ทำงานหากคุณเริ่มต้นเครื่องจากนั้นเปลี่ยนไดเรกทอรี หากคุณต้องการให้วิธีนี้ทำงานไม่ว่าคุณจะอยู่ในไดเรกทอรีใดคุณควรใช้เส้นทางแบบเต็มเช่นexport PYTHONSTARTUP="/home/user/.pythonstartup.py"
Pithikos

1
คุณสามารถทำให้การส่งออกมีความทนทานมากขึ้นโดยการส่งออกPYTHONSTARTUP=~/.pythonstartup.py
Mikael Fremling

python -i main.pyนี้จะไม่ทำงานถ้าคุณเริ่มต้นแฟ้มในโหมดโต้ตอบเช่น มีวิธีใดที่จะทำเช่นนั้น?
Chris Anderson
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.