Visual Studio Jetbrains 常用快捷键

时间:2024-03-11 19:40:42

前言

本篇旨在介绍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

参考资料