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