1. 程式人生 > >每週分享五個 PyCharm 使用技巧(四)

每週分享五個 PyCharm 使用技巧(四)

大家好,這是本系列 PyCharm 的高效使用技巧的第四篇。按照慣例,本次還是分享 5 個。

16. 快速定位到錯誤行

前幾天開啟 PyCharm,發現在導航欄這裡出現了很多波浪線,有過 PyCharm 使用經驗的同學,就會知道,這是程式碼中出現了錯誤。

順著波浪線,我一層一層地展開目錄樹,終於找到了那個包含錯誤的檔案。由於是手誤,我也不知道我改動了哪一行,看了下這個檔案,有將近8000行的程式碼,難道一行一行地去找?

不,這絕對不是使用 IDE 正確的方式。

遇到問題,就應該嘗試去尋找快捷方法,有沒有辦法,可以一下子定位到錯誤程式碼呢?

這時候,我想起了PyCharm 有提供給我們一個 Keymap 的面板,可以很方便的設定、查詢快捷鍵。說不定我在那裡可以找到我想要的答案

我在搜尋框輸入 Error,就找到了快速定位到錯誤位置的快捷鍵 F2Shift+F2 可以快速的定位到錯誤行。

使用快捷鍵 F2 查看了下原來是這裡縮排有問題。

17. 快速檢視最近的修改

上面為了恢復因為手誤造成的語法錯誤,我使用了快捷鍵來定位錯誤行,雖然解決了問題,但總有種繞了幾個彎的感覺。

假如有種方法,可以專案檢視最近的修改記錄的話(沒有git做版本控制的情況下),那就太好了。

太巧的是,今天我開啟 PyCharm ,就給我推了這條 tip,(在Mac上)使用 option+shift+C 可以快速檢視最近修改的內容(windows 上應該是alt+shift+c吧)

18. 靜態程式碼分析檢查

對於編譯型的語言,如 Java,需要將程式碼編譯成機器可識別的語言才可執行,在編譯過程中,就可以通過分析或檢查源程式的語法、結構、過程、介面等來檢查程式的正確性,找出程式碼隱藏的錯誤和缺陷。這個過程叫做靜態程式碼分析檢查。

那對於 Python 這種解釋型的語言來說,程式碼是邊執行邊翻譯的,不需要經過編譯這個過程。很多肉眼無法一下子看出的錯誤,通常都是跑一下(反正跑一下這麼方便)才能發現。

由於Python 執行是如此的方便,以至於我們都不太需要關注靜態分析工具。

但也不是說,靜態分析工具完全沒有用武之地,我認為還是有。

如果你的編碼能力還沒有很成熟,程式碼中可以有許許多多的隱藏bug,由於 Python 是執行到的時候才解釋,導致一次執行只能發現一個錯誤,要發現100個bug,要執行100次,數字有點誇大,其實就是想說,如果這麼多的錯誤都能通過一次靜態檢查發現就立馬修改,開發除錯的效率就可以有所提升。當然啦,並不是說所有的錯誤靜態分析都能提前發現,這點希望你不要誤解。

做為 Python 最強 IDE,PyCharm本身內建了這個功能,不需要你安裝任何外掛。

你只需要像下面這樣點選專案資料夾,然後右鍵,選擇 Inspect Code,就可以開啟靜態檢查。

我對開源元件 nova 的靜態檢查發現,其有不規範的地方有數千處。

19. 全方位無死角精準定位

一直覺得使用滑鼠是一種非常低效的習慣。

我熱衷於使用各種鍵盤快捷鍵來提高操作的精準度,在編輯器上我可以相當熟練的使用 vim 指令完成我各種需求,因此我給 PyCharm 裝上了ideaVim,給 Chrome 裝上了 Vimium。

同樣地閱讀框架程式碼,我也都是使用全鍵盤進行操作。因為我有長期閱讀 OpenStack 原始碼的需求,其程式碼量是數百萬級別的。如果沒有使用精準定位來快速跳轉,這種極差的體驗將很難使我堅持下來。

