根據(jù)官方pdf翻譯:https://www.jetbrains.com/idea/docs/IntelliJIDEA_ReferenceCard_Mac.pdf
在 IntelliJ IDEA 中有兩個(gè) Mac 版本的快捷鍵,一個(gè)叫做:Mac OS X,一個(gè)叫做:Mac OS X 10.5+
目前都是用:Mac OS X 10.5+
建議將 Mac 系統(tǒng)中與 IntelliJ IDEA 沖突的快捷鍵取消或更改,不建議改 IntelliJ IDEA 的默認(rèn)快捷鍵。
Mac鍵盤符號(hào)和修飾鍵說(shuō)明
? Command
? Shift
? Option
? Control
?? Return/Enter
? Delete
? 向前刪除鍵(Fn+Delete)
↑ 上箭頭
↓ 下箭頭
← 左箭頭
→ 右箭頭
? Page Up(Fn+↑)
? Page Down(Fn+↓)
Home Fn + ←
End Fn + →
? 右制表符(Tab鍵)
? 左制表符(Shift+Tab)
? Escape (Esc)
一、Editing(編輯)
Control + Space 基本的代碼補(bǔ)全(補(bǔ)全任何類、方法、變量)
Control + Shift + Space 智能代碼補(bǔ)全(過(guò)濾器方法列表和變量的預(yù)期類型)
Command + Shift + Enter 自動(dòng)結(jié)束代碼,行末自動(dòng)添加分號(hào)
Command + P 顯示方法的參數(shù)信息
Control + J 快速查看文檔
Shift + F1 查看外部文檔(在某些代碼上會(huì)觸發(fā)打開瀏覽器顯示相關(guān)文檔)
Command + 鼠標(biāo)放在代碼上 顯示代碼簡(jiǎn)要信息
Command + F1 在錯(cuò)誤或警告處顯示具體描述信息
Command + N, Control + Enter, Control + N 生成代碼(getter、setter、構(gòu)造函數(shù)、hashCode/equals,toString)
Control + O 覆蓋方法(重寫父類方法)
Control + I 實(shí)現(xiàn)方法(實(shí)現(xiàn)接口中的方法)
Command + Option + T 包圍代碼(使用if..else, try..catch, for, synchronized等包圍選中的代碼)
Command + / 注釋/取消注釋與行注釋
Command + Option + / 注釋/取消注釋與塊注釋
Option + 方向鍵上 連續(xù)選中代碼塊
Option + 方向鍵下 減少當(dāng)前選中的代碼塊
Control + Shift + Q 顯示上下文信息
Option + Enter 顯示意向動(dòng)作和快速修復(fù)代碼
Command + Option + L 格式化代碼
Control + Option + O 優(yōu)化import
Control + Option + I 自動(dòng)縮進(jìn)線
Tab / Shift + Tab 縮進(jìn)代碼 / 反縮進(jìn)代碼
Command + X 剪切當(dāng)前行或選定的塊到剪貼板
Command + C 復(fù)制當(dāng)前行或選定的塊到剪貼板
Command + V 從剪貼板粘貼
Command + Shift + V 從最近的緩沖區(qū)粘貼
Command + D 復(fù)制當(dāng)前行或選定的塊
Command + Delete 刪除當(dāng)前行或選定的塊的行
Control + Shift + J 智能的將代碼拼接成一行
Command + Enter 智能的拆分拼接的行
Shift + Enter 開始新的一行
Command + Shift + U 大小寫切換
Command + Shift + ] / Command + Shift + [ 選擇直到代碼塊結(jié)束/開始
Option + Fn + Delete 刪除到單詞的末尾
Option + Delete 刪除到單詞的開頭
Command + 加號(hào) / Command + 減號(hào) 展開 / 折疊代碼塊
Command + Shift + 加號(hào) 展開所以代碼塊
Command + Shift + 減號(hào) 折疊所有代碼塊
Command + W 關(guān)閉活動(dòng)的編輯器選項(xiàng)卡
二、Search/Replace(查詢/替換)
Double Shift 查詢?nèi)魏螙|西
Command + F 文件內(nèi)查找
Command + G 查找模式下,向下查找
Command + Shift + G 查找模式下,向上查找
Command + R 文件內(nèi)替換
Command + Shift + F 全局查找(根據(jù)路徑)
Command + Shift + R 全局替換(根據(jù)路徑)
Command + Shift + S 查詢結(jié)構(gòu)(Ultimate Edition 版專用,需要在Keymap中設(shè)置)
Command + Shift + M 替換結(jié)構(gòu)(Ultimate Edition 版專用,需要在Keymap中設(shè)置)
三、Usage Search(使用查詢)
Option + F7 / Command + F7 在文件中查找用法 / 在類中查找用法
Command + Shift + F7 在文件中突出顯示的用法
Command + Option + F7 顯示用法
四、Compile and Run(編譯和運(yùn)行)
Command + F9 編譯Project
Command + Shift + F9 編譯選擇的文件、包或模塊
Control + Option + R 彈出 Run 的可選擇菜單
Control + Option + D 彈出 Debug 的可選擇菜單
Control + R 運(yùn)行
Control + D 調(diào)試
Control + Shift + R, Control + Shift + D 從編輯器運(yùn)行上下文環(huán)境配置
五、Debugging(調(diào)試)
F8 進(jìn)入下一步,如果當(dāng)前行斷點(diǎn)是一個(gè)方法,則不進(jìn)入當(dāng)前方法體內(nèi)
F7 進(jìn)入下一步,如果當(dāng)前行斷點(diǎn)是一個(gè)方法,則進(jìn)入當(dāng)前方法體內(nèi),如果該方法體還有方法,則不會(huì)進(jìn)入該內(nèi)嵌的方法中
Shift + F7 智能步入,斷點(diǎn)所在行上有多個(gè)方法調(diào)用,會(huì)彈出進(jìn)入哪個(gè)方法
Shift + F8 跳出
Option + F9 運(yùn)行到光標(biāo)處,如果光標(biāo)前有其他斷點(diǎn)會(huì)進(jìn)入到該斷點(diǎn)
Option + F8 計(jì)算表達(dá)式(可以更改變量值使其生效)
Command + Option + R 恢復(fù)程序運(yùn)行,如果該斷點(diǎn)下面代碼還有斷點(diǎn)則停在下一個(gè)斷點(diǎn)上
Command + F8 切換斷點(diǎn)(若光標(biāo)當(dāng)前行有斷點(diǎn)則取消斷點(diǎn),沒(méi)有則加上斷點(diǎn))
Command + Shift + F8 查看斷點(diǎn)信息
六、Navigation(導(dǎo)航)
Command + O 查找類文件
Command + Shift + O 查找所有類型文件、打開文件、打開目錄,打開目錄需要在輸入的內(nèi)容前面或后面加一個(gè)反斜杠/
Command + Option + O 前往指定的變量 / 方法
Control + 方向鍵左 / Control + 方向鍵右 左右切換打開的編輯tab頁(yè)
F12 返回到前一個(gè)工具窗口
Esc 從工具窗口進(jìn)入代碼文件窗口
Shift + Esc 隱藏當(dāng)前或最后一個(gè)活動(dòng)的窗口,且光標(biāo)進(jìn)入代碼文件窗口
Command + Shift + F4 關(guān)閉活動(dòng)run/messages/find/... tab
Command + L 在當(dāng)前文件跳轉(zhuǎn)到某一行的指定處
Command + E 顯示最近打開的文件記錄列表
Option + 方向鍵左 / Option + 方向鍵右 光標(biāo)跳轉(zhuǎn)到當(dāng)前單詞 / 中文句的左 / 右側(cè)開頭位置
Command + Option + 方向鍵左 / Command + Option + 方向鍵右 退回 / 前進(jìn)到上一個(gè)操作的地方
Command + Shift + Delete 跳轉(zhuǎn)到最后一個(gè)編輯的地方
Option + F1 顯示當(dāng)前文件選擇目標(biāo)彈出層,彈出層中有很多目標(biāo)可以進(jìn)行選擇(如在代碼編輯窗口可以選擇顯示該文件的Finder)
Command + B / Command +? 鼠標(biāo)點(diǎn)擊 進(jìn)入光標(biāo)所在的方法/變量的接口或是定義處
Command + Option + B 跳轉(zhuǎn)到實(shí)現(xiàn)處,在某個(gè)調(diào)用的方法名上使用會(huì)跳到具體的實(shí)現(xiàn)處,可以跳過(guò)接口
Option + Space, Command + Y 快速打開光標(biāo)所在方法、類的定義
Control + Shift + B 跳轉(zhuǎn)到類型聲明處
Command + U 前往當(dāng)前光標(biāo)所在方法的父類的方法 / 接口定義
Control + 方向鍵下 / Control + 方向鍵上 當(dāng)前光標(biāo)跳轉(zhuǎn)到當(dāng)前文件的前一個(gè)/后一個(gè)方法名位置
Command + ] / Command + [ 移動(dòng)光標(biāo)到當(dāng)前所在代碼的花括號(hào)開始/結(jié)束位置
Command + F12 彈出當(dāng)前文件結(jié)構(gòu)層,可以在彈出的層上直接輸入進(jìn)行篩選(可用于搜索類中的方法)
Control + H 顯示當(dāng)前類的層次結(jié)構(gòu)
Command + Shift + H 顯示方法層次結(jié)構(gòu)
Control + Option + H 顯示調(diào)用層次結(jié)構(gòu)
F2 / Shift + F2 跳轉(zhuǎn)到下一個(gè)/上一個(gè)突出錯(cuò)誤或警告的位置
F4 / Command + 方向鍵下 編輯/查看代碼源
Option + Home 顯示到當(dāng)前文件的導(dǎo)航條
F3選中文件/文件夾/代碼行,添加/取消書簽
Option + F3 選中文件/文件夾/代碼行,使用助記符添加/取消書簽
Control + 0...Control + 9 定位到對(duì)應(yīng)數(shù)值的書簽位置
Command + F3 顯示所有書簽
七、Refactoring(重構(gòu))
F5 復(fù)制文件到指定目錄
F6 移動(dòng)文件到指定目錄
Command + Delete 在文件上為安全刪除文件,彈出確認(rèn)框
Shift + F6 重命名文件
Command + F6 更改簽名
Command + Option + N 一致性
Command + Option + M 將選中的代碼提取為方法
Command + Option + V 提取變量
Command + Option + F 提取字段
Command + Option + C 提取常量
Command + Option + P 提取參數(shù)
八、VCS/Local History(版本控制/本地歷史記錄)
Command + K 提交代碼到版本控制器
Command + T 從版本控制器更新代碼
Option + Shift + C 查看最近的變更記錄
Control + C 快速?gòu)棾霭姹究刂破鞑僮髅姘?/p>
九、Live Templates(動(dòng)態(tài)代碼模板)
Command + Option + J 彈出模板選擇窗口,將選定的代碼使用動(dòng)態(tài)模板包住
Command + J 插入自定義動(dòng)態(tài)代碼模板
十、General(通用)
Command + 1...Command + 9 打開相應(yīng)編號(hào)的工具窗口
Command + S 保存所有
Command + Option + Y 同步、刷新
Control + Command + F 切換全屏模式
Command + Shift + F12 切換最大化編輯器
Option + Shift + F 添加到收藏夾
Option + Shift + I 檢查當(dāng)前文件與當(dāng)前的配置文件
Control + ` 快速切換當(dāng)前的scheme(切換主題、代碼樣式等)
Command + , 打開IDEA系統(tǒng)設(shè)置
Command + ; 打開項(xiàng)目結(jié)構(gòu)對(duì)話框
Shift + Command + A 查找動(dòng)作(可設(shè)置相關(guān)選項(xiàng))
Control + Shift + Tab 編輯窗口標(biāo)簽和工具窗口之間切換(如果在切換的過(guò)程加按上delete,則是關(guān)閉對(duì)應(yīng)選中的窗口)
十一、Other(一些官方文檔上沒(méi)有體現(xiàn)的快捷鍵)
Command + Shift +8 豎編輯模式
移動(dòng)與選取
光標(biāo)移動(dòng)
剛從 Windows 轉(zhuǎn)過(guò)來(lái)的時(shí)候可能會(huì)發(fā)現(xiàn),Mac 上沒(méi)有 Home 和 End 鍵。其實(shí),直接這樣就好了:Cmd + ← 移至行首 (Home)Cmd + → 移至行尾 (End)
類似的,找不到 PageUp 和 PageDown,其實(shí) Mac 系統(tǒng)也是有的:Fn + ↓ 向下翻頁(yè) (PageUp)Fn + ↑ 向上翻頁(yè) (PageDown)
再比如,對(duì)于一些很長(zhǎng)的網(wǎng)頁(yè),想快速跳到頂部和底部,即使網(wǎng)頁(yè)上沒(méi)有按鈕也沒(méi)關(guān)系,可以這樣:
Cmd + ↑ 回到頂部Cmd + ↓ 跳到底部
Mac 中也提供了按詞跳光標(biāo)的功能,英文中就是通過(guò)空格來(lái)判斷:
Option + ← 向前跳一個(gè)詞Option + → 向后跳一個(gè)詞
刪除
Windows 系統(tǒng)很貼 ♂ 心地為我們加上了兩個(gè)刪除鍵,一個(gè)是位于等號(hào)右邊的退格(BackSpace),一個(gè)是位于方向鍵上面的向后刪除(Delete)。Mac 雖然只有一個(gè) delete,相當(dāng)于 Windows的退格。但其實(shí),我們只要通過(guò)組合鍵 fn + delete 就可以實(shí)現(xiàn)向后刪除了
不僅如此,delete 和 fn + delete 絕大部分情況下可以搭配 Option 實(shí)現(xiàn)向前/向后刪除一個(gè)詞。一些情況下可以搭配 Cmd實(shí)現(xiàn)刪除整行(在編輯器 Atom 中不行,因?yàn)?Atom 把這個(gè)組合鍵默認(rèn)設(shè)置成了刪除至行首/行尾,如有需要,改下配置就好了)
文本選取
以上所有提到的快捷鍵,都可以搭配 Shift 來(lái)實(shí)現(xiàn)選取
想向上選中半頁(yè)的內(nèi)容,只需要:Fn + Shift + ↑
想從當(dāng)前位置選到末尾(多行),只需要:Cmd + Shift + ↓
想向后選中三個(gè)詞,只需要(* 3 表示按三次):Option + Shift + → * 3
想選擇整行,只需要:Cmd + ← 然后 Cmd + Shift + →當(dāng)然也可以 Cmd + → 然后 Cmd + Shift + ←
編輯操作
基礎(chǔ)操作
簡(jiǎn)單來(lái)說(shuō),大部分快捷鍵,就是把 Windows 的 Ctrl 替換成 Cmd 就行了,比如:Cmd + A 全選Cmd + C 復(fù)制Cmd + X 剪切Cmd + V 粘貼Cmd + Z 撤銷Cmd + Shift + Z 恢復(fù)(恢復(fù)撤銷操作)
移動(dòng)文件
這部分可能不應(yīng)該放在這篇博客中。只是個(gè)人覺(jué)得,與復(fù)制粘貼文本快捷鍵一起去記憶和使用,會(huì)比較好理解
上面提到的大部分快捷鍵對(duì)于在 Finder 中操作文件也是同理,我們可以全選、復(fù)制、粘貼甚至撤銷和恢復(fù),唯獨(dú)不能通過(guò) Cmd + X 來(lái)剪切
很多朋友抱怨說(shuō) Mac 只能復(fù)制粘貼文件之后再把原來(lái)的刪除(順便,把文件移動(dòng)到 Trash 的快捷鍵是 Cmd + delete),移動(dòng)文件的時(shí)候很不方便。其實(shí),Mac 是有這個(gè)功能的。復(fù)制之后,在目標(biāo)文件夾右鍵,菜單打開后,按住Option,本來(lái)的 “Paste Item” 就會(huì)變成 “Move Item Here”:
當(dāng)然,也可以通過(guò)快捷鍵 Cmd + Option + V 來(lái)完成移動(dòng)文件,會(huì)出現(xiàn)這樣的提示,確定即可:
格式快捷鍵
在大部分文本編輯器,比如 Microsoft Word 或者 Apple 的 Pages,Numbers 中,我們可以用快捷鍵調(diào)格式:Cmd + B 文字加粗(Bold)Cmd + I 斜體文字(Italic)Cmd + U 文字下劃線(Underline)
特殊快捷鍵
補(bǔ)充:有朋友提到,絕大部分文字編輯區(qū)都支持以下快捷鍵,如果你用 Emacs,可能對(duì)這些不會(huì)陌生
這些快捷鍵可以不去記憶,對(duì)于開發(fā)者來(lái)說(shuō)可能會(huì)偶爾用,對(duì)于絕大部分用戶,可能并不怎么需要
比如在 iTerm 中,我們會(huì)發(fā)現(xiàn),用 Cmd + ← 是跳不回開頭的,因?yàn)?iTerm 已經(jīng)把這個(gè)鍵設(shè)置成了跳到上一個(gè) Tab。同樣,用 Option鍵跳單詞也不行了
這種情況下,我們需要這些特殊快捷鍵來(lái)實(shí)現(xiàn)功能:Ctrl + A 跳到行首(Home)Ctrl + E 跳到行尾(End)Ctrl + F 向后移動(dòng)一個(gè)字符Ctrl + B 向前移動(dòng)一個(gè)字符Ctrl + P 光標(biāo)上移一行Ctrl + N 光標(biāo)下移一行
向前后跳詞的方式比較特殊,我們需要:ESC + F 向后移動(dòng)一個(gè)單詞ESC + B 向前移動(dòng)一個(gè)單詞同時(shí),iTerm 也為我們提供了特殊快捷鍵:Ctrl + ← 向前移動(dòng)一個(gè)單詞Ctrl + → 向后移動(dòng)一個(gè)單詞再比如,iTerm 中我還經(jīng)常用這個(gè):Ctrl + U 刪除整行
這些快捷鍵,特別是在手打比較長(zhǎng)的命令的時(shí)候,會(huì)很有用。這些快捷鍵也適用于其他的大部分環(huán)境。對(duì)于一般用戶,沒(méi)必要去特別記憶了,用上面提到的那些就好
一點(diǎn)點(diǎn)補(bǔ)充
關(guān)于 Cmd + F 文字查找,我打算在后面說(shuō) Chrome 操作的時(shí)候再提及。關(guān)于 Cmd + R 文字替換,暫時(shí)不打算多介紹。個(gè)人覺(jué)得這個(gè)功能對(duì)于普通用戶來(lái)說(shuō)可能意義不太大吧。而且現(xiàn)在很多編輯器和軟件都有比較友好的替換窗口,用起來(lái)也不會(huì)太困難
寫在最后