前言
本篇旨在介绍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
参考资料