你有哪些想要分享的 PyCharm 使用技巧?

奇技淫巧;能提高效率的;或者其他一切你認為可以分享的都可以哦

:D


為 PyCharm 新手整理了最常用的10個小技巧,能幫你省下不少時間。

0. 常用快捷鍵

先上兩張速查圖,可以設為桌面或者列印出來放在手邊,想不起來時瞄一眼,很快就能記住常用快捷鍵了。

1. 查看使用庫源碼

經常聽人說,多看源碼。源碼不僅能幫我們搞清楚運行機制,還能學習優秀的庫或者框架的最佳實踐。調用庫時,你可以在你好奇的幾乎任何地方點擊 Command+B,就可以很方便的跳轉到源碼里的類,方法,函數,變數的定義。

2. 讓你的代碼 PEP8

寫 Python 代碼時,你會嚴格遵守 pep8 規範么?還是要遵守的,不然代碼傳到 github 或者知乎上被人懟就不好了。但是如果靠肉眼去檢查和注意的話,太累,靠 PyCharm 來做這事就好,Command+Option+L,一鍵 pep8 走起。

3. 新手不再愁安裝庫

如果你是新手,可能會為了安裝庫而感到煩惱,在 PyCharm 裡面可以使用你熟悉的圖形化界面來安裝庫,就不用陷在一堆命令行里了。

4. 查找文件,類, 方法

當我們需要在項目中尋找一個文件名的時候,輸入 Command + Shift + O,然後輸入你想查找的文件名就可以了。如果你不記得全名了,只需要輸入首字母,Pycharm 就會提示你。比如我想查找一個叫 test_errors.py 的文件,那麼只需要輸入 tee 就可以找到。又或者查詢 test_errors_1.py 那麼只需要輸入 tee1 就可以查找到。

5. 快速選擇代碼塊

你會怎麼快速注釋一段 Python 代碼塊?不會是一行一行的加#吧……

