到目前為止,我用Eclipse已經有一些年頭了,大部分的時間都是用來寫Python(安裝Pydev插件)以及C++(安裝CDT插件)。
最近我從一個好友那裡聽說了PyCharm以及它新的免費社區版logr。我這個朋友用Eclipse也很久了,對PyCharm也是讚不絕口,所以我決定至少在家辦公的時候試著用用PyCharm。到目前為止,我已經深深的喜歡上了它,甚至在日常工作時也用PyCharm(社群版採用Apache2授權)。
以下我將會介紹一些在我在使用PyCharm時感到驚奇的一些事情。
聲明
我無意批評Eclipse或PyDev,我用了它們很多年,它們很棒!請記住,這是我的個人經驗,你的或許有所不同。
實時比較
PyCharm 對一個文件裡你做的改動保持實時的跟踪,通過在編輯器的左側欄顯示一個藍色的標記。
這一點非常方便,我之前一直是在Eclipse裡面用命令“Compare against HEAD” 來比較一個文件前後的改動。
在PyCharm中,你可以對你的改變一覽無餘。同時,點擊那個標記,會顯示出先前的內容以及一個工具列:
你可以很容易地回滾這些改動,在一個詳盡的對話框中查看這些改動或是將之前的文本粘貼到剪切板上。
提交時的比較預覽
在Eclipse 中,當你提交改動時,會有一個提交對話框向你展示將要被提交的文件列表。
你可以雙擊其中任何一項來查看改動的對比:這時候,如果你看到代碼裡一些想修改的地方(比如一個拼錯的單詞,一段
遺漏的文檔,等等),那可就不爽了:你必須關閉所有的東西(包括帶有你精心寫好的提交註釋的提交框),去找到那處惹人煩的程式碼,改正,然後從頭再來一遍。
PyCharm 有相同的特性,但是你的改變是可編輯的。我簡直不能再去強調可以當場修正那些錯誤有多棒啦!
在提交過程中,我可以很容易地修復像上面那些類似的拼寫錯誤。
一個額外好處是,無論你因為何種原因關閉了提交對話框,當再次嘗試提交時,它會保留你剛才填寫的那些提交註釋。
提交時檢查
在提交過程中,我們還可以在實際提交前執行其他一些選項,像“優化導入(排序並移除未使用過的導入)“,檢查變動集合中的待完成項等等。
一個有意思的地方是」執行程式碼分析「那一項。 。 。
程式碼審查
你可以讓PyCharm在一個文件,目錄或整個專案裡執行「程式碼審查」操作。它會在無需實際執行程式的情況下,
找出存在問題以及相應的改進辦法,例如類型檢查,可靜態的方法,違反程式碼規範等等問題。
正如在上一節中解釋過的,這也可以在提交時在發生改動的文件中自動完成。這是一個文件一次審查之後的結果:
對於其中一些審查結果來說,你還可以應用一個修復建議。例如,對於「Function call can be replaced with set literal()」這個建議,我們可以選擇對應的選項來修復。
PyCharm 會將這句話:
extensions = set(['.avi', '.mp4', '.mpg', '.mkv'])
自動替換為:
extensions = {'.avi', '.mp4', '.mpg', '.mkv'}
重構
我一直在試圖重命名一個模組,可在選單項目裡一直找不到那一項。 。 。 F2也無濟於事。
突然我注意到文件子選單下面的」重構/重命名「一項,就想。 。 。會是它嗎?果然就是!
在你重新命名一個模組時,PyCharm會詢問你是否需要自動修改所有與之關聯的項目。有福了!
還有很多其他的重構項目,但目前為止我還沒有機會一一嘗試。
關於過時程式碼的提示以及改進建議
PyCharm可以告訴你程式碼裡面過時的結構塊,並且提出一些改進建議。例如,我有像下面一段這樣的程式碼:
with nested(open(filename1), open(filename2)) as (f1, f2): <代码块>
PyCharm會明顯的標註出nested:
訟但是,唉,我還得支援python的一些舊版本,就保留了nested。但PyCharm提醒了我,這個事情本身還是很酷的。
任務+特性 分支
如同Eclipse一樣(需要Mylin支援),PyCharm也支援基於任務的工作流程(包括任務感知的上下文)。
然而PyCharm本身自帶了許多直接可用的連接器(GitHub,Mantis,Jira,Bugzilla,等等)。
而且,當你開啟一項任務時,它會詢問你是否想要創建那個任務的一個特性分支,分支的名字可以配置。
這就避免了必須手動創建一個新的分支,而這個操作確實挺繁瑣的(拿到任務的ID,選擇名稱,等等)。這個是加分項。
快速
我觀察到PyCharm在執行程式碼的自動完成時掃瞄程式碼的速度要遠快於Eclipse,而且還不打斷你目前的工作。
當你想保存一個檔案時,Eclipse會阻止你這麼做因為它正在後台執行一個任務,這有多惹人煩。 。 。
快速查看文檔
當你把遊標挪到一個函數、方法,類或者別的什麼上的時候,你會得到一個選項來瀏覽」快速文檔「。看一眼:
正如你所看到的,它會用一種賞心悅目的格式展示方法的文檔說明,還從程式碼使用說明中提示了參數的類型。 。 。即使函數沒有對應的文件說明,你還是會得到像下面這樣的一個說明: 很好!Docutils 支援
PyCharm 還包括了對doctils的一流支持,這讓它很容易從集成開發環境中直接再生成文件。
另一方面,它也包含了一個非常好的富文本(譯者註:ReST即reStructuredTexteditor)編輯器(比Eclipse的IMHO好用的多):
完善的插件系統
跟據我的使用經驗,在Eclipse裡面安裝插件是件挺痛苦的事情:
很難找到你想要去的地方(提示: 幫助/安裝新軟體。。);
你沒有一個單一的索引,所以你得去網上去找那些插件來源;
系統有時會因為庫的依賴問題而崩潰,結果我就沒裝上那些我想要的插件(工作中還有其他人也同樣遇到這個問題,最後不得不放棄);
PyCharm的插件體驗則要流暢地多。
首先,它位於一個你認為它有可能會存在的地方:就在」設定」下面的一項:
你可以很容易地瀏覽插件:
你可以很容易地瀏覽插件:🎜我標記編輯器(和ReST一樣),一個暫時存放程式碼片段的插件,可以讓我直接從選取的文字中快速地剪貼,並且預覽程式碼,和SublimeText類似,還用一個漂亮的程式碼外觀。 🎜