编辑.上移行 => 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
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
#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时要把光标移动到括号内的操作)Visual C# , 可看到文件位置, 找到cotr.snippet文件,拷贝到桌面, 将$end$移动到如下位置<

在解决方案中跟踪活动项
工具=>选项=>项目和解决方案=>常规=>在解决方案资源管理器中跟踪活动项 打勾即可
这样就可以方便查看打开文件的目录位置
显示内联提示

效果:

<?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()
{
}
在railstutorial中,作者为什么选择使用这个(代码list10.25):http://ruby.railstutorial.org/chapters/updating-showing-and-deleting-usersnamespace:dbdodesc"Filldatabasewithsampledata"task:populate=>:environmentdoRake::Task['db:reset'].invokeUser.create!(:name=>"ExampleUser",:email=>"example@railstutorial.org",:passwo
我有一个在Linux服务器上运行的ruby脚本。它不使用rails或任何东西。它基本上是一个命令行ruby脚本,可以像这样传递参数:./ruby_script.rbarg1arg2如何将参数抽象到配置文件(例如yaml文件或其他文件)中?您能否举例说明如何做到这一点?提前谢谢你。 最佳答案 首先,您可以运行一个写入YAML配置文件的独立脚本:require"yaml"File.write("path_to_yaml_file",[arg1,arg2].to_yaml)然后,在您的应用中阅读它:require"yaml"arg
我已经在Sinatra上创建了应用程序,它代表了一个简单的API。我想在生产和开发上进行部署。我想在部署时选择,是开发还是生产,一些方法的逻辑应该改变,这取决于部署类型。是否有任何想法,如何完成以及解决此问题的一些示例。例子:我有代码get'/api/test'doreturn"Itisdev"end但是在部署到生产环境之后我想在运行/api/test之后看到ItisPROD如何实现? 最佳答案 根据SinatraDocumentation:EnvironmentscanbesetthroughtheRACK_ENVenvironm
之前在培训新生的时候,windows环境下配置opencv环境一直教的都是网上主流的vsstudio配置属性表,但是这个似乎对新生来说难度略高(虽然个人觉得完全是他们自己的问题),加之暑假之后对cmake实在是爱不释手,且这样配置确实十分简单(其实都不需要配置),故斗胆妄言vscode下配置CV之法。其实极为简单,图比较多所以很长。如果你看此文还配不好,你应该思考一下是不是自己的问题。闲话少说,直接开始。0.CMkae简介有的人到大二了都不知道cmake是什么,我不说是谁。CMake是一个开源免费并且跨平台的构建工具,可以用简单的语句来描述所有平台的编译过程。它能够根据当前所在平台输出对应的m
注意:本文主要掌握DCN自研无线产品的基本配置方法和注意事项,能够进行一般的项目实施、调试与运维AP基本配置命令AP登录用户名和密码均为:adminAP默认IP地址为:192.168.1.10AP默认情况下DHCP开启AP静态地址配置:setmanagementstatic-ip192.168.10.1AP开启/关闭DHCP功能:setmanagementdhcp-statusup/downAP设置默认网关:setstatic-ip-routegeteway192.168.10.254查看AP基本信息:getsystemgetmanagementgetmanaged-apgetrouteAP配
1.1.1 YARN的介绍 为克服Hadoop1.0中HDFS和MapReduce存在的各种问题⽽提出的,针对Hadoop1.0中的MapReduce在扩展性和多框架⽀持⽅⾯的不⾜,提出了全新的资源管理框架YARN. ApacheYARN(YetanotherResourceNegotiator的缩写)是Hadoop集群的资源管理系统,负责为计算程序提供服务器计算资源,相当于⼀个分布式的操作系统平台,⽽MapReduce等计算程序则相当于运⾏于操作系统之上的应⽤程序。 YARN被引⼊Hadoop2,最初是为了改善MapReduce的实现,但是因为具有⾜够的通⽤性,同样可以⽀持其他的分布式计算模
我是ruby的新手,正在配置IRB。我喜欢pretty-print(需要'pp'),但总是输入pp来漂亮地打印它似乎很麻烦。我想做的是默认情况下让它漂亮地打印出来,所以如果我有一个var,比如说,'myvar',然后键入myvar,它会自动调用pretty_inspect而不是常规检查。我从哪里开始?理想情况下,我将能够向我的.irbrc文件添加一个自动调用的方法。有什么想法吗?谢谢! 最佳答案 irb中默认pretty-print对象正是hirb被迫去做。Theseposts解释hirb如何将几乎所有内容转换为ascii表。虽
我想在IRB中浏览文件系统并让提示更改以反射(reflect)当前工作目录,但我不知道如何在每个命令后进行提示更新。最终,我想在日常工作中更多地使用IRB,让bash溜走。我在我的.irbrc中试过这个:require'fileutils'includeFileUtilsIRB.conf[:PROMPT][:CUSTOM]={:PROMPT_N=>"\e[1m:\e[m",:PROMPT_I=>"\e[1m#{pwd}>\e[m",:PROMPT_S=>"FOO",:PROMPT_C=>"\e[1m#{pwd}>\e[m",:RETURN=>""}IRB.conf[:PROMPT_MO
我正在使用Ruby/Mechanize编写一个“自动填写表格”应用程序。它几乎可以工作。我可以使用精彩CharlesWeb代理以查看服务器和我的Firefox浏览器之间的交换。现在我想使用Charles查看服务器和我的应用程序之间的交换。Charles在端口8888上代理。假设服务器位于https://my.host.com。.一件不起作用的事情是:@agent||=Mechanize.newdo|agent|agent.set_proxy("my.host.com",8888)end这会导致Net::HTTP::Persistent::Error:...lib/net/http/pe
我有一个数组数组,想将元素附加到子数组。+=做我想做的,但我想了解为什么push不做。我期望的行为(并与+=一起工作):b=Array.new(3,[])b[0]+=["apple"]b[1]+=["orange"]b[2]+=["frog"]b=>[["苹果"],["橙子"],["Frog"]]通过推送,我将推送的元素附加到每个子数组(为什么?):a=Array.new(3,[])a[0].push("apple")a[1].push("orange")a[2].push("frog")a=>[[“苹果”、“橙子”、“Frog”]、[“苹果”、“橙子”、“Frog”]、[“苹果”、“