1. Key Promoter X
如果讓我給新手推薦一個 PyCharm 必裝外掛,那一定是 Key Promoter X 。
它就相當於一個快捷鍵管理大師,它時刻地在:
教導你,當下你的這個操作,應該使用哪個快捷操作來提高效率?提醒你,當下你的這個操作,還沒有設定快捷鍵,趕緊設定一個?有了 Key Promoter X,你很快就能熟練地掌握快捷鍵,替代滑鼠指日可待。
比如我使用滑鼠點開 Find in Path,它就會在右下角彈窗提示你該用哪個快捷鍵。
2. Vim in PyCharm在大多數場景之下,使用滑鼠的效率和精準度,是遠不如鍵盤快捷鍵的(前提是你已經相當熟練的掌握了快捷鍵),這個你得承認吧。
Vi 可以滿足你對文字操作的所有需求,比視覺化介面更加效率,更加 geek。如果你和我一樣,是忠實的 vim 粉。在安裝完 Pycharm 完後,肯定會第一時間將 ideaVim 這個外掛也裝上,它可以讓我們在 Pycharm 中 使用 vim 來編輯程式碼。
安裝方法如下,安裝完後需要重啟 Pycharm 生效。
3. Markdown in PyCharm富文字排版文件是一件非常痛苦的事情 ,對於程式設計師寫文件,最佳的推薦是使用 Markdown ,我所有的部落格日記都是使用 Markdown 寫出來的。
從 Github下載的程式碼一般也都會帶有README.md檔案,該檔案是一個Markdown格式的檔案。
PyCharm是預設沒有安裝Markdown外掛的,所以不能按照Markdown格式顯示文字,顯示的是原始文字。
因此,如果要在 PyCharm 中閱讀 Markdown 文件,可以裝一下 Markdown support 這個外掛。
安裝的方法有兩種:
1、第一種,最方便的,就是你開啟一個 MD 的文件,PyCharm 就會提示你安裝它。
2、從外掛商店中搜索安裝。
效果如下
4. Jupyter Notebook in PyCharm使用 Jupyter 之前 ,先要安裝它
$ pip install jupyter
然後按照下圖指示新建一個 Notebook ,就可以開始運作了。
這個介面感覺和 Jupyter 的風格不太符
但是使用上是沒有什麼區別的,記住三個快捷鍵就好(下面指的是 Mac 上的,Windows 上的有所不同)
Ctrl+Enter:執行該 cellOption + shift + Enter:除錯該 cellShift + Enter:插入一個新的 cell只要你安裝了 Jupyter 後,你使用 Python Console 也會自動變成 Jupyter 的模式
5. Regex Tester in PyCharmRegex Tester是PyCharm的第三方外掛,可以測試正則表示式。
按照下圖入口,安裝 Regex Tester 外掛:
使用效果如下:
6. Use Bash in Windows在 Windows 上的 cmd 命令和 Linux 命令有不少的差異,比如要列出當前目錄下的所有檔案,Windows 上是用 dir ,而 Linux 上則是用 ls -l 。
對於像我這樣熟悉 Linux 的開發者來說,Windows 的 那些 CMD 命令帶來的糟糕體驗是無法忍受的。
在彈出的 Bash 視窗,你可以敲入你想使用的 Linux 命令,是不是舒服多了。
7. Auto PEP8 in PyCharmpep8 是Python 語言的一個程式碼編寫規範。如若你是新手,目前只想快速掌握基礎,而不想過多去注重程式碼的的編寫風格(雖然這很重要),那你可以嘗試一下這個工具 - autopep8
首先在全域性環境中(不要在虛擬環境中安裝),安裝一下這個工具。
$ sudo pip install autopep8
然後在 PyCharm 匯入這個工具,具體設定如下圖
Name: AutoPep8Description: autopep8 your codeProgram: autopep8Arguments: --in-place --aggressive --aggressive $FilePath$Working directory: $ProjectFileDir$Output filters: $FILE_PATH$\:$LINE$\:$COLUMN$\:.*
我隨意寫了一段不符合 pep8 規範的程式碼。
看一下效果,還是挺明顯的。
你可能會說,Pycharm 本身就自帶這個功能了呀,快捷鍵 Command+Option+L ,就可以實現一鍵pep8了。你可以對比一下,Pycharm 自帶的程式碼 pep8 化功能 並沒有像這個autopep8 來得徹底。我相信你最終的選擇肯定是後者。
8. Test RESTful Web ServicePyCharm 的 Test RESTful Web Service工具提供了RESTful介面測試介面,如下圖所示,提供了get、post,put等http方法,其中的Request子介面headers,Parameters,Body等功能,Response子介面用於顯示返回值,Response Headers用於顯示返回的訊息頭。
為了演示,我先使用 Flask 寫一個 HTTP 介面
from flask import Flask, requestapp = Flask(__name__)@app.route('/hello')def index(): name = request.args.get('name') return '你好,' + nameif __name__ == '__main__': app.run()
並執行它開啟服務,訪問地址是:http://127.0.0.1:5000/
透過下圖方式開啟 Test RESTful Web Service
會出現如下介面,在紅框處填寫如下資訊
9. Execute Selection in Console當你想寫一段簡單的測試程式碼時,或許你會這樣子
使用 Python Shell 直接寫。缺點是沒有自動補全。在 PyCharm 中新開一個檔案。缺點是要新建立一個檔案,完了後還要刪除。今天再給大家介紹一種新的方法,可以完全避開上面兩種方式的缺點。
那就是 Execute Selection in Console,可以說是 Run in Anywhere.
只要在當前檔案中,寫好程式碼,然後游標選擇後,右鍵點選 Execute Selection in Python Console或者 使用快捷鍵 option + shift + E (windows 上是 alt + shift + E)。
接著 PyCharm 就會彈出一個 Python Console 視窗,然後執行你所選擇的程式碼。
可以發現其中的一個亮點,就是使用這種方法,PyCharm 會自動幫我們處理好縮排(我們選擇時,前面有縮排,可是在執行時,會自動去掉前面多餘的縮排)
10. CodeGlance如果你曾使用過 Sublime Text,切換到其他程式碼編輯器,或多或少會有些不習慣,因為很少有編輯器會像 Sublime 那樣自帶一個預覽功能的捲軸。
在 PyCharm 中,就沒有解決不了的問題,如果有,那麼就裝個外掛。
要想在 PyCharm 中使用這個預覽捲軸,只要裝上 CodeGlance 這個外掛。使用效果如下
11. Chinese Plugin經常聽到很多初學者抱怨說,PyCharm 怎麼是全英文的?學起來好難啊。
在以前,我會跟他們說,學習程式語言,英文是一項非常重要的能力,千萬不能懼怕它,逃避它,而要是去學習它,適應它,如果連個 IDE 都適應不了,那就別學程式設計了。
而現在,JetBrains 官方自己出了漢化外掛,名字就叫:chinese,在外掛市場裡一搜,排名第一便是它,下載量已經 40 萬,對比排名第二的民間漢化外掛,簡直不是量級的。
重啟完成後,展現在我們面前的是一個既熟悉又陌生的介面,所有的選單欄全部變成了中文。
點進設定一看,可以說基本實現了漢化,只剩下一小撮的英文(難道是因為這些詞保留英文會比翻譯後更容易理解嗎?就像 socket 和套接字一樣。),不過個人感覺完全不影響使用了。
12. Profile in PyCharm在 Python 中有許多模組可以幫助你分析並找出你的專案中哪裡出現了效能問題。
比如,常用的模組有 cProfile,在某些框架中,也內建了中介軟體幫助你進行效能分析,比如 Django ,WSGI。
做為Python 的第一 IDE, PyCharm 本身就支援了這項功能。而且使用非常方便,小白。
假設現在要分析如下這段程式碼的效能損耗情況,找出到底哪個函式耗時最多
import timedef fun1(): time.sleep(1)def fun2(): time.sleep(1)def fun3(): time.sleep(2)def fun4(): time.sleep(1)def fun5(): time.sleep(1) fun4()fun1()fun2()fun3()fun5()
點選 Run -> Profile '程式' ,即可進行效能分析。
執行完畢後,會自動跳出一個性能統計介面。
效能統計介面由Name、Call Count、Time(ms)、Own Time(ms) ,4列組成一個表格,見下圖。
表頭Name顯示被呼叫的模組或者函式;Call Count顯示被呼叫的次數;Time(ms)顯示執行時間和時間百分比,時間單位為毫秒(ms)。點選表頭上的小三角可以升序或降序排列表格。在Name這一個列中雙擊某一行可以跳轉到對應的程式碼。以fun4這一行舉例:fun4被呼叫了一次,執行時間為1000ms,佔整個執行時間的16.7%點選 Call Graph(呼叫關係圖)介面直觀展示了各函式直接的呼叫關係、執行時間和時間百分比,見下圖。
箭頭表示呼叫關係,由呼叫者指向被呼叫者;矩形的左上角顯示模組或者函式的名稱,右上角顯示被呼叫的次數;矩形中間顯示執行時間和時間百分比;矩形的顏色表示執行時間或者時間百分比大小的趨勢:紅色 > 黃綠色 > 綠色,由圖可以看出fun3的矩形為黃綠色,fun1為綠色,所有fun3執行時間比fun1長。從圖中可以看出Test.py直接呼叫了fun3、fun1、fun2和fun5函式;fun5函式直接呼叫了fun4函式;fun1、fun2、fun3、fun4和fun5都直接呼叫了print以及sleep函式;整個測試程式碼執行的總時間為6006ms,其中fun3的執行時間為1999ms,所佔的時間百分比為33.3%,也就是 1999ms / 6006ms = 33.3%。13. Json Parse in PyCharm在開發過程中,經常會把校驗一串 JSON 字串是否合法,在以前我的做法都是開啟 https://tool.lu/json/ 這個線上網站,直接美化來校驗,只有 JSON 格式都正確無誤合法的,才能夠美化。
img
直到後來發現在 PyCharm 有一個外掛專門來做這個事,那就是 JSON Parser,在外掛市場安裝後,重啟 PyCharm ,就能在右側邊欄中看到它。
img
14. Inspect Code in PyCharm對於編譯型的語言,如 Java,需要將程式碼編譯成機器可識別的語言才可執行,在編譯過程中,就可以透過分析或檢查源程式的語法、結構、過程、介面等來檢查程式的正確性,找出程式碼隱藏的錯誤和缺陷。這個過程叫做靜態程式碼分析檢查。
那對於 Python 這種解釋型的語言來說,程式碼是邊執行邊翻譯的,不需要經過編譯這個過程。很多肉眼無法一下子看出的錯誤,通常都是跑一下(反正跑一下這麼方便)才能發現。
由於Python 執行是如此的方便,以至於我們都不太需要關注靜態分析工具。
但也不是說,靜態分析工具完全沒有用武之地,我認為還是有。
如果你的編碼能力還沒有很成熟,程式碼中可以有許許多多的隱藏bug,由於 Python 是執行到的時候才解釋,導致一次執行只能發現一個錯誤,要發現100個bug,要執行100次,數字有點誇大,其實就是想說,如果這麼多的錯誤都能透過一次靜態檢查發現就立馬修改,開發除錯的效率就可以有所提升。當然啦,並不是說所有的錯誤靜態分析都能提前發現,這點希望你不要誤解。
做為 Python 最強 IDE,PyCharm本身內建了這個功能,不需要你安裝任何外掛。
我對開源元件 nova 的靜態檢查發現,其有不規範的地方有數千處。