Làm cách nào tôi có thể hoàn thành tab trong trình thông dịch Python tương tác?


14

Tôi thường sử dụng trình thông dịch tương tác của Python 3000, nhưng nó thiếu sự tiện lợi của việc hoàn thành tab mà tôi đã sử dụng từ ipython, không có sẵn cho Python 3.x.

Làm cách nào để tôi kích hoạt hoàn thành tab trong tất cả chúng, 2.6 và 3.x?

Câu trả lời:


17

Đầu tiên, tạo một tập tin mới được gọi .pythonstartup.pytrong thư mục nhà của bạn. Đặt đoạn script sau vào nó:

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

Các dấu ngoặc đơn xung quanh chuỗi đảm bảo rằng nó hoạt động với cả Python 2 và Python 3.

Mỗi khi trình thông dịch tương tác được khởi động, nó sẽ thực thi một tập lệnh được định nghĩa trong $PYTHONSTARTUP , nếu có. Để thiết lập nó để thực thi đoạn script trên, gõ

export PYTHONSTARTUP="~/.pythonstartup.py"

Bạn nên viết dòng này vào tập tin .bashrchoặc.bash_profile tập tin của bạn để nó tự động được thực thi khi bắt đầu trình bao mới.


6
THÔNG BÁO: Điều này sẽ không hoạt động nếu bạn khởi động thiết bị đầu cuối và sau đó thay đổi thư mục. Nếu bạn muốn phương thức này hoạt động bất kể thư mục của bạn là gì, bạn nên sử dụng đường dẫn đầy đủ nhưexport PYTHONSTARTUP="/home/user/.pythonstartup.py"
Pithikos

1
Bạn có thể làm cho việc xuất khẩu trở nên khoan dung hơn một chút bằng cách xuất khẩuPYTHONSTARTUP=~/.pythonstartup.py
Mikael Fremling

Điều này không hoạt động nếu bạn bắt đầu một tệp trong chế độ tương tác, ví dụ python -i main.py. Có cách nào để làm điều đó?
Chris Anderson
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.