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