這裡暫時先介紹幾種我最常用的精準定位方法,主要可以定位跳轉到如下三種

  • 精準定位到檔案:Windows(Ctrl+Shift+N),Mac(Command+ shift +N)

  • 精準定位到類:Windows(Ctrl+N),Mac(Command+N)

  • 精準定位到符號:類的所有成員(函式、變數等)都可以稱之為符號,Windows(Ctrl+Alt+Shift+N),Mac(Option+Shift+Command+N)

  • 精準定位到檔案結構:檔案結構包括類、函式、變數,這說明上面定位到類和定位到符號的方法,你都可以用這個來代替。

    Windows:Ctrl+F12,Mac:Command+F12,如果和我一樣是Mac是帶touchbar的,鍵盤上是沒有F12的,那你應該先按住 Command + fn,這時 touchbar 上會出現 F12,再按F12即可。

  • 精準定位到某行:Windows(Ctrl+G),Mac(Command+G),如下圖定位到第510行第9個字元處。

20. 利用 TODO 解救“中年痴呆”

一個程式設計師,如果能夠一天都只和程式碼打交道,是一件多麼難得的事情。

可能外行人不知道,做為同樣是程式設計師的你,是不是和我有一樣的煩惱。

程式碼寫著寫著,測試突然就喊道:小明,你的程式碼有bug,ug,g(回聲)。。

程式碼寫著寫著,運維突然一個彈窗:小明,這個線上問題趕緊排查一下。。

程式碼寫著寫著,產品突然就跳出來:小明,能做一個根據手機殼顏色自動改變app主題的app不??

這樣的噩夢每天都在重複不間斷地上演著,或許我知道了為什麼程式設計師要在深夜裡碼程式碼了,因為那是白日裡得不到的寧靜。

所以 王建碩 在<< 入靜和入世 >>一文中寫道:

“當看到一個程式設計師冥思苦想的時候,不要過去打擾,甚至在極端的情況下,一句友好的問候都是多餘的。 ”

為了避免這個情況,我通常在別人打斷我的時候,請對方給我一分鐘的時間,使用PyCharn 的 TODO 功能快速記錄下當前的思緒狀態,以及下一步要做的事情。

使用方法跟註釋差不多,只要固定要以 TODO 開頭。然後,你要檢視全域性專案中的所有 TODO 事項的時候,可以使用快捷鍵調出 TODO 面板。如果你是 Mac, 快捷鍵 是Command + 6,而 Windows 是 Alt+6。

另外,我還使用這個來記錄下個版本要優化的程式碼邏輯,要新增的功能。

如果是比較緊急的 BUG,可以使用類似 TODO 的標記 — FIXME 來區分緊急程度。


相關推薦

每週分享 PyCharm 使用技巧

大家好,這是本系列 PyCharm 的高效使用技巧的第四篇。按照慣例,本次還是分享 5 個。 16. 快速定位到錯誤行 前幾天開啟 PyCharm,發現在導航欄這裡出現了很多波浪線,有過 PyCharm 使用經驗的同學,就會知道,這是程式碼中出現了錯誤。 順著波浪線,我一層一層地展開目錄樹,終於找到了那個

每週分享 PyCharm 使用技巧

大家好,這是本系列 PyCharm 的高效使用技巧的第三篇。按照慣例,本次還是分享 5 個。 11. 一鍵進行程式碼效能分析 在 Python 中有許多模組可以幫助你分析並找出你的專案中哪裡出現了效能問題。 比如,常用的模組有 cProfile,在某些框架中,也內建了中介軟體幫助你進行效能分析,比如 Djan

每週分享 PyCharm 使用技巧

文章首發於 微信公眾號:Python程式設計時光 PyCharm 是大多數 Python 開發者的首選 IDE,每天我們都在上面敲著熟悉的程式碼,寫出一個又一個奇妙的功能。 一個每天都在使用的工具,如果能掌握一些高效的使用技巧,肯定會給我們的開發效率帶來質的提升。今天我就來寫一寫我在平時開發中一直在用的,

BigDecimal精確計算 原創分享自己寫的幾工具類BigDecimal精確計算

(原創)分享自己寫的幾個工具類(四)BigDecimal精確計算 2017年04月18日 17:34:56 閱讀數:2002 java的float只能用來進行科學計算或工程計算,但是 在大多數的商業計算中,一般採用ja

PyCharm使用技巧:Scientific模式

Scientific模式教程 在本教程中,您將以Scientific模式執行並使用Matplotlib和NumPy包來執行和除錯具有資料視覺化的Python程式碼。 在開始之前,請確保安裝了以下內容: Conda翻譯 Matplotlib包 NumPy包 建

改進你的c#程式碼的5技巧

