十個IntelliJ IDEA快捷鍵和示例,代碼多行編輯更高效
在日常編寫代碼過程中,高效的輸入對于提升效率有決定性意義。IntelliJ 系列 IDE 提供多光標功能及豐富快捷鍵,能極大提升效率。本文為你詳細介紹多光標功能及與之配合使用的一系列實用快捷鍵,助你輕松開啟高效編程之旅。
1.相關實用快捷鍵
在深入學習之前,你需要先熟悉各類快捷鍵及其使用方法。本文所提及的快捷鍵是基于 Mac 系統的,如果使用 Windows 系統,可以通過這張快捷鍵對照表查找對應的快捷鍵。如有不熟悉 Mac 系統按鍵的用戶,以下是一些說明:
- ? 表示 Command 鍵;
- ? 表示 Option 鍵;
- ? 表示 Control 鍵;
- ? 表示 Shift 鍵。
文章以 IntelliJ IDEA 為例展開介紹,不過,這些快捷鍵在 IntelliJ 系列的其他 IDE(如 Android Studio、Webstorm、PyCharm 等)中也同樣適用。
1.1 拖動創建多光標(按住?鍵,左鍵點擊并拖動)
若要創建多個光標,可先按住?鍵,在你希望第一個光標出現的第一行任意位置點擊,然后垂直向下拖動鼠標。在此過程中,如果同時水平移動鼠標,則會執行選擇操作。
拖動多個光標(按住?,左鍵單擊,拖動)
若想在每行末尾放置光標,可在離每行末尾稍遠的位置開始點擊并拖動鼠標。
此外,按住鼠標滾輪點擊也能實現相同效果。
1.2 選擇下一處匹配項(? G)
你選中某個單詞或語法的任意部分,然后按下? G 鍵,即可選中下一處匹配的內容。持續按下? G 鍵,直至選中你所需的全部內容。隨后開始輸入,此時你便能同時編輯多行內容啦。
圖片
那么,此功能與 “重命名” 功能有何區別呢?“重命名” 功能僅適用于類名、函數名或變量名。
此功能又和 “查找和替換” 功能的差異在哪里呢?“查找和替換” 操作需要更多的點擊操作,并且難以清晰地看到要替換的內容。而使用該快捷鍵時,你可以查看要編輯的內容,同時會在每個匹配項處創建一個光標。
1.3 取消選擇上一處匹配項(? ? G)
當選中的匹配項意外延伸到下一處時,你可以按下? ? G取消選擇上一處,而不用重新操作一遍。
圖片
1.4 選擇所有匹配項(? ? G)
若你想選中文件中的所有匹配項,按下? ? G鍵即可。這相當于在文件中進行 “全部查找”,而且會在每個匹配項處生成一個光標。
圖片
1.5 擴大或縮小選擇范圍(? ↑ 或 ? ↓)
這是一個容易被忽視的命令。當你想選中括號或引號之間的內容時,通常需要仔細控制鼠標指針的位置和移動。
更快的方法是使用擴大選擇范圍功能。將光標放在括號內的任意位置,按下? ↑ 。如果選擇范圍過大,按下? ↓ 可以撤銷擴大操作。
圖片
1.6 切換大小寫(? ? U)
選中你想轉換為全部大寫或全部小寫的語法內容,然后按下? ? U,就能在大小寫之間切換。
圖片
1.7 復制行(? D)
將光標放在任意一行的任意位置,按下? D。新復制的行會插入到原行的正下方。你也可以選中多行來復制多行內容。
圖片
1.8 移動到句子開頭或結尾(? ← 或 ? →)
這是Mac系統的快捷鍵。IntelliJ系列的IDE不會把句子開頭的縮進計算在內,所以你可以先移動到句子開頭,然后按住?鍵,再移動到句子結尾(? ← ,? ? →),這樣就能快速選中整行內容。
圖片
1.9 按單詞移動(? → 或 ? ←)
這是另一個Mac系統的快捷鍵。如果你完全不想使用鼠標,只需按住?鍵,同時按下→ 或 ← 鍵,即可更快速地移動光標。
圖片
2.實際示例
接下來通過四個實際示例來應用上述快捷鍵。
2.1 將JavaScript代碼轉換為Java代碼
在編程過程中,我們常常需要將代碼從一種語言轉換為另一種語言。幸運的是,不同語言在語法上或多或少會存在相似之處,這為我們使用快捷鍵進行代碼轉換提供了便利。這里我們以常量聲明為例,向你展示如何將一段 JavaScript 代碼轉換為 Java 代碼。
下面所示的 JavaScript 代碼,其中包含了常量的聲明:
export const USERS_FETCH_SUCCESS = 'users_fetch_success';
export const USERS_FETCH_FAILURE = 'users_fetch_failure';
export const USERS_FETCH_LOADING = 'users_fetch_loading';
這段代碼使用 export const 關鍵字來聲明常量,常量的值使用單引號括起來。
轉換為Java代碼:
public static final String USERS_FETCH_SUCCESS = "users_fetch_success";
public static final String USERS_FETCH_FAILURE = "users_fetch_failure";
public static final String USERS_FETCH_LOADING = "users_fetch_loading";
在 Java 中,常量的聲明使用 public static final String 關鍵字,并且常量的值是用雙引號括起來的。
那么,如何利用之前介紹的快捷鍵來完成這個轉換過程呢?你可以按照以下步驟操作:
圖片
- 將JavaScript語法粘貼到你的Java文件中;
- 選中第一行的 `export const`;
- 使用快捷鍵選中下一處匹配項;
- 輸入 `public static final String`進行替換;
- 將光標移動到單引號之間;
- 擴大一次選擇范圍;
- 按下 `"` 鍵。IDE很智能,會自動將單引號替換為雙引號,從而完成從 JavaScript 到 Java 的部分代碼轉換。
2.2 刪除換行符
把這段代碼:
List<String> statues = Arrays.asList(
"New",
"Waiting for Customer",
"In progress",
"Ready for review",
"Done"
);
轉換為:
List<String> statues = Arrays.asList("New", "Waiting for Customer", "In progress", "Ready for review", "Done");
操作步驟如下:
圖片
- 在每行開頭創建多個光標。
- 按下Backspace鍵刪除每行的換行符。
- 最后,稍微調整一下右括號的位置。
2.3 將單詞轉換為枚舉類型
若需要將純文本形式的狀態列表聲明為枚舉類型時,可以通過以下步驟高效完成轉換。例如,將以下狀態列表:
New
Waiting for Customer
In progress
Ready for review
Done
轉換為 Java 枚舉類型:
public enum WorkflowStatus {
NEW,
WAITING_FOR_CUSTOMER,
IN_PROGRESS,
READY_FOR_REVIEW,
DONE,
}
操作流程如下:
圖片
- 創建一個暫存文件。將這些狀態粘貼到暫存文件中。 - 選中第一個空格。選中所有空格匹配項。 - 用下劃線 _ 替換空格。
- 拖動鼠標在每行末尾創建多個光標,然后輸入逗號 ,。 - 從每行末尾選到每行開頭。- 按下快捷鍵將狀態內容轉換為大寫。
-把這些狀態復制到你的類中。
如果需要處理 Python 代碼,可以使用 JetBrains 插件 String Manipulation(網址是https://plugins.jetbrains.com/plugin/2162-string-manipulation/),該插件提供了更多便捷功能,建議嘗試。
2.4 逐行粘貼內容
延續前面的示例,如果需要將原始狀態文本作為枚舉值的參數,例如:
public enum WorkflowStatus {
NEW("New"),
WAITING_FOR_CUSTOMER("Waiting for Customer"),
IN_PROGRESS("In progress"),
READY_FOR_REVIEW("Ready for review"),
DONE("Done"),
;
WorkflowStatus(String value) {
}
}
操作步驟如下:
圖片
- 在暫存文件中,在每行末尾拖動創建多個光標。
- 從每行末尾選到每行開頭。
- 復制或剪切這些行內容。
- 切換到你的枚舉類文件。
- 選中第一個逗號。
- 選中下一處逗號匹配項,直到選中所有逗號。
- 按下← 鍵取消選擇,并將光標移到逗號左邊。
- 輸入左括號 `(`,IDE會自動添加右括號。
- 輸入雙引號 `"`,IDE會自動添加另一個雙引號。
- 逐行粘貼內容。搞定!
- 根據實際使用場景,簡單修改一下枚舉構造函數即可。
注意: 此方法僅在源文件和目標文件行數一致時有效,否則可能導致內容錯位。
3.三個實用技巧
3.1 創建暫存文件
暫存文件是一種臨時文件,可用于快速輸入或粘貼內容,方便臨時存儲和編輯信息。
圖片
創建暫存文件的快捷鍵是 ??N。
3.2 Presentation Assistant插件
Presentation Assistant 是非常實用的 IntelliJ 插件,它能夠實時顯示你正在使用的快捷鍵,以及對應的 Windows 系統快捷鍵。
它主要用于現場編碼演示,幫助觀眾了解你使用的快捷鍵,同時在結對編程時,你也可以使用這個插件,這樣你的伙伴就能從你這里學到很多快捷鍵。
下載鏈接:https://plugins.jetbrains.com/plugin/7345-presentation-assistant-for-2023-2/
圖片
3.3 暗紫色主題
為你的 IDE 換上不同的顏色主題,可以增添編程的樂趣。
例如,本文中使用的暗紫色主題,不僅美觀,還能緩解視覺疲勞。
下載鏈接:https://plugins.jetbrains.com/plugin/12100-dark-purple-theme