2012-02-01 147 views
14

IDLE在實際顯示自動完成菜單時非常不靈活。最近它一直沒有工作,或者更具體地說,只在交互式會話期間工作。Python IDLE。自動完成/顯示完成不起作用

我一直在使用C語言的代碼塊,並且已經非常習慣非常好的自動完成功能,所以它沒有讓他們感到有點沮喪 - 尤其是在嘗試學習新的框架工作和什麼類的時候與哪些方法等有關聯。

是否有一個簡單的修復程序讓IDLE自動完成重新工作?我正在使用Python版本2.7。

有沒有可能是一個簡單的編輯器,我應該看看?我已經嘗試過Vim,這對我的簡單需求來說有點過於沉重,忍者,我無法爲任何事情工作,而崇高的文本2,我無法讓我的wxpython的東西玩。什麼是一個不錯的選擇?任何類似於代碼塊的東西都會很酷,不過,如果它能夠一直工作,我會非常滿意IDLE的!

請求的澄清: 好的,所以我覺得我可能會有一些術語倒退。通過非交互式,我的意思是,例如,右鍵單擊py文件並選擇「使用IDLE編輯」。這帶來了我認爲可以被描述爲文本編輯器。你可以在這裏輸入你所有的代碼。一旦準備好了,你就按F5,或者選擇Run,然後啓動(我一直指的是)交互式終端。在這裏,您可以鍵入代碼,按回車鍵,然後立即對代碼進行評估。

我的問題是指前者,編輯代碼的IDLE部分。有時在打字之後,它會顯示可用的方法,或者在一個左括號之後,它會給出預期值的提示。但事情是,有時它會做這些事情,有時它不會。

+0

http://ipython.org/用vim甚至是簡單的gedit – wim 2012-02-01 01:27:04

+0

@wim對不起,我可能在我的帖子中有過不好的解釋,但問題是自動完成工作交互式工作,但*只*交互式。如果我只是在IDLE中輸入自動完成功能不起作用。所以我試圖弄清楚如何在編碼*非交互式時使它工作。 – Zack 2012-02-01 01:29:46

+2

噢,對不起!在Python中工作時我沒有發現任何需要IDE的地方,所以不能幫助你。 – wim 2012-02-01 01:32:28

回答

11

我到目前爲止唯一發現的是,如果編輯會話的IDLE與python shell(在問題中稱爲「交互模式」,即在嘗試運行編輯的腳本之後)連接,那麼「非交互式」 IDLE可以根據交互式窗口中的值自動完成。例如,如果我輸入

a = []; 
a.appen 

,然後按下Tab鍵<>它會做什麼,但如果我以前在相應的Python Shell中鍵入

a = [] 

,IDLE將正確自動完成。

所以我唯一的建議是在python shell窗口中導入相同的模塊,以便使它們對於非交互式IDLE編輯器「可見」。

+1

即使您的腳本不完整(運行時產生錯誤),這也可以工作。謝謝你的提示。不幸的是,當您構建腳本來獲取此代碼時,您不得不多次運行代碼。但是,隨着代碼變長,這會更有用。在更長的代碼中,您會傾向於使用先前定義的變量(您使用F5進行測試),因此可以使用自動完成下的更多功能。 – VISQL 2017-05-18 17:07:12

9

我和IDLE有同樣的問題,因爲我想學習Qt,因此autocompletion非常有用。 正如它在IDLE設置中所說的那樣,您可以使用「Control + Space」觸發自動填充,例如,在「QtGui」之後。然後打開一個菜單,您可以在箭頭中滾動條目。

+2

我還不能投票,但是謝謝user2366975! 使用Ctrl + Space可以像魅力一樣工作。 Windows下的IDLE速度非常快,但在我的Mac上,它永久地給我選擇自動完成。再見了TextWrangler,我將再次使用IDLE。 – VDubs 2013-05-27 17:41:47

+0

很高興它幫助:) – user2366975 2014-06-02 21:10:12

+0

所以爲了自動完成工作,你需要首先導入一個庫的shell。然後自動完成將提供函數/類(在ctr +空格之後)和製表符。 – icypy 2018-01-03 00:39:23

0

在我的情況下,我不得不打開編輯器上的選項菜單 - >擴展選項卡,並確保啓用了自動完成和其他相關選項。他們實際上是,但只要點擊'申請'即使我不得不改變任何事情對我來說是伎倆。