像每一篇文章一樣,我會重複幾行。我在我的Core i3 CPU、4GB主記憶體和Windows 7平臺上測試了以下程式碼。如果你在不同的硬體配置或使用不同的平臺,那麼你的輸出可能會隨著我的輸出螢幕而變化,並且輸出可能會根據當前執行的程序而變化。由於所有的點都是效能測試,我已經在釋出模式下對它們進行了測試,並在

以事實駁斥:改進你的c#程式碼的5技巧

  測試使用的環境:vs2019+.net core3.1   原文地址:https://www.cnblogs.com/hhhnicvscs/p/14296715.html   反駁第一條:如何檢查程式碼中的空字串?      調整順序後輸出,

js 技巧

rds length msxml ica byte ebo oca recordset next //下載文件 function DownURL(strRemoteURL,strLocalURL) { try { var xmlHTTP=new ActiveXObjec

Java開發小技巧:配置文件敏感信息處理

加載 gem 加密解密 -i false valid ges enc factory 前言 不知道在上一篇文章中你有沒有發現,jdbc.properties中的數據庫密碼配置是這樣寫的: jdbc.password=5EF28C5A9A0CE86C2D231A526ED5

前端開發框架總結之Angular實用技巧

                       前端開發框架總結之Angular實用技巧(四) 上文講了Angular中路由的相關的知識,掌握了這些,我們就可以構建比較複雜的頁面

使用Redis的注意事項命名

轉載:https://www.cnblogs.com/ajianbeyourself/p/4472788.html 閱讀目錄 1.使用key值字首來作名稱空間 2.建立一個類似 ”registry” 的key用於標記key使用情況 3.注意垃圾回收

LaTex技巧:如何很好的輸入化學公式?

化學公式 我們可以使用\usepackage{chemformula} ,具體的使用可以去看它的巨集包,這裡簡單的列個例子。 \documentclass{article} \usepackag

PyCharm 教程顯示行號

    在PyCharm 裡,顯示行號有兩種辦法: 1,臨時設定。右鍵單擊行號處,選擇 Show Line Numbers。 但是這種方法,只對一個檔案有效,並且,重啟PyCharm 後消失。

Python 資料處理—12 Pandas 技巧上下

http://datartisan.com/article/detail/81.html 導語 Python正迅速成為資料科學家偏愛的語言,這合情合理。它擁有作為一種程式語言廣闊的生態環境以及眾多優秀的科學計算庫。如果你剛開始學習python,可以先了

常用演算法:動態規劃

1.從01揹包問題說起 有一堆寶石一共n個,現在你身上能裝寶石的就只有一個揹包,揹包的容量為C。把n個寶石排成一排並編上號: 0,1,2,…,n-1。第i個寶石對應的體積和價值分別為V[i]和W[i] 。揹包總共也就只能裝下體積為C的東西,那你要裝下哪些寶石才能獲得最大的

C#實戰小技巧:獲取當前日期時間

我們可以通過使用DataTime這個類來獲取當前的時間。通過呼叫類中的各種方法我們可以獲取不同的時間:如:日期(2008-09-04)、時間(12:12:12)、日期+時間(2008-09-04 12:11:10)等。 //獲取日期+時間 DateTime.Now.To

hive使用技巧——巧用MapJoin解決資料傾斜問題

相關文章推薦: Hive的MapJoin,在Join 操作在 Map 階段完成,如果需要的資料在 Map 的過程中可以訪問到則不再需要Reduce。 小表關聯一個超大表時,容易發生資料傾斜,可以用MapJoin把小表全部載入到記憶體在map端進行join,避免r

1.4環境的準備Pycharm的使用技巧

返回總目錄 目錄: 1.快捷鍵的使用: 2.提示技巧: 3.其他技巧: (一)快捷鍵的使用: (1)Pycharm自帶預設的快捷鍵 1.Ctrl + C 複製 2.Ctrl + V 貼上 3.Ctrl + X 剪下 4.Ctrl + Y 刪除選定的行 4.Ctrl + S

受用一生的 PyCharm 技巧大全

16. 快速定位到錯誤行 前幾天開啟 PyCharm,發現在導航欄這裡出現了很多紅色波浪線,有過 PyCharm 使用經驗的同學

Python學習之路 爬蟲正則表示式爬去名言網

auth Python標準庫 我們 color 匯總 eight code 比較 school 爬蟲的四個主要步驟 明確目標 (要知道你準備在哪個範圍或者網站去搜索) 爬 (將所有的網站的內容全部爬下來) 取 (去掉對我們沒用處的數據) 處理數據(按照我們想要的