在需要選擇某個函數的時候,只需要把游標放在最前面,然後點擊 Command + Option + Shift + [ ,就可以選擇對當前代碼塊, 使用 Command + / 注釋。

6.快速插入常用代碼

有時候需要輸入很長的代碼,比如 if __name__ == "__main__": ,這時候手動輸入不如直接 Command + J ,就可以直接插入常用代碼了。

7.運行/調試代碼

運行代碼、調試代碼應該是大多數人最常用的快捷鍵吧。具體操作見視頻:

視頻封面7運行或調試_騰訊視頻v.qq.com視頻

8.縮進你的代碼塊

在寫前端頁面的時候,經常要更改一大段代碼的縮進,這時候可以先用 Shift + 上下鍵 來選擇你要縮進的代碼塊,然後使用 Tab 就能縮進啦。

視頻封面8縮進代碼塊_騰訊視頻v.qq.com視頻

9.展開/收縮代碼

當項目寫到一定規模的時候,難免方法/函數會很多,這個時候我們可以使用

Command + Shift + -符號 來收縮代碼,這個主要是為了方便查看。

視頻封面9展開/收縮代碼_騰訊視頻v.qq.com視頻

10.展示多個頁面

當你的公司不願意為你配置2個顯示屏時,你依然可以使用 PyCharm 在一個屏幕里查看多個文件。滑鼠放到當前導航處的文件名,然後右鍵 Split Vertically 或者 Split Horizontally 就可以啦。

視頻封面_騰訊視頻v.qq.com視頻

——————————糾結的更新分割線——————————

看到大家這麼喜歡很開心,想更新10個高階一點的技巧,又有點擔心太長了沒人看,很糾結。不過本著對知識負責的態度,還是要更新高階技巧的。看不完沒關係,先收藏起來以後再看嘛。

11.IdeaVim 插件回到 VIM

如果你是 VIM 的忠實粉絲,那麼沒關係,IdeaVim 插件讓你能享受 PyCharm 的智能可視化功能時 還不失去 VIM 的快捷編輯 。Enjoy VIM in PyCharm!

12. 設置代碼模板

設置代碼模版是個非常實用的技巧,通過代碼模版我們可以指定新建代碼文件諸如解釋器路徑、文件編碼方法、版權、作者等通用信息。

13. 函數調用層級可視化

在大型項目中,函數調用關係及其複雜時,若我們要從整體上理清業務的邏輯關係,那麼關鍵函數的調用層級信息則非常重要。

視頻封面Pycharm 操作03_騰訊視頻v.qq.com視頻

14. 實時顯示文檔和函數參數

當你在默默寫著代碼時,突然發現自己忘記了正使用的庫函數定義和參數時,你會怎麼辦,切出到瀏覽器里搜索該函數嗎?NO,PyCharm 提供了更好的方法,只需要一鍵即可顯示出該函數的定義,並且可以實時顯示出參數。在 PyCharm 中, 通過快捷鍵 F1 可以調出遊標處函數文檔,Command+P 可以顯示出遊標處函數參數。

視頻封面14. 實時顯示文檔和函數參數_騰訊視頻v.qq.com視頻

15. 超實用搜索 Search Everywhere

提到搜索,不得不表揚下 PyCharm 的 Search Everywhere 功能,你可以搜索到整個項目中(包括庫文件)所有類、文件、符號(變數、函數)等,非常方便。當然它也支持你單獨搜索類、文件或符號。

視頻封面Pycharm 操作05_騰訊視頻v.qq.com視頻

16. DEBUG

試想下,Python 怎麼進行調試呢?pdb,沒錯,這個和 gdb 類似的工具。那麼一般如何使用, 一種常見的方式是在需要加入斷點的地方插入 import pdb; pdb.set_trace(), 然後再正常運行腳本, 程序會自動在設置斷點處停下來。 在 PyCharm 中,你可以像使用 VC++調試 C/C++代碼那樣來調試 Python,這種既視感可是很舒服的。

視頻封面Pycharm 操作06_騰訊視頻v.qq.com視頻

17. 智能重構

某日產品經理丟來一個需求,要求一周搞定,然後你每晚加班到凌晨辛勤工作來搞定這個需求,時間剛好過去一半,產品經理又來找你了,「我們這個需求能否做點小調整」,當你聽到這個消息時,你的心裡應該隱隱感覺到不妙。是的,產品經理可不管你之前代碼 import 依賴有多複雜,函數或者變數或者類的命名是否貼切,代碼文件路徑是否合適......So,幸好 PyCharm 有智能的 Refactor 功能, 讓你輕鬆重構函數、類,變換路徑,更改文件名等等操作。

7智能重構youku.com視頻

18. 快捷生成單元測試模板

單元測試是每個程序員都無法逾越的一道鴻溝,甚至單元測試覆蓋率也會用來評估軟體的健壯性。PyCharm 則提供了快速生成單元測試模版的方法。當然,PyCharm 只是幫你生成了單元測試的基礎代碼,測試的邏輯還是需要自己碼的。

視頻封面PyCharm 08_騰訊視頻v.qq.com視頻

19. 圖形化 VSC 操作之 git

git 作為程序員代碼版本管理利器,廣為程序員使用。但如果你對記憶 git 一堆堆命令比較頭痛的話,那麼 PyCharm 的圖形化 VCS 將是你的拯救者。PyCharm 的 VCS 支持 git 和 svn,並通過圖形界面方式提供了你所能想到的功能,而且界面簡潔,易於操作。

視頻封面19. 圖形化 VSC 操作之 git_騰訊視頻v.qq.com視頻

20. 利用 ssh 遠程部署

一般參與開發的大型項目時,個人負責的小組件都可能會依賴其它組建才能運行起來,而其它組建又比較複雜而不便於本地部署時,你會怎麼辦?是選擇每次修改後,手動打包拷貝到遠程伺服器,在遠程伺服器上解壓部署;還是希望在編輯器中修改之後,編輯器自動同步到遠程伺服器呢。不出意外,你會選擇後者,而 PyCharm 則幫你實現了,你只需要配置一次,即可一勞永逸。

視頻封面Pycharm 操作10_騰訊視頻v.qq.com視頻

---

想學更多 Python Web 實戰知識的話,可以看看我們的課程:

麻瓜編程Python Web 開發工程師微專業基礎教程 - 網易雲課堂


JetBrains家的IDE很多技巧是通用的,說一些自己日常用得多但不一定僅限於PyCharm的技巧:

`ctrl+alt+L`,格式化代碼,曾經用Eclipse的時候,格式化代碼一定要先選中某個區域的代碼塊再進行格式化,用了JetBrains的IDE之後就習慣性地格式化一下,還必須手賤多格式化幾次才舒服,不過有後遺症,以後到各種編輯框中總喜歡`ctrl+alt+L`幾下才舒服

`alt+enter`萬能鍵,不同場景有不同的表現方式,在還沒import(install)模塊名上使用會import(install)相對應的模塊,在方法名上使用補註釋,在測試中使用幫你補充斷言代碼……不管出錯了不知道怎麼辦,知道怎麼辦想這麼辦時都按下這個快捷鍵,有驚喜

`ctrl+space` 萬能提示鍵,PyCharm的會根據上下文提供補全。不僅是代碼提示,`ctrl+f`搜索的時候,不知道該鍵入啥時就按下,經常給人驚喜。在windows下由於輸入法無法使用這個快捷鍵,`ctrl+alt+s`打開設置鍵入 keymap,在Keymap中搜索basic可以找到並修改它

`ctrl+shift+f10`運行當前文件,十分智能,如果是測試代碼,則以測試模式run,並列出測試通過情況

`ctrl+w`擴展選取和`ctrl+shift+w`縮減選區,根據當前層級一層一層向上伸展選中區域,例如value -&>key:value -&> dict -&> ... ,每按一次就擴展一級,`ctrl+shift+w`用來取消上一次的擴展選取操作,注意後遺症,大部分軟體中的`ctrl+w`是關閉!是`ctrl+shift+箭頭`而不是`ctrl+w`

`ctrl+alt+shift+T`重構選區,可以將選區抽取成變數,方法等。不同的重構方式有不同的快捷鍵,比如將a.b.c中的a.b抽取出來,選中a.b,鍵入`ctrl+alt+v`可見效果

`ctrl+q`查注釋

`ctrl+shift+i`沒注釋時查源碼

`ctrl+p`調用方法時查看參數,在括弧內按下,就知道當前位置該給啥參數,不過由於是Python,這裡使用`ctrl+space`也可以達到很好的效果

`shift+enter`另起一行,游標在行內任意位置都能另起一行,且不破壞當行結構

`ctrl+alt+enter`向上另起一行

`ctrl+shift+數字鍵`與`ctrl+數字鍵`書籤功能

`ctrl+shift+a`搜索IDE功能,比如想看看這個文件的歷史,就鍵入history 可以找到 Local history

變數或表達式的最後鍵入`.(點)`,出現提示後,看最下面的部分有各種代碼模板,例如現有變數a,在下一行鍵入 a.(點)print 然後鍵入`tab`,Python2會變成`print a`,Python3會變成`print(a)`,還有if,else等各種常用的代碼模板

雙擊`shift`搜索一切,不管是IDE功能、文件、方法、變數……都能搜索

各個窗口下,無論是Project,Setting,Debugger...都可以直接鍵入想要搜索的內容,它會幫你高亮,鍵入`↑`或`↓`可切換匹配到的目標

整合的REPL,由於JetBrains的加成可以實現很多與編輯器內相同的效果

整合了Git,通過插件可以支持 Git flow,十分優秀的代碼對比,merge時解決衝突很有幫助

Local history,文件夾,每個文件都有記錄歷史版本

整合了source code pro字體+Darcula Theme(暗色主題) ,眼不疼了

Tip of the day,總會給人帶來一些有用的小功能 ,別嫌煩就給關了啊,寫代碼累了,Help &> Tip of the day點開看看

固態硬碟,配合JetBrains碉堡的索引,雖然沒什麼關係


自動導入模塊

用Pycharm寫代碼的時候,很多時候要引用系統自帶的模塊或者是第三方模塊,有時候代碼寫了大半屏幕了,我們不得不把游標移到文件頂部,先把模塊包名手動導入進來,再回到文件底部開始愉快的寫代碼,如果在一個函數中同時引入好幾個模塊,還要來回地切換,好麻煩。

其實,Pycharm是有自動導入包功能的,只需簡單兩步配置。

第一步:Pycharm-&>Perferences-&>Editor-&>Auto Import

第二步:設置快捷鍵

效果圖:


cltr + / 快速注釋

cler + d 複製游標所在的行

最有的一個,本機編輯,運行時使用了遠程環境,省去了環境切換的麻煩。

之後你就可以win編輯文本,保存後直接傳到linux環境下,運行時也是用了linux的環境


最想吐槽的是pycharm的vim插件,超級不好用。然而我還是用pycharm的原因主要有以下幾點

  • debug。非常好用,沒見過Python的其他debug工具比它方便了,想跟蹤django的某些內部實現方便得不要不要的,只要打開那個文件,設置一個斷點就好。尤其在接手歷史遺留代碼時很方便。

  • Ctrl-B和shift-→,查看源碼時很方便,至少在vim下看庫的源碼沒那麼容易。對Python程序員而言,看源碼很重要

  • 代碼最佳實踐提醒,會告訴你pep8和怎麼寫才是最佳,當然這在歷史遺留代碼中派不上用場。

  • F6,重命名,這太重要了,vim沒有吧。即使有,那它也沒法重構Flask和Django的template下的指令吧。

  • 還有聲明未使用提醒,和使用未聲明變數,以及錯誤拼寫這些大部分ide都有的功能。

整體來說,它不僅提高了你的效率,也規範了你的行為


剛開始學編程,說一下能夠擺脫自己蠢蠢的笨方法的,感覺超級實用的快捷鍵

1.F9,F10系列的

Ctrl+Shift+F10 run當前程序(Pycharm是自動保存,不必Ctrl+s,也不能向sublime text直接用Ctrl+b run當前的程序,所以這個快捷鍵的價值就體現了,當然你可以改成你習慣用的)

Shift+F9 debug

Shift+F10 run

Alt+Shift+F9 選擇你想run的程序

Alt+Shift+F10 選擇你想debug的程序

2.編輯的時候常用的

Shift+Enter 換下一行(這個十分好用,不用再不停的用完右向箭頭再按回車了)

Ctrl+Alt+Enter 向上另起一行

Ctrl+/ 注釋(再也不用再找#了)

Crtl+q 查詢documentation

Ctrl+滑鼠點擊 查看內置函數啥的

Crtl+D 複製當前行

感覺很多還在慢慢學,發現好用再補充吧。新人需要鼓勵,不要吝嗇你們的贊~(≧▽≦)/~

----------------------------------------------莫名其妙的分界線--------------------------------------------------------------------

轉:

官方默認快捷鍵,可以按照自己習慣的鍵進行適當修改,keymap里。


ideavim


用Ctrl+Q實時看Doc

左邊是自己的代碼,右邊是函數的文檔。再也不用擔心看不懂函數了,免去了上網折騰的苦惱,特別是閱讀其他人代碼的時候。

如果不想右邊被佔據的化,可以遇到不懂的部分函數再按下Ctrl+Q,效果如下:

雙擊Shift然後輸入Document,可以看到最下面也有打開方式

Quick Documentation


Emacs Keymap


debug的時候可以在斷點打開Python console然後改變數值。。。


最最常用的,f9。

最常用的,ctrl+滑鼠看內置函數

其他,我也不熟。。。


diagram:用圖勾勒類與類之間的關係,可以選擇是否顯示類中的方法和屬性,共有五種方式進行展現,下圖是其中一種。比較可惜就是,這功能需要專業版的,社區版不具備。

放大:

layout:五種展現方式(紅色方框,上面的是cicular)


ubuntu下的pycharm用搜狗輸入法輸入中文:

打開usr/lib/pycharm/bin

右鍵文件夾,終端 輸入:sudo chmod 777 pycharm.sh

(擔心給的許可權太高的話,就給個讀寫許可權就行了)

然後打開pycharm.sh

# ---------------------------------------------------------------------

# Run the IDE.

# ---------------------------------------------------------------------

上面添加如下代碼並保存:

export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx

之前都是在文本編輯器裡面輸入好中文複製過去的,感覺我蠢了大半年`````


用遠程解釋器調試程序

pycharm遠程調試的原理很簡單,使用ftp將本地代碼上傳到遠端伺服器,調用遠端解釋器執行遠端代碼

說一下這樣做的優勢

1 開發平台無關

(開發環境用win,linux,mac)都行,因為完全不需要本地調試,調用的解釋器是遠端的,你的本地開發平台甚至可以不裝python,當然因此也就不存在開發環境與生產環境不同導致的本地調通生產卻跑不起來的問題

2 本地修改代碼實時同步到遠端

以前我的調試流程:1 本地代碼上傳 2 開一個遠端shell調試 3發現問題開vim改代碼,打變數,代碼很容易改亂 4等沒問題了把本地代碼和伺服器代碼搞成一致(很容易漏掉修改了的文件)5循環前兩步 6 提交

使用遠程調試流程以後:1 pycharm執行 2 出現問題,直接開debug打斷點 3 循環前兩部 4 提交

可以看到流程上少了兩個很容易出錯的地方,而且pycharm的debug功能本就比手動打變數效率高很多

大致配置步驟:

  1. 將解釋器配置為遠程解釋器
  2. tools&>deployment&>comfigration&>左上角添加伺服器
  3. 填寫遠端伺服器sftp的配置,root path為默認用戶的家目錄,可以按需求修改
  4. mapping 選項depolyment path on remote server ,注意此處的默認路徑已經是之前的/root/path ,寫相對路徑就可以
  5. 打開auto update選項(這樣本地代碼的修改會實時同步到遠端)

細節部分可以參考這篇文章:https://medium.com/@erikhallstrm/work-remotely-with-pycharm-tensorflow-and-ssh-c60564be862d

最後要說的是:這個功能目前只有professional 版本提供,也就是說必須付費,希望你不要看到這裡就沮喪的關掉窗口,professional有30天的體驗版本,不論你最終是否決定為它花錢,都完全可以先體驗一下這個功能,然後再做決定。


Mark Directory as Sources root


之前寫過一篇日誌: PyCharm 收藏多年快捷鍵分享~

---

PyCharm 收藏多年快捷鍵分享~

介紹一些Pycharm中大幅度提高生產力的快捷鍵 (逃)

大部分的快捷鍵在同系列的IDE(JetBrains全家桶)上應該都是能通用的

友情提示: 點擊圖片, 可顯示大圖~ 聲明: 因為這些快捷鍵都是可以自定義的, 而且在不同的操作系統里也不同, 所以我每個都給出了操作的標題, 大家可以在設置里查找對應的快捷鍵:

最新基於 Pycharm 2017.03

快速搜索

1. Find in Path…

Ctrl+Shift+F: 在整個項目中 或 指定目錄里 進行全局搜索:

2. Find Action by Name

Ctrl+Shift+A: text —&> 執行一些action(git pull/commit等等等等), 潛力無限, 有待開發.

3. Search Everywhere

Shift(Double-press): 雙擊shift, 我每天使用頻率很高的一個快捷鍵, 可以按最近使用過的文件名, 類名, 方法名等去搜索定位!

最棒的是它會記住你的搜索歷史, 並將最常用的顯示在最上邊.

4. Main menu | Navigate | File…

Ctrl+N: 快速根據名字找到文件, 比雙擊shift快很多.

但這個搜索文件有個很尷尬的地方, 模糊搜索的時候一定要帶斜杠來分割文件夾, 我發郵件給了客服, 竟然剛剛實現這個功能, 下個版本就有咯, cheers~

代碼自動化

1. Declaration

Alt+Enter: 自動import, 還會做自動優化, 媽媽再也不用擔心依賴關係啦

2. Insert Live Template…

Ctrl+Alt+Shift+J: 插入一段提前配置好的代碼模板!

e.g. import ipdb; ipdb.set_trace(context=20)

導航

1. Other | Switcher

Ctrl+Tab: 和chrome一樣的切換標籤

2. Main menu | Navigate | Back/Forward

Alt + Left|Right: 移動游標到上一次編輯或者返回移動之前的位置.

在錯綜複雜的代碼中更為重要, 再也不擔心迷路了咯.

快速編輯

1. Delete Line

Ctrl+x: 不用選擇, 直接刪除整行代碼

2. Duplicate Line or Selection

Ctrl+shift+d: 直接重複一行重複生成選中的內容

3. Code/Folding/Expand (All)|Collapse(All)

Ctrl(shift) + +/-: 摺疊一個方法的代碼或整個文件的代碼.

我一般喜歡, 先摺疊整個文件的代碼, 然後再打開一個類去看它的結構.

4. Move Line Up|Down

Alt + Up/Down: 可以上下移動整行或整塊(e.g. 一個if的block)代碼

5. Editor Actions | Unindent Line or Selection:

Shift + Tab: 對一行或多行(選中內容)的逆向縮進!

同時編輯多處:

1. Add or Remove Caret

Alt + 滑鼠 or Shift + Crtl + Alt + 滑鼠: 選擇多處進行同時編輯, 要是能像sublime那樣alt+enter直接選中所有的查找結果就好了(已解決, 見下一條).

找到解決辦法了!

Pycharm中的快捷鍵Select All Occurrences就等同於sublime里的全選所有符合搜索的結果(ctrl+回車)!

2. 正則搜索的妙用

Perl中$0就代表全部匹配(本身), 所以就能實現同時替換所有搜索結果, 和多處同時編輯異曲同工:

(見下圖)

Replace all之後:


其他奇技淫巧:

Annotate

查看當前文件每一行代碼是誰是哪個commit貢獻的(gitbub/gitlab上的blame view, 這個名字好形象)

(持續更新中…)

如果你有什麼更好的華麗操作, 記得給我留言哦~~


使用Pycharm在本地開發和調試,遠程連接伺服器運行。大概效果是,本地寫代碼改代碼,右鍵點擊run卻用的是遠程的伺服器運行代碼。

配置過程如下:

如何通過pycharm實現遠程代碼的調試和開發


關注Pycharm的官方推特,有興趣就多翻翻,都是實用技巧


1. 想用github?

自帶git功能,當Github客戶端綽綽有餘

2. 瀏覽器里ipython notebook用著憋屈?

直接開ipython notebook模式,用起來酸爽極了

3. 要用到命令行終端?

直接開啟terminal就是,不需要再開個終端

4. 想ssh一下?

直接來,putty跟winscp也用不著了

5. 想瀏覽查詢下資料庫?

直接開database,再也不需要專門下個軟體了,順帶還可以sql補全

6. 想python2代碼轉成3?

外部工具配置下,分分鐘搞定

7.遇到英文不認識?

來個翻譯插件,哪裡不懂點哪裡

8. 代碼沒寫完?

用todo list標記下,下次一下就定位好了

9.想寫個markdown?

上插件,想怎麼寫怎麼寫

10.快捷鍵不順手記不住?

直接改,改到順手為止


可以更改 keymap ,比如上面的 `ctrl+alt+l` 代碼格式化,在 Ubuntu 下會直接鎖屏,所以就直接改為 `ctrl+alt+q`~


推薦閱讀:

你見過哪些令你瞠目結舌的 Python 代碼技巧?
Windows 的 file handle 為什麼譯為「文件句柄」?
你見過哪些令人瞠目結舌的php代碼技巧?
如何看待 Windows 的 C++ 包管理器 vcpkg?

TAG:程序員 | Python | 編程 | PyCharm |