前言
本篇旨在介紹Visual Studio(也適用Microsoft SQL Server),Jetbrains全家桶(Rider、WebStorm)等常用快捷鍵,常用但不在於全。末尾有ReSharper和VS Code的快捷鍵圖。
遵循的思想是:
1)雙手操作 > 單手操作,也就是減少純粹的右手鼠標操作,增加左手鍵盤的比重;
2)單手操作的距離越小越好,比如當一個IDE有多個KeyMap,或者同一個操作有多種實現方式時,選用距離最短的效率最高的;
3)當鼠標操作有類似“游戲微操作”的誤差或困難度時,快捷鍵能減少錯誤或微操作難度;肌肉記憶比在窗體上找更效率;
Visual Studio
- 移動
光標在元素間移動: Ctrl + <- 或 Ctrl + -> - 選中
選中:Shift + <- 或 Shift + ->
在移動的基礎上加上選中:Ctrl + Shift + <- 或 Ctrl + Shift + ->
選中光標所在的元素:Ctrl + W 或 雙擊鼠標左鍵 - 復制粘貼刪除
復制某一行:將光標放置在該行任意處,Ctrl + C
復制某一行到下一行處:將光標放置在該行任意處,Ctrl + D 或 在“復制某一行”的基礎上Ctrl + V(會自動復制到下一行)
刪除某一行:將光標放置在該行任意處,Ctrl + X (實際是剪切,相比於其他操作,左手單手操作距離更短更效率) - 文件導航
打開上一個訪問的文件:Ctrl + Tab
選擇某一個打開過的文件正選:長按Ctrl + 點擊Tab選中
選擇某一個打開過的文件反選:長按Ctrl + Shift + 點擊Tab選中
搜索某一個文件:Alt + \ (智能搜索) - 代碼搜索
當前文件里搜索:Ctrl + F
當前解決方案搜索:Ctrl + Shift + F (比Ctrl + F再切換搜索范圍少一步)
定位到某一個方法或者變量: Alt + \ (智能搜索) - 代碼導航
導航到上一個光標的位置:Ctrl + -
返回到下一個光標的位置:Ctrl + Shift + -
導航到某一行:Ctrl + G
導航到定義:F12
導航到實現:Ctrl + F12 - 代碼撤銷與注釋
撤銷:Ctrl + Z
反撤銷: Ctrl + Shift + Z
注釋:Ctrl + K Ctrl + C
取消注釋:Ctrl + K Ctrl + U - 生成 Build
Build某個項目:Ctrl + B
Build整個解決方案:Ctrl + Shift + B
中斷取消當前的Build:Ctrl + Break
調試時附加到進程:Ctrl + Alt + P - 代碼整理
格式規范化:Ctrl + K + D
代碼折疊和代碼展開:Ctrl + M + L (需要展開所有代碼時,操作兩次此快捷鍵即可)
折疊所有的方法:Ctrl + M + O - 重構 (同步影響所有被引用的地方)
重命名變量、方法、類,接口等:Ctrl + R(按兩次)
提取方法:選中某幾行代碼,Ctrl +R Ctrl + M - 萬能鍵
Alt + Enter (其實是下圖中智能提示的快捷鍵)
代碼有錯有紅色下划線:Alt + Enter, Enter (自動修復存在的錯誤)
代碼檢測有黃色下划線:Alt + Enter, Enter (一般是有更高級的語法糖)
代碼檢測有灰色下划線:Alt + Enter, Enter (自動刪除未使用)
刪除所有未使用的Using:光標置於某個灰色Using行的任意處,Alt + Enter, Enter
刪除所有未使用的變量:光標置於變量名處,Alt + Enter, Enter
自動預實現接口:Alt + Enter, Enter
自動給代碼定義變量:光標置於代碼末尾,Alt + Enter,(選擇引入本地),Enter
用顯示類型代替var:光標置於var處,Alt + Enter, Enter
內聯臨時變量(將變量定義取消,把之前已經用到的地方代還成變量的實際代碼):光標置於變量名處,Alt + Enter, Enter
提取方法:選中某幾行代碼,Alt + Enter, Enter
撤銷提取方法:光標置於方法名上,Alt + Enter, Enter
任意地方:Alt + Enter 會有不同的操作提示
Jetbrains
- KeyMap
Ctrl + Alt + A,輸入keymap,Enter (默認快捷鍵) - 代碼搜索
Ctrl + Shift + F :實時模糊匹配所搜的內容,並有文件后綴、正則等過濾條件,且支持在搜索結果框中直接修改;(整個解決方案)(當前文件為Ctrl + F)
Ctrl + Shift + R :在Ctrl + Shift + F的基礎上替換代碼;(整個解決方案)(當前文件為Ctrl + F)
定位到當前文件中某一個方法或者變量 :Ctrl + F12 - 選中
選中:Shift + <- 或 Shift + ->
在移動的基礎上加上選中:Ctrl + Shift + <- 或 Ctrl + Shift + ->
選中光標所在的元素:Ctrl + W (可以不斷按,將選中范圍向兩側不斷擴大) - 復制粘貼刪除
復制某一行:將光標放置在該行任意處,Ctrl + C
復制某一行到下一行處:將光標放置在該行任意處,Ctrl + D (沒有VS的Ctrl + V到下一行的功能)
刪除某一行:將光標放置在該行任意處,Ctrl + X (實際是剪切,相比於其他操作,左手單手操作距離更短更效率) - 代碼導航
導航到上一個光標的位置:Ctrl + Alt + <-
返回到下一個光標的位置:Ctrl + Alt + ->
導航到某一行某一列:Ctrl + G (輸入100,10,多一個列的參數可選)
導航到定義:Ctrl + B (能自動下載並導航到源碼)
導航到實現:Ctrl + Alt + B - 文件導航
Ctrl + Shift + N:實時模糊匹配所搜的文件
打開上一個訪問的文件:Ctrl + Tab
選擇某一個打開過的文件正選:長按Ctrl + 點擊Tab選中
選擇某一個打開過的文件反選:長按Ctrl + Shift + 點擊Tab選中 - 代碼撤銷與注釋
注釋:Ctrl + /
取消注釋:Ctrl + /
撤銷:Ctrl + Z
反撤銷: Ctrl + Shift + Z - 生成 Build
Build整個解決方案:Ctrl + F9
中斷取消當前的Build:Ctrl + F2
調試時附加到進程:Ctrl + Alt + F5 - 代碼整理
格式規范化:Ctrl + Alt + L
代碼折疊:Ctrl + Shift + -
代碼展開:Ctrl + Shift + + - 代碼管理集成:
Annotate:專業查鍋,任意代碼行數上右鍵選擇Annotate,可以看到每一行最近一次修改的時間和當時代碼提交的信息(提交人,當次提交內容) - 重構(同步影響所有被引用的地方)
提取變量:Ctrl + Alt + V
取消提取變量(內聯臨時變量):Ctrl + Alt + N
提取方法:Ctrl + Alt + M
重命名變量、方法、類、接口等:Shift + F6
安全刪除:Alt + Delete
可重構操作列表:Ctrl + Shift + Alt + T - 萬能鍵
Alt + Enter
代碼有錯有紅色下划線:Alt + Enter, Enter (自動修復存在的錯誤)
代碼檢測有黃色下划線:Alt + Enter, Enter (一般是有更高級的語法糖)
代碼檢測有灰色下划線:Alt + Enter, Enter (自動刪除未使用)
刪除所有未使用的Using:光標置於某個灰色Using行的任意處,Alt + Enter, Enter
刪除所有未使用的變量:光標置於變量名處,Alt + Enter, Enter
自動初始化構造函數參數:Alt + Enter, Enter
自動預實現接口:Alt + Enter, Enter
自動給代碼定義變量:光標置於代碼末尾,Alt + Enter,(選擇引入本地),Enter
用顯示類型代替var:光標置於var處,Alt + Enter, Enter
內聯臨時變量或方法(將變量定義取消,把之前已經用到的地方代還成變量的實際代碼):光標置於變量名處,Alt + Enter, Enter
提取方法:選中某幾行代碼,Alt + Enter, Enter
撤銷提取方法:光標置於方法名上,Alt + Enter, Enter
任意地方:Alt + Enter 會有不同的操作提示
雜談
可以看出很多按鍵是有固定的含義的,並不是在沒被占用的按鍵中隨機找一個。
Shift:通常是反向操作的含義;
G:goto
F:find
V:var
M:method
R:refactor 重構
B:build
U:undo
C:copy/cancel
參考資料