How do I wrap a selection with an HTML tag in Visual Studio?
Solution 1:
Visual Studio 2015 comes with a new shortcut, Shift+Alt+W, that wraps the current selection with a div. This shortcut leaves the text "div" selected, making it seamlessly changeable to any desired tag. This coupled with the automatic end tag replacement makes for a quick solution.
UPDATE
This shortcut is available in Visual Studio 2017 as well, but you must have the "ASP.NET and Web Development" workload installed.
Example
Shift+Alt+W > p > Enter
Solution 2:
I know this is old and you have probably found the answer by now but I would just like to add for the sake of those who might not know it that this is possible in VS 2010:
- Select the code you would like to surround.
- Do
ctrl-k
ctrl-s
(or right-click and selectSurround with...
. - There are a variety of HTML snippets to choose from.
You can create your own SurroundsWith snippets if you do not find what you are looking for:
- Click
File
and then clickNew
, and choose a file type ofXML
. - On the
File
menu, clickSave
. - In the
Save as
box, selectAll Files (*.*)
. - In the
File name
box, enter a file name with the.snippet
file name extension. - Click
Save
.
Enter something like the following sample in the XML file:
<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>
- Open
Tools
>Code Snippets Manager
. - Click
Import
and browse to the snippet you just created. - Check
My HTML Snippets
and clickFinish
and thenOK
.
You will then have your shiny new HTML snippet available for wrapping stuff in!
Solution 3:
Ctrl-X -> Type tags -> Ctrl-V is still the fastest solution I've seen as mentioned in this answer: https://stackoverflow.com/a/5109994/486325.