- 因為覺得網路上的 idea 快捷鍵不夠詳盡,所以特別編寫了此篇文章,方便大家使用 idea O(∩_∩)O~
- 其中的英文說明來自於 idea 的官網資料,中文說明主要來自於自己的領會和理解,英文說明只是作為參考。重要的快捷鍵會附帶圖示,進行詳細的說明。
- 每一部分會先列出所有的快捷鍵說明表,如果有不清楚的地方,再看後續的圖示詳解。
1 編輯【Editing】
快捷鍵 | 英文說明 | 中文說明 |
---|---|---|
Ctrl + Space | Basic code completion (the name of any class, method or variable) | 補全程式碼,由於經常與作業系統的輸入法的切換衝突,所以實際很少用。一般直接在 idea 中開啟輸入自動補全機制。 |
Ctrl + Shift + Space | Smart code completion (filters the list of methods and variables by expected type | 在列出的可選項中只顯示出你所輸入的關鍵字最相關的資訊。(常用) |
Ctrl + Shift + Enter | Complete statement | 程式碼補全後,自動在程式碼末尾新增分號結束符 |
Ctrl + P | Parameter info (within method call arguments) | 在某個方法中,呼叫該按鍵後,會展示出這個方法的呼叫引數列表資訊。 |
Ctrl + Q | Quick documentation lookup | 展示某個類或者方法的 API 說明文件 |
Ctrl + mouse | over code Brief Info | 跳進到某個類或者方法原始碼中進行檢視。(常用) |
Alt + Insert | Generate code… (Getters, Setters, Constructors, hashCode/equals, toString) | 自動生成某個類的 Getters, Setters, Constructors, hashCode/equals, toString 等程式碼。(常用) |
Ctrl + O | Override methods | 展示該類中所有覆蓋或者實現的方法列表,注意這裡是字母小寫的 O! |
Ctrl + Alt + T | Surround with… (if..else,try..catch, for, synchronized, etc.) | 自動生成具有環繞性質的程式碼,比如:if..else,try..catch, for, synchronized 等等,使用前要先選擇好需要環繞的程式碼塊。(常用) |
Ctrl + / | Comment/uncomment with line comment | 對單行程式碼,新增或刪除註釋。分為兩種情況:如果只是游標停留在某行,那麼連續使用該快捷鍵,會不斷註釋掉下一行的程式碼;如果選定了某行程式碼(選定了某行程式碼一部分也算這種情況),那麼連續使用該快捷鍵,會在新增或刪除該行註釋之間來回切換。(常用) |
Ctrl + Shift + / | Comment/uncomment with block comment | 對程式碼塊,新增或刪除註釋。它與 Ctrl + / 的區別是,它只會在程式碼塊的開頭與結尾新增註釋符號!(常用) |
Ctrl + W | Select successively increasing code blocks | 選中當前游標所在的程式碼塊,多次觸發,程式碼塊會逐級變大。(常用) |
Ctrl + Shift + W | Decrease current selection to previous state | 是 Ctrl + W 的反向操作,多次觸發,程式碼塊會逐級變小,最小變為游標。 |
Alt + Q | Context info | 展示包含當前游標所在程式碼的父節點資訊,比如在 java 方法中呼叫,就會展示方法簽名資訊。 |
Alt + Enter | Show intention actions and quick-fixes | 展示當前當前游標所在程式碼,可以變化的擴充套件操作 |
Ctrl + Alt + L | Reformat code | 格式化程式碼 (常用) |
Ctrl + Alt + O | Optimize imports | 去除沒有實際用到的包,這在 java 類中特別有用。(常用) |
Ctrl + Alt + I | Auto-indent line(s) | 按照縮排的設定,自動縮排所選擇的程式碼段。 |
Tab / Shift + Tab | Indent/unindent selected lines | 縮排或者不縮排一次所選擇的程式碼段。(常用) |
Ctrl + X 或 Shift Delete | Cut current line or selected block to clipboard | 剪下當前程式碼。 (常用) |
Ctrl + C 或 Ctrl + Insert | Copy current line or selected block to clipboard | 拷貝當前程式碼。 (常用) |
Ctrl + V 或 Shift + Insert | Paste from clipboard | 貼上之前剪下或拷貝的程式碼。(常用) |
Ctrl + Shift + V | Paste from recent buffers… | 從之前的剪下或拷貝的程式碼歷史記錄中,選擇現在需要貼上的內容。(常用) |
Ctrl + D | Duplicate current line or selected block | 複製當前選中的程式碼。(常用) |
Ctrl + Y | Delete line at caret | 刪除當前游標所在的程式碼行。(常用) |
Ctrl + Shift + J | Smart line join | 把下一行的程式碼接續到當前的程式碼行。 |
Ctrl + Enter | Smart line split | 當前程式碼行與下一行程式碼之間插入一個空行,原來所在的游標不變。(常用) |
Shift + Enter | Start new line | 當前程式碼行與下一行程式碼之間插入一個空行,原來游標現在處於新加的空上。(常用) |
Ctrl + Shift + U | Toggle case for word at caret or selected block | 所選擇的內容進行大小寫轉換。。(常用) |
Ctrl + Shift + ]/[ | Select till code block end/start | 從當前游標所在位置開始,一直選擇到當前游標所在程式碼段起始或者結束位置。 |
Ctrl + Delete | Delete to word end | 刪除從當前游標所在位置開始,直到這個單詞的結尾的內容。 |
Ctrl + NumPad(+/-) | Expand/collapse code block | 展開或收縮程式碼段。 (常用) |
Ctrl + Shift + NumPad(+) | Expand all | 展開所有程式碼段。 |
Ctrl + Shift + NumPad(-) | Collapse all | 收縮所有程式碼段。 |
Ctrl + F4 | Close active editor tab | 關閉當前標籤頁。 |
Shift + F6 | 修改名字。(常用) |
1.1 Ctrl + Shift + Space 示例(智慧補全)
使用前,用於補全的列表,預設是以輸入的關鍵字作為字首的:
使用後,用於補全的列表,會把與輸入的關鍵字最相關的資訊排到最前面,比如這裡的 Resource 的實現類會直接過濾出來,很方便吧 O(∩_∩)O~:1.2 Ctrl + P 示例(方法引數列表)
1.3 Ctrl + Q 示例(API 說明文件)
不大好用,字型太小了,還不如直接 [ctrl + 點選] 看原始碼來的方便!
1.4 Alt + Insert 示例(自動生成與類相關的程式碼)
如果繫結了 Spring 框架,還能自動生成與 Spring 相關的依賴引數哦:
1.5 Ctrl + O 示例(該類中所有覆蓋或者實現的方法列表)
1.6 Ctrl + Alt + T 示例(生成具有環繞性質的程式碼)
再強調一遍,使用前要先選擇好需要環繞的程式碼塊!沒有選擇程式碼塊,還做環繞幹嘛呢 O(∩_∩)O~
在右邊的 Surround with 列表,就是目前支援的自動程式碼環繞功能,可以直接通過列表最左邊的快捷鍵選擇,是不是很方便呀 O(∩_∩)O~ 它還支援自定義的程式碼模板(Live templates)呢,很強大吧。1.7 Ctrl + Shift + V 示例(剪下或拷貝的程式碼歷史記錄中,選擇貼上的內容)
這是一個很酷的功能 O(∩_∩)O~,它會把之前剪下或拷貝的程式碼歷史記錄(最近 5 條)展示出來,讓你來選擇哦。可惜的是,列表選項如果是中文會亂碼,還好內容可以正常顯示:
2 查詢或替換【Search/Replace】
快捷鍵 | 英文說明 | 中文說明 |
---|---|---|
Ctrl + F | Find | 在當前標籤頁中進行查詢,還支援正規表示式哦。(常用) |
F3 | Find next | 如果找到了多個查詢結果,每呼叫一次就會跳到下一個結果,很方便哦。 |
Shift + F3 | Find previous | 是 F3 的反向操作,即每呼叫一次就會跳到上一個結果。 |
Ctrl + R | Replace | 在當前標籤頁中進行替換操作。(常用) |
Ctrl + Shift + F | Find in path | 通過路徑查詢。(常用) |
Ctrl + Shift + R | Replace in path | 通過路徑替換。(常用) |
2.1 Ctrl + F (查詢)
觸發後,會開啟一個查詢皮膚:
具體含義如下:圖示 | 說明 |
---|---|
向上箭頭 | 就是 快捷鍵【Shift + F3】,每呼叫一次就會跳到上一個結果。 |
向下箭頭 | 就是 快捷鍵【F3】,每呼叫一次就會跳到下一個結果。 |
加號符號 | 把當前的高亮項加入到選中的列表中。 |
減號符號 | 把當前的高亮項從選中的列表中移除。 |
勾選符號 | 把所有的查詢結果同時選中,這很適合批量操作。 |
文字內的向上箭頭 | 開啟查詢結果列表皮膚。 |
兩個框加一個向下箭頭 | 更多選項。 |
Match Case | 是否大小寫敏感。 |
Regex | 正規表示式。 |
Words | 匹配單詞。 |
x matches | x 表示的是找到的記錄數。 |
勾選符號選中效果:
點選文字內的向上箭頭,開啟後的查詢結果列表皮膚: 兩個框加一個向下箭頭,會變成一個大文字輸入框,而且還多出一個檢視搜尋歷史的按鈕:2.2 Ctrl + Shift + F (通過路徑查詢)
3 檢視使用情況【Usage Search】
主要是檢視當前游標所在內容使用情況。
快捷鍵 | 英文說明 | 中文說明 |
---|---|---|
Alt + F7 | Find usages | 在當前專案中的使用情況,會開啟一個使用情況皮膚。 |
Ctrl + F7 | Find usages in file | 在當前檔案中的使用情況,找的內容會低亮顯示。 |
Ctrl + Shift + F7 | 在當前檔案中的使用情況,找的內容會高亮顯示。 | |
Ctrl + Alt + F7 | Show usages | 開啟使用情況列表。 (常用) |
3.1 Ctrl + Alt + F7(開啟使用情況列表)
4 編譯與執行【Compile and Run】
快捷鍵 | 英文說明 | 中文說明 |
---|---|---|
Ctrl + F9 | Make project (compile modifed and dependent) | 編譯專案(如果之前有編譯過,那麼只會編譯那些修改的類或者依賴的包)。 |
Ctrl + Shift + F9 | Compile selected file, package or module | 編譯所中的範圍(如果在某個類中,那麼只會編譯當前類)。 |
Alt + Shift + F10 | Select configuration and run | 會開啟一個已經配置的執行列表,讓你選擇一個後,再執行。 |
Alt + Shift + F9 | Select configuration and debug | |
Shift + F10 | Run | 立即執行當前配置的執行例項,這個在單元測試中特別好用。 (常用) |
Shift + F9 | Debug | 立即以編譯模式執行當前配置的執行例項。 |
Ctrl + Shift + F10 | Run context configuration from editor | 按照編輯器繫結的檔案型別,執行相關的程式。比如一個 html 頁面,呼叫後,會直接開啟一個瀏覽器。 |
4.1 Alt + Shift + F10(開啟執行列表,選擇一個執行)
5 除錯【Debugging】
快捷鍵 | 英文說明 | 中文說明 |
---|---|---|
F8 | Step over | 跳到當前程式碼下一行。 (常用) |
F7 | Step into | 跳入到呼叫的方法內部程式碼。 (常用) |
Shift + F7 | Smart step into | 會開啟一個皮膚,讓你選擇具體要跳入的類方法,這個在複雜的巢狀程式碼中特別有用。 |
Shift + F8 | Step out | 跳出當前的類,到上一級。 (常用) |
Alt + F9 | Run to cursor | 讓程式碼執行到當前游標所在處,非常棒的功能。 (常用) |
Alt + F8 | Evaluate expression | 開啟一個表示式皮膚,然後進行進一步的計算。 |
F9 | Resume program | 結束當前斷點的本輪除錯(因為有可能程式碼會被呼叫多次,所以呼叫後只會結束當前的這一次);如果有下一個斷點會跳到下一個斷點中。(常用) |
Ctrl + F8 | Toggle breakpoint | 在當前游標處,新增或者刪除斷點。 |
Ctrl + Shift + F8 | View breakpoints | 開啟當前斷點的皮膚,可以進行條件過濾哦。 |
5.1 Shift + F7(選擇具體要跳入的類方法)
5.2 Alt + F8 (計算表示式)
注意:要在當前斷點之前的程式碼中,選擇某一個變數執行才有效,因為只有程式碼執行過了,才會有值的呀 O(∩_∩)O~
5.3 Ctrl + Shift + F8 (當前斷點的皮膚)
6 導航【Navigation】
快捷鍵 | 英文說明 | 中文說明 |
---|---|---|
Ctrl + N | Go to class | 開啟類查詢框。(常用) |
Ctrl + Shift + N | Go to file | 開啟檔案查詢框。(常用) |
Ctrl + Alt + Shift + N | Go to symbol | 開啟文字查詢框。 |
Alt + 右箭頭/左箭頭 | Go to next/previous editor tab | 跳到下一個/上一個編輯器標籤。 |
F12 | Go back to previous tool window | 如果當前在編輯視窗,觸發後,會跳到之前操作過的工具欄上。 |
ESC | Go to editor (from tool window) | 從工具欄上,再跳回原來的編輯視窗,一般與 F12 配合使用。 |
Shift + ESC | Hide active or last active window | 隱藏最後一個處於活躍狀態的工具視窗。 |
Ctrl + Shift + F4 | Close active run/messages/find/… tab | 同時關閉處於活動狀態的某些工具欄視窗。 |
Ctrl + G | Go to line | 跳轉至某一行程式碼。。(常用) |
Ctrl + E | Recent files popup | 開啟曾經操作過的檔案歷史列表。 |
Ctrl + Alt + 右箭頭/左箭頭 | Navigate back/forward | 在曾經瀏覽過的程式碼行中來回跳 |
Ctrl + Shift + Backspace | Navigate to last edit location | 跳轉到最近的編輯位置(如果曾經編輯過程式碼)。 |
Alt + F1 | Select current file or symbol in any view | 開啟一個型別列表,選擇後會導航到當前檔案或者內容的具體與型別相關的皮膚中。 |
Ctrl + B 或 Ctrl + 滑鼠左鍵 | Go to declaration | 如果是類,那麼會跳轉到當前游標所在的類定義或者介面;如果是變數,會開啟一個變數被引用的列表。(常用) |
Ctrl + Alt + B | Go to implementation(s) | 跳轉到實現類,而不是介面。(常用) |
Ctrl + Shift + I | Open quick definition lookup | 開啟一個皮膚,裡面包含類程式碼。 |
Ctrl + Shift + B | Go to type declaration | 開啟變數的型別所對應的類程式碼,只對變數有用。 |
Ctrl + U | Go to super-method/super-class | 開啟方法的超類方法或者類的超類,只對有超類的方法或者類有效。 |
Alt + 上/下箭頭 | Go to previous/next method | 在某個類中,跳到上一個/下一個方法的簽名上。 |
Ctrl + ]/[ | Move to code block end/start | 移動游標到類定義的終止右大括號或者起始左大括號。 |
Ctrl + F12 | File structure popup | 開啟類的結構列表。(常用) |
Ctrl + H | Type hierarchy | 開啟類的繼承關係列表。(常用) |
Ctrl + Shift + H | Method hierarchy | 開啟某個類方法的繼承關係列表。 |
Ctrl + Alt + H | Call hierarchy | 開啟所有類的方法列表,這些方法都呼叫了當前游標所處的某個類方法。(常用) |
F2/Shift + F2 | Next/previous highlighted error | 在編譯錯誤的程式碼行中來回跳。 |
F4 | Edit source | 開啟當前游標所在處的方法或類原始碼。 |
Alt + Home | Show navigation bar | 啟用包路徑的導航欄。 |
F11 | Toggle bookmark | 把游標所處的程式碼行新增為書籤或者從書籤中刪除。(常用) |
Ctrl + F11 | Toggle bookmark with mnemonic | 把游標所處的程式碼行新增為帶快捷鍵的書籤或者從快捷鍵書籤中刪除。 |
Ctrl + [0-9] | Go to numbered bookmark | 跳轉到之前定義的快捷鍵書籤。 |
Shift + F11 | Show bookmarks | 開啟書籤列表。(常用) |
6.1 Ctrl + N (開啟類查詢框)
鍵入類名的關鍵字,會自動出現相關的類哦,右側還有一個勾選項,能夠把引用的 jar 包中的類也加進來,很強大 O(∩_∩)O~
6.2 Ctrl + Alt + 右箭頭/左箭頭(在曾經瀏覽過的程式碼行中來回跳)
如果作業系統裝的是 NVIDIA 顯示卡驅動程式,那麼觸發這個熱鍵,會把旋轉顯示內容,而不是觸發 idea 的功能,因為 idea 熱鍵被 NVIDIA 顯示卡驅動給劫持咯。 解決方法是禁用 NVIDIA 顯示卡驅動所有快捷鍵,: 1、控制皮膚-》顯示-》螢幕解析度:
2、點選【高階設定】-》核芯顯示卡控制皮膚: 3、圖形屬性-》選項與支援-》禁用所有快捷鍵(這些快捷鍵幾乎沒有什麼用處!)6.3 Alt + F1(開啟一個型別列表)
6.4 F11(新增為書籤或者從書籤中刪除)
書籤不是預設檢視,所以我們要把它新增到當前檢視中:View -> Tool Windows -> Favorites,開啟 Favorites 皮膚:
Favorites 皮膚中的 Bookmarks 就是我們新增的書籤哦: 或者直接使用 Shift + F11,開啟書籤列表也可以的哦 O(∩_∩)O~。6.5 Ctrl + F11 (新增或刪除帶快捷鍵的書籤)
會開啟一個設定快捷鍵的皮膚,比如這裡點選了 1,那麼它的快捷鍵就是 Ctrl + 1。 注意不要選擇皮膚提供的 26 個大寫字母,因為這會與 idea 的其他快捷鍵衝突,不知道 idea 為什麼要把它們放在這裡?好奇怪 O(∩_∩)O~