21

是否有用花括号包围给定(选定)代码块的快捷方式?

VS 2015 + R# 2016.1

4

6 回答 6

35

为此,您不需要 Resharper。您可以将“环绕”与自定义片段一起使用。

然后您可以使用 Ctrl + K、Ctrl + S 选择您的文本,然后在自定义代码段中选择代码段 {}。为了创建这样的片段:

  1. 创建一个包含以下内容的“.snippet”文件
  2. 转到片段管理器(工具 > 代码片段管理器)
  3. 点击导入,选择刚刚创建的文件

使用以下代码段:

<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets  xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
 <CodeSnippet Format="1.0.0">
  <Header>
   <Title>{}</Title>
   <Shortcut>{}</Shortcut>
   <Description>Code snippet for {}</Description>
   <Author>Alexandre</Author>
   <SnippetTypes>
    <SnippetType>Expansion</SnippetType>
    <SnippetType>SurroundsWith</SnippetType>
   </SnippetTypes>
  </Header>
  <Snippet>
   <Code Language="csharp">
    <![CDATA[{ 
    $selected$ $end$ 
    }]]>
  </Code>
  </Snippet>
 </CodeSnippet>
</CodeSnippets>
于 2018-09-27T07:12:02.467 回答
14

我能找到的 Visual Studio 方案中最快的内置快捷方式是Ctrl++ , (用E...包围,然后选择选项 7,即花括号)。U7

我在 Visual Studio 的键盘选项中没有看到它的快捷方式,所以这可能是你能得到的最好的。

于 2016-05-04T14:22:20.870 回答
12

作为 Patrick 的答案 ( Ctrl+ E, U, 7) 的替代方案,您还可以使用 ReSharper 9+ 的扩展Alt+ Enter-menu。

Alt+ Enter, UP, UP, Enter, 或

Alt+ Enter, "bl",Enter

屏幕

不幸的是,我不知道如何将其绑定到较短的热键。

但如果这对你来说真的很重要,你可以试试AutoHotkey

于 2016-05-05T16:58:43.230 回答
3

至少在 Visual Studio 2019 中,这是一个内置的可选功能,尽管它是:

  1. 默认禁用
  2. 深埋在选项中

要启用此功能,请选择工具-> 选项以打开选项对话框。在显示选项组的左侧窗格中,展开Text Editor组,然后展开C/C++子组,然后选择Advanced项。现在一直滚动到右侧窗格的底部,您将在“文本编辑器”部分下看到以下选项:
| 选项 | 价值 |
| ------ | ----- |
| 启用大括号环绕 | 假 |
| 启用带括号的环绕 | 假 |
将这两个都更改为“True”(假设您想要两种行为),您就可以开始了!

于 2021-02-11T14:51:52.060 回答
1

使用带有 resharper 2017 的 Visual Studio 2017,看起来这样做的方法是点击CTRL+E 和:UpUpEnter,或开始输入快捷方式名称 (swb将匹配Surrond With block并使您开心。

不过,我不能 100% 确定这是 VS 还是 RS,因为 CTRL+E是 VS 2017。
从好的方面来说,一旦你点击 CTRL+E组合,你就可以轻松搜索快捷方式并找到新的宝石。

更新
这是 Resharper 的一部分。我正在使用 2017.1.1 终极版。您可以在他们的页面上找到更多关于实时模板的模板

于 2017-07-31T02:22:25.833 回答
1

AlexandreG的解决方案效果很好。从我的角度来看,我可以告诉您必须使用 .snippet 扩展名保存文件。第二个提示:如果要将片段与系统片段一起保存,则必须将它们保存在这里:C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC#\Snippets\1033\Visual C# 或从片段文件对话框中复制位置

于 2020-12-27T19:26:05.297 回答