受用一生的高效 PyCharm 使用技巧(四)
https://blog.csdn.net/pdcfighting/article/details/93269028
大家好,距離最近一篇 PyCharm 使用技巧的文章已經(jīng)過(guò)去一月有余,最近雖然也比較忙,但是一直沒(méi)忘記錄下一些我覺(jué)得值得分享的小tip。這個(gè)系列到今天已經(jīng)是第四篇了,按照慣例,本次還是分享 5 個(gè)。
如果你還未看過(guò)前四篇,可以點(diǎn)此進(jìn)行查看。
1 受用一生的高效PyCharm使用技巧
2 受用一生的高效PyCharm使用技巧(二)
3 受用一生的高效PyCharm使用技巧(三)
- 快速定位到錯(cuò)誤行
前幾天打開(kāi) PyCharm,發(fā)現(xiàn)在導(dǎo)航欄這里出現(xiàn)了很多紅色波浪線,有過(guò) PyCharm 使用經(jīng)驗(yàn)的同學(xué),這是代碼出現(xiàn)了錯(cuò)誤。
640?wx_fmt=png
順著波浪線,我一層一層地展開(kāi)目錄樹(shù),終于找到了那個(gè)包含錯(cuò)誤的文件。由于是手誤,我也不知道我改動(dòng)了哪一行,看了下這個(gè)文件,有將近8000行的代碼,難道一行一行地去找?
不,這絕對(duì)不是使用 IDE 正確的方式。
遇到問(wèn)題,就應(yīng)該嘗試去尋找快捷方法,有沒(méi)有辦法,可以一下子定位到錯(cuò)誤代碼呢?
這時(shí)候,我想起了PyCharm 有提供給我們一個(gè) Keymap 的面板,可以很方便的設(shè)置、查詢快捷鍵。說(shuō)不定我在那里可以找到我想要的答案
我在搜索框輸入 Error,就找到了快速定位到錯(cuò)誤位置的快捷鍵 F2 和 Shift+F2 可以快速的定位到錯(cuò)誤行(Mac和Windows快捷鍵一樣)。
640?wx_fmt=png
使用快捷鍵 F2 查看了下原來(lái)是這里縮進(jìn)有問(wèn)題,導(dǎo)致語(yǔ)法出現(xiàn)錯(cuò)誤。
640?wx_fmt=png
17. 快速查看最近的修改
上面為了恢復(fù)因?yàn)槭终`造成的語(yǔ)法錯(cuò)誤,我使用了快捷鍵來(lái)定位錯(cuò)誤行,雖然解決了問(wèn)題,但總有種繞了幾個(gè)彎的感覺(jué)。
假如有種方法,可以項(xiàng)目查看最近的修改記錄的話(沒(méi)有g(shù)it做版本控制的情況下),那就太好了。
太巧的是,今天我打開(kāi) PyCharm ,就給我推了這條 tip,(在Mac上)使用 option+shift+C 可以快速查看最近修改的內(nèi)容(Windows 是Alt+Ahift+C)
640?wx_fmt=png
18. 靜態(tài)代碼分析檢查
對(duì)于編譯型的語(yǔ)言,如 Java,需要將代碼編譯成機(jī)器可識(shí)別的語(yǔ)言才可運(yùn)行,在編譯過(guò)程中,就可以通過(guò)分析或檢查源程序的語(yǔ)法、結(jié)構(gòu)、過(guò)程、接口等來(lái)檢查程序的正確性,找出代碼隱藏的錯(cuò)誤和缺陷。這個(gè)過(guò)程叫做靜態(tài)代碼分析檢查。
那對(duì)于 Python 這種解釋型的語(yǔ)言來(lái)說(shuō),代碼是邊運(yùn)行邊翻譯的,不需要經(jīng)過(guò)編譯這個(gè)過(guò)程。很多肉眼無(wú)法一下子看出的錯(cuò)誤,通常都是跑一下(反正跑一下這么方便)才能發(fā)現(xiàn)。
由于 Python 運(yùn)行是如此的方便,以至于我們都不太需要關(guān)注靜態(tài)分析工具。
但也不是說(shuō),靜態(tài)分析工具完全沒(méi)有用武之地,我認(rèn)為還是有的。
如果你的編碼能力還沒(méi)有很成熟,代碼中可以有許許多多的隱藏bug,由于 Python 是運(yùn)行到的時(shí)候才解釋,導(dǎo)致一次運(yùn)行只能發(fā)現(xiàn)一個(gè)錯(cuò)誤,要發(fā)現(xiàn)100個(gè)bug,要運(yùn)行100次,數(shù)字有點(diǎn)夸大,其實(shí)就是想說(shuō),如果這么多的錯(cuò)誤都能通過(guò)一次靜態(tài)檢查發(fā)現(xiàn)就立馬修改,開(kāi)發(fā)調(diào)試的效率就可以有所提升。當(dāng)然啦,并不是說(shuō)所有的錯(cuò)誤靜態(tài)分析都能提前發(fā)現(xiàn),這點(diǎn)希望你不要誤解。
做為 Python 最強(qiáng) IDE,PyCharm本身內(nèi)置了這個(gè)功能,不需要你安裝任何插件。
你只需要像下面這樣點(diǎn)擊項(xiàng)目文件夾,然后右鍵,選擇 Inspect Code,就可以開(kāi)啟靜態(tài)檢查。
640?wx_fmt=png
我對(duì)開(kāi)源組件 nova 的代碼做了下靜態(tài)檢查發(fā)現(xiàn),其不規(guī)范的地方高達(dá)數(shù)千處。
640?wx_fmt=png
19. 全方位無(wú)死角精準(zhǔn)定位
一直覺(jué)得使用鼠標(biāo)是一種非常低效的習(xí)慣。
所以我熱衷于使用各種鍵盤快捷鍵來(lái)提高操作的精準(zhǔn)度,在編輯器上我可以相當(dāng)熟練的使用 vim 指令完成我各種需求,因此我給 PyCharm 裝上了ideaVim,給 Chrome 裝上了 Vimium。
同樣地閱讀框架代碼,我也都是使用全鍵盤進(jìn)行操作。因?yàn)槲矣虚L(zhǎng)期閱讀 OpenStack 源碼的需求,其代碼量是數(shù)百萬(wàn)級(jí)別的。如果沒(méi)有使用精準(zhǔn)定位來(lái)快速跳轉(zhuǎn),這種極差的體驗(yàn)將很難使我堅(jiān)持下來(lái)。
這里暫時(shí)先介紹幾種我最常用的精準(zhǔn)定位方法,主要可以定位跳轉(zhuǎn)到如下五種:
精準(zhǔn)定位到文件:Windows:Ctrl+Shift+N:,Mac:Command+ shift +N
640?wx_fmt=png
精準(zhǔn)定位到類:Windows:Ctrl+N,Mac:Command+N
640?wx_fmt=png
精準(zhǔn)定位到符號(hào):類的所有成員(函數(shù)、變量等)都可以稱之為符號(hào),Windows:Ctrl+Alt+Shift+N,Mac:Option+Shift+Command+N:
640?wx_fmt=png
精準(zhǔn)定位到文件結(jié)構(gòu):文件結(jié)構(gòu)包括類、函數(shù)、變量,這說(shuō)明上面定位到類和定位到符號(hào)的方法,你都可以用這個(gè)來(lái)代替。
Windows:Ctrl+F12,Mac:Command+F12,如果和我一樣是Mac是帶touchbar的,鍵盤上是沒(méi)有F12的,那你應(yīng)該先按住 Command + fn,這時(shí) touchbar 上會(huì)出現(xiàn) F12,再按F12即可。
640?wx_fmt=png
精準(zhǔn)定位到某行:Windows:Ctrl+G,Mac:Command+G:,如下圖定位到第510行第9個(gè)字符處。
640?wx_fmt=png
20. 利用 TODO 解救“中年癡呆”
一個(gè)程序員,如果能夠一天都只和代碼打交道,是一件多么難得的事情。
可能外行人不知道,做為同樣是程序員的你,是不是和我有一樣的煩惱。
代碼寫著寫著,測(cè)試突然就喊道:小明,你的代碼有bug,ug,g(回聲)。。
代碼寫著寫著,運(yùn)維突然一個(gè)彈窗:小明,這個(gè)線上問(wèn)題趕緊排查一下。。
代碼寫著寫著,產(chǎn)品突然就跳出來(lái):小明,能做一個(gè)根據(jù)手機(jī)殼顏色自動(dòng)改變app主題的app不??
這樣的噩夢(mèng)每天都在重復(fù)不間斷地上演著,或許我知道了為什么程序員要在深夜里碼代碼了,因?yàn)槟鞘前兹绽锏貌坏降膶庫(kù)o。
所以 王建碩 在<<入靜和入世>>一文中寫道:
“當(dāng)看到一個(gè)程序員冥思苦想的時(shí)候,不要過(guò)去打擾,甚至在極端的情況下,一句友好的問(wèn)候都是多余的。 ”
為了避免這個(gè)情況,我通常在別人打斷我的時(shí)候,請(qǐng)對(duì)方給我一分鐘的時(shí)間,使用PyCharn 的 TODO 功能快速記錄下當(dāng)前的思緒狀態(tài),以及下一步要做的事情。
使用方法跟注釋差不多,只要固定要以 TODO 開(kāi)頭。然后,你要查看全局項(xiàng)目中的所有 TODO 事項(xiàng)的時(shí)候,可以使用快捷鍵調(diào)出 TODO 面板。如果你是 Mac, 快捷鍵 是Command + 6,而 Windows 是 Alt+6。
640?wx_fmt=png
另外,我還使用這個(gè)來(lái)記錄下個(gè)版本要優(yōu)化的代碼邏輯,要添加的功能。
如果是比較緊急的 BUG,可以使用類似 TODO 的標(biāo)記 — FIXME 來(lái)區(qū)分緊急程度。
640?wx_fmt=png
好了,本次的 PyCharm 使用技巧,就是這五個(gè)了,你學(xué)會(huì)了嗎?
上一篇文章在知乎發(fā)完后,有朋友反饋,希望能將Windows和Mac的快捷鍵都列出來(lái)。所以從這篇文章開(kāi)始,我多花了點(diǎn)心思,去確認(rèn)了下Windows的快捷鍵,照顧到只用Windows系統(tǒng)的同學(xué)。
最后,感謝你的閱讀,如果覺(jué)得文章對(duì)你有所幫助,還望你能幫忙分享、轉(zhuǎn)發(fā)、點(diǎn)在看,這就是對(duì)我的最大支持
總結(jié)
以上是生活随笔為你收集整理的受用一生的高效 PyCharm 使用技巧(四)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 受用一生的高效 PyCharm 使用技巧
- 下一篇: 受用一生的高效 PyCharm 使用技巧