自定义快捷键 (形成个人偏好,提高效率)
编辑.上移行 => Ctrl+Alt+U(全局)
编辑.下移行 => Ctrl+Alt+I(全局)
编辑.左移字符 => Ctrl+Alt+J(全局)
编辑.右移字符 => Ctrl+Alt+K(全局)
编辑.行首 => Ctrl+Alt+H(全局)
编辑.行尾 => Ctrl+Alt+;(全局)
编辑.将选定行上移=>Alt+Up;(全局) //将此行为保持和vscode一致
编辑.将选定行下移=>Alt+Down;(全局) //将此行为保持和vscode一致
编辑.设置文档的格式 => Ctrl+Alt+L(全局)
~ 向前移动一个单词 ctrl+alt+shift+j ~
~ 向后移动一个单词 ctrl+alt+shift+k ~
编辑.扩展到上一个字=>Ctrl+Shift+Alt+J
编辑.扩展到下一个字=>Ctrl+Shift+Alt+K
编辑.转到文件=>Ctrl+P
项目.添加类=>Shift+Alt+C
项目.新建文件夹=>Shift + Alt + F
项目.管理NuGet程序包=>Shift+Alt+N
视图.解决方案资源管理器=>Shift+Alt+W
项目.设为启动项目=>Shift+Alt+S
编辑.选择当前字 => Ctrl+W , Ctrl+W
生成.发布选定内容=>Alt+P
编辑.减少行缩进 => Ctrl+Shift+[ //去除前部分空格,方便粘贴代码
编辑.上开新行 => shift+enter //在代码上方插入光标,方便写注释
编辑.下开新行 => ctrl+enter //直接新开一行
编辑.切换行注释 => ctrl+/ //将此行为保持和vscode一致
编辑.复制 => ctrl+d //复制当前行到下一行 (原是复制搜出的第一个且快捷键是ctrl+e,ctrl+v 的那个)
编辑.将JSON粘贴为类 => Ctrl+Shift+Alt+J //省区自定义类的捷径
视图.向后导航=>ctrl+alt+z
试图.向前导航=>ctrl+alt+x
编辑.折叠当前区域 =>ctrl+shift+-
编辑.展开当前区域 => ctrl+shift++
git.提交和推送 => ctrl+shift+enter
解决方案资源管理器 => ctrl+1,ctrl+1
编辑器移除和排序using => ctrl + alt + g
vs常用快捷键
1)如果你想复制一整行代码,只需将光标移至该行,再使用组合键“Ctrl+C”来完成复制操作,而无需选择整行。
2)如果你想剪切一整行代码,只需将光标移至该行,再使用组合键“Ctrl+X”来完成剪切操作,而无需选择整行。
如果要实现复制当前行,并且粘贴到下一行.就用组合键ctrl c + ctrl v (已使用Ctrl+D快捷键实现, 该方式类似于webstorm)
如果你想删除一整行代码,只需将光标移至该行,再使用组合键“Ctrl+L”来完成剪切操作,而无需选择整行。
3) ctrl+m / ctrl+m 代码块折叠/代码块展开 (按两次)
4) ctrl+k+k 书签切换
5) ctrl+k,ctrl+w 书签窗口
6) ctrl+shift+e 资源视图
7) ctrl+alt+a 命令窗口
8) shift+alt+d 数据源
9) ctrl+alt+r web浏览器
10) ctrl+shift+b 生成解决方案
11) shift+alt+a 添加现有项
12) ctrl+\,ctrl+m 团队资源管理器
13) ctrl+shift+c 类视图
14) ctrl+\,e 错误列表
15) ctrl+alt+o 输出
16) ctrl+\,t 任务列表
17) shift+alt+enter 全屏幕
18) ctrl+- 向后导航
19) ctrl+shift+- 向前导航
20) shift+esc 取消窗口浮动
21) ctrl+shift+v 显示剪贴板历史记录
22) ctrl+e,v 复制
23) ctrl+shift+v 显示历史记录
24) alt + 上/下 整行上下移动,(按住alt)
25) ctrl+ ` 打开命令行窗口
26) ctrl+k,ctrl+k 切换书签
27) ctrl+k,ctrl+p 上一书签
28) ctrl+k,ctrl+n 下一书签
29) ctrl+k,ctrl+l 清除书签
30) ctrl+k,ctrl+w 打开书签窗口
31) ctrl + r, g 编辑器上下文菜单.代码窗口.RemoveAndSort using
代码片段:snippast
#if
#region
~
attribute
checked
class
ctor
cw
do
else
enum
equals
exception
for
foreach
forr
if
indexer
interface
invoke
iterator
lock
mbox
namespace
prop
propfull
propg
sim
struct
svm
switch
try
tryf
unchecked
unsafe
using
while
- 设置私有字段使用下划线前缀
默认情况下,VS 智能补全对类的私有字段使用的是 camelCase 命名风格,但有很多人更习惯使用 _camelCase 风格对私有字段命名,类的私有字段前面加 _
前缀有助于和本地变量进行区分。我们可以通过设置来改变默认的 camelCase 命名行为,具体设置步骤如下。
依次点击:
Tools -> Options -> Text Editor -> C# -> Code Style -> Naming -> Manage naming styles。
按照上面步骤操作后你会看到一个窗口,然后按照下图添加一个 Naming Style:
然后设置该命名样式到相关规范上
- 设置代码片段
- 将
ctor
快捷键结束位置调整到参数括号内 , (省去了每次注入service时要把光标移动到括号内的操作)
先找到代码片段文件位置: vs->工具->代码片段管理器->Visual C#
, 可看到文件位置, 找到cotr.snippet
文件,拷贝到桌面, 将$end$
移动到如下位置
<![CDATA[public $classname$ ($end$)
保存后覆盖原来的文件, 重启vs
- 添加
class
或interface
新文件自动添加public
找到vs模板位置,
vs2019位置为:C:\Program Files (x86)\Microsoft Visual Studio19\Professional\Common7\IDE\ItemTemplates\CSharp\Code52
以及C:\Program Files (x86)\Microsoft Visual Studio19\Professional\Common7\IDE\ItemTemplates\AspNetCore\Code33
,
vs2022位置:C:\Program Files\Microsoft Visual Studio22\Community\Common7\IDE\ItemTemplates\CSharp\Code52\Class
以及C:\Program Files\Microsoft Visual Studio22\Community\Common7\IDE\ItemTemplates\AspNetCore\Code33
路径下面有Class
、Interface
文件夹, 分别打开修改里面的Class.cs
、Interface.cs
在修饰符前面添加public
,也可添加一些固定注释也可以, 保存到桌面后覆盖对应的文件即可.
-
调试窗口
调试过程中需要查看各种环境变量,可在进入断点之后,选择调试=>窗口,打开各种调试窗口, 最为常用的就是自动窗口
和局部变量
这两个神器了.
注意在没有进入调试时显示的窗口会很少,如下
在解决方案中跟踪活动项
工具=>选项=>项目和解决方案=>常规=>在解决方案资源管理器中跟踪活动项 打勾即可
这样就可以方便查看打开文件的目录位置显示内联提示
效果:
- 修改ctor.snippet
<?xml version="1.0" encoding="utf-8" ?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
<Header>
<Title>ctor</Title>
<Shortcut>ctor</Shortcut>
<Description>Code snippet for constructor</Description>
<Author>Microsoft Corporation</Author>
<SnippetTypes>
<SnippetType>Expansion</SnippetType>
</SnippetTypes>
</Header>
<Snippet>
<Declarations>
<Literal Editable="false">
<ID>classname</ID>
<ToolTip>Class name</ToolTip>
<Function>ClassName()</Function>
<Default>ClassNamePlaceholder</Default>
</Literal>
</Declarations>
<Code Language="csharp"><![CDATA[
/// <summary>
/// 构造函数
/// </summary>
public $classname$ ($end$)
{
}]]>
</Code>
</Snippet>
</CodeSnippet>
</CodeSnippets>
在输入ctor后按tab键自动将注释带上,且光标停留在了函数参数括号内,方便填写参数
/// <summary>
/// 构造函数
/// </summary>
public OptionsSettingsAttribute()
{
}
建议安装的插件:
- github copilot (收费) , 代码协助
- Ozcode (免费) , 调试帮手