2012-02-01 9 views
14

IDLE jest bardzo podejrzany, kiedy pokazuje menu autouzupełniania. Ostatnio nie działało w ogóle, a dokładniej działa tylko podczas sesji interaktywnej.Python IDLE. Automatyczne uzupełnianie/pokazywanie uzupełnień nie działa

Używam Code Blocks dla C i naprawdę przywykłem do bardzo miłych funkcji autouzupełniania, więc trochę frustrujące jest to, że ich nie ma - zwłaszcza podczas próby nauczenia się nowej ramki i klasy jest związane z metodami, itp., itp.

Czy istnieje łatwa poprawka, aby ponownie włączyć funkcję automatycznego uzupełniania IDLE? Używam wersji Pythona 2.7.

Czy jest być może prosty edytor, który powinienem sprawdzić? Wypróbowałem Vima, który był trochę za ciężki dla moich prostych potrzeb, Ninja, którego nie mogłem pracować za nic, i Wysublimowany tekst 2, do którego nie mogłem dostać rzeczy do wxpythona. Co by było fajnym rozwiązaniem? Coś podobnego do Code Blocks byłoby fajne, chociaż byłbym całkowicie zadowolony z IDLE, gdyby działał konsekwentnie!

ŻĄDANE WYJAŚNIENIE: OK, więc wydaje mi się, że mogę odejść od mojej terminologii. Przez nieinteraktywny mam na myśli, na przykład, kliknięcie prawym przyciskiem myszy pliku py i wybranie "edytuj z IDLE". Pojawia się to, co, jak sądzę, można opisać jako edytor tekstu. Tutaj możesz wpisać cały swój kod. Gdy będziesz gotowy, wtedy wciśnij F5 lub wybierz Uruchom, a następnie uruchomi (to, o czym już mówiłem) interaktywny terminal. To tutaj możesz wpisać kod, nacisnąć return i natychmiast ocenić ten kod.

Moje pytanie odnosi się do tego pierwszego, do części IDLE, gdzie edytujesz kod. Czasami podczas pisania po. wyświetli dostępne metody lub po otwartym nawiasie da wskazówki co do oczekiwanych wartości. ale chodzi o to, że czasami robi to, czasem nie.

+0

http://ipython.org/ z vim lub nawet po prostu gedit – wim

+0

@wim Przepraszamy, być może wyjaśniłem to źle w moim poście, ale problem polega na tym, że autouzupełnianie działa interaktywnie, ale * tylko * interaktywnie.Jeśli po prostu piszę w autouzupełnianiu IDLE, to nie działa. Tak więc próbuję dowiedzieć się, jak sprawić, aby działało podczas kodowania * nie * -interaktywnie. – Zack

+2

Dobra, przepraszam! Nie znalazłem żadnej potrzeby IDE podczas pracy w Pythonie, więc nie może ci pomóc. – wim

Odpowiedz

11

Jedyne, co do tej pory znalazłem, jest to, że jeśli sesja edycyjna IDLE jest połączona z powłoką Pythona (nazywaną "trybem interaktywnym" w pytaniu, tj. Po próbie uruchomienia edytowanego skryptu) to "nieinteraktywna" IDLE może autouzupełnianie na podstawie wartości w oknie interaktywnym. Na przykład, jeśli wpisuję

a = []; 
a.appen 

a następnie uderzył < Tab> będzie nic nie robić, ale jeśli wcześniej wpisać

a = [] 

w odpowiednich Pythona powłoki, IDLE uzupełni poprawnie.

Tak więc moją jedyną sugestią jest importowanie tych samych modułów o tych samych nazwach w oknie powłoki Pythona, aby uczynić je "widocznymi" dla nieinteraktywnego edytora IDLE.

+1

Działa to, nawet jeśli skrypt jest niekompletny (powoduje błędy po uruchomieniu). Dzięki za wskazówkę. Niestety, będziesz musiał uruchomić swój kod w różnym czasie, budując skrypt, aby to uzyskać. Będzie to jednak bardziej przydatne, ponieważ twój kod będzie dłuższy. W dłuższym kodzie będziesz starał się używać wcześniej zdefiniowanych zmiennych (testowanych za pomocą F5), a tym samym więcej rzeczy dostępnych podczas autouzupełniania. – VISQL

9

Miałem ten sam problem z IDLE, ponieważ chcę nauczyć się Qt i dlatego autouzupełnianie jest bardzo przydatne. Zgodnie z ustawieniami narzędzia IDLE można włączyć autouzupełnianie za pomocą opcji "Sterowanie + spacja", np. po "QtGui.". Następnie otwiera się menu, w którym można przewijać strzałki.

+2

Nie mogę jeszcze głosować, ale dziękuję user2366975! Używanie Ctrl + Spacja działa jak urok. IDLE jest dość szybki w systemie Windows, ale na moim Macu trwało wieczne udostępnianie opcji autouzupełniania. Do widzenia, TextWrangler, znowu będę używał IDLE. – VDubs

+0

cieszę się, że pomogło :) – user2366975

+0

Aby autouzupełnianie działało, musisz najpierw zaimportować bibliotekę. Następnie autouzupełnianie oferuje funkcje/klasy (po ctr + spacja) i tabulator. – icypy

0

W moim przypadku musiałem otworzyć menu Opcje -> zakładka Rozszerzenia w edytorze i sprawdzić, czy Autouzupełnianie i inne odpowiednie opcje zostały włączone. W rzeczywistości były, ale po prostu klikając na "Zastosuj", mimo że nie muszę nic zmieniać, zrobiłem dla mnie tę sztuczkę.