如何在Visual Studio中使用HTML标记包装选区?

dan*_*ays 103 visual-studio

这似乎是世界上最基本的问题,但如果我能找到答案,该死的.

是否有一个键盘快捷方式,无论是Visual Studio原生还是通过Code Rush或其他第三方插件,用HTML标签包装当前选择?我已经厌倦了键入开始标记,将错位的结束标记切换到剪贴板,移动光标,并将其粘贴到它所属的末尾.

更新: 这是TextMate处理带有标记的选择的方式.坦率地说,我惊讶于Visual Studio似乎没有类似的功能.为我可能想要使用的每个可想到的标签创建一个宏或片段似乎很荒谬.

D-J*_*nes 126

Visual Studio 2015附带了一个新的快捷键Shift + Alt + W,它用div包装当前选择.此快捷方式使文本"div"处于选中状态,使其可以无缝更改为任何所需的标记.这与自动结束标签更换相结合,可实现快速解决方案.

UPDATE

此快捷方式也可在Visual Studio 2017中使用,但您必须安装"ASP.NET和Web开发"工作负载.

Shift+Alt+W > p > Enter
Run Code Online (Sandbox Code Playgroud)

  • 谢谢@Zze,我用这个信息更新了我的答案. (2认同)
  • @RayLoveless ctrl-k ctrl-s 确实可以让我用片段包围。但是,您的选择必须来自代码片段列表(无 div),并且代码片段提供了要编辑的其他字段,这些字段会破坏上面详述的工作流程。有人可能会争论自定义片段,但我更喜欢开箱即用的解决方案! (2认同)

Bra*_*ord 65

我知道这已经过时了,你现在可能已经找到了答案,但我想为那些可能不知道它在VS 2010中可行的人添加:

  1. 选择您要包围的代码.
  2. ctrl-k ctrl-s(或右键单击并选择Surround with....
  3. 有多种HTML代码段可供选择.

如果找不到您要找的内容,您可以创建自己的SurroundsWith片段:

  1. 单击File,然后单击New,选择文件类型XML.
  2. File菜单上,单击Save.
  3. Save as框中,选择All Files (*.*).
  4. File name框中,输入.snippet文件扩展名为的文件名.
  5. 点击Save.

在XML文件中输入类似以下示例的内容:

<CodeSnippet Format="1.1.0" xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
  <Header>
    <Title>ul-div</Title>
    <Author>Microsoft Corporation</Author>
    <Shortcut>ul>li</Shortcut>
    <Description>Wrap in a ul and then an li</Description>
    <SnippetTypes>
      <SnippetType>Expansion</SnippetType>
      <SnippetType>SurroundsWith</SnippetType>
    </SnippetTypes>
  </Header>
  <Snippet>
    <Declarations>
      <Literal>
        <ID>selected</ID>
        <ToolTip>content</ToolTip>
        <Default>content</Default>
      </Literal>
    </Declarations>
    <Code Language="html"><![CDATA[<ul><li>$selected$</li></ul>$end$]]></Code>
  </Snippet>
</CodeSnippet>
Run Code Online (Sandbox Code Playgroud)
  1. 打开Tools> Code Snippets Manager.
  2. 单击Import并浏览到刚刚创建的代码段.
  3. 检查My HTML Snippets并单击Finish然后OK.

然后,您将拥有闪亮的新HTML片段,用于包装内容!

  • 这有效,但它不是一个捷径,更像是一个快捷方式 (3认同)
  • 当您说"单击XML文件,然后单击打开"时.你什么意思?点击什么xml文件? (2认同)

Jan*_*eed 49

Ctrl-X - >类型标签 - > Ctrl-V仍然是我在这个答案中提到的最快的解决方案:https://stackoverflow.com/a/5109994/486325.

  • 这应该得到更多的赞成. (2认同)

小智 41

如果安装了Web Essentials,则可以使用Shift + Alt + W围绕带有标记的选区.

  • 最值得一提的是,你只需要突出显示标签,甚至只需将光标放在标签内.无需明确选择文本. (6认同)

Cha*_*hao 8

我知道这是一个古老的线索,但我遇到了这个问题,我终于完成了自己的问题,因为这是谷歌的第一个结果之一,我认为人们可能会觉得这很有用.

实际上它很简单,我只是从现有的HTML片段中复制并移动文字.下面的代码片段将包含一个通用HTML标记,它会提示输入标记,并将其放在开始和结束标记中.

<CodeSnippet Format="1.1.0" xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
  <!-- Generic HTML Snippet -->
  <Header>
    <Title>Html</Title>
    <Author>Liam Slater</Author>
    <Shortcut>h</Shortcut>
    <Description>Markup snippet for HTML</Description>
    <SnippetTypes>
      <SnippetType>SurroundsWith</SnippetType>
    </SnippetTypes>
  </Header>
  <Snippet>
    <Declarations>
      <Literal>
        <ID>tag</ID>
        <ToolTip>tag</ToolTip>
        <Default></Default>
      </Literal>
      <Literal>
        <ID>selected</ID>
        <ToolTip>content</ToolTip>
        <Default>content</Default>
      </Literal>
    </Declarations>
    <Code Language="html"><![CDATA[<$tag$>$selected$</$tag$>$end$]]></Code>
  </Snippet>
</CodeSnippet>
Run Code Online (Sandbox Code Playgroud)


tva*_*son 7

遇到这种情况时,我经常先输入结束标记,然后输入开始标记.这可以防止IDE通过在我不想要的地方插入结束标记来"帮助".不过,我也对更好的解决方案感兴趣.

  • +1.真的很神奇这对于这么简单的功能来说有多复杂. (3认同)

Bur*_*kuş 6

对于使用Visual Studio 2017的用户:右键单击html/ cshtml区域,或选择要包装的某些元素,Wrap With <div>列表上有一个按钮。 在此处输入图片说明

  • 这是当前选择的答案的重复(使用“shift+alt+w”)。 (2认同)