Как обернуть выделение тегом HTML в Visual Studio?
Это похоже на самый главный вопрос в мире, но проклятый, если я смогу найти ответ.
Есть ли ярлык на клавиатуре, либо родной для Visual Studio, либо с помощью Code Rush или другого стороннего плагина, чтобы обернуть текущий выбор тегом HTML? Я устал печатать открывающий тег, вырезая неулокальный закрывающий тег в буфер обмена, перемещая курсор и вставляя его в конец, где он принадлежит.
Обновление: Так TextMate обрабатывает окружение выделения тегом. Честно говоря, я ошеломлен тем, что Visual Studio, похоже, не имеет подобной функции. Создание макроса или фрагмента для каждого мыслимого тега, который я могу использовать, кажется абсурдным.
Ответы
Ответ 1
Visual Studio 2015 поставляется с новым ярлыком Shift + Alt + W, который завершает текущий выбор с помощью div. Этот ярлык оставляет выбранный текст "div", что делает его легко изменяемым для любого желаемого тега. Это в сочетании с автоматической заменой концевых тегов делает быстрое решение.
ОБНОВИТЬ
Этот ярлык доступен также в Visual Studio 2017, но у вас должна быть установлена рабочая нагрузка "ASP.NET и веб-разработка".
пример
Shift+Alt+W > p > Enter
Ответ 2
Я знаю, что это уже давно, и вы, вероятно, нашли ответ, но я просто хотел бы добавить ради тех, кто может не знать, что это возможно в VS 2010:
- Выберите код, который вы хотите окружить.
- Сделайте
ctrl-k
ctrl-s
(или щелкните правой кнопкой мыши и выберите Surround with...
.
- Существует множество фрагментов HTML, которые можно выбрать.
Вы можете создать свои собственные SurroundsWith фрагменты, если вы не найдете то, что ищете:
- Нажмите
File
, а затем нажмите New
и выберите тип файла XML
.
- В меню
File
нажмите Save
.
- В поле
Save as
выберите All Files (*.*)
.
- В поле
File name
введите имя файла с расширением имени файла .snippet
.
- Нажмите
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>
- Откройте
Tools
> Code Snippets Manager
.
- Нажмите
Import
и перейдите к только что созданному фрагменту.
- Отметьте
My HTML Snippets
и нажмите Finish
, а затем OK
.
После этого вы получите свой блестящий новый HTML-фрагмент, который можно будет обернуть!
Ответ 3
Если у вас установлена Веб-Essentials, вы можете использовать Shift + Alt + W, чтобы окружить выбор с тегом.
Ответ 4
Ctrl-X → Тип тегов → Ctrl-V по-прежнему является самым быстрым решением, которое я видел, как упоминалось в этом ответе: fooobar.com/questions/70997/....
Ответ 5
Я знаю, что это древняя тема, но я столкнулся с проблемой, которую я, наконец, собрал, чтобы сделать свой собственный, и поскольку это один из первых результатов в Google, я решил, что люди могут найти это полезным.
На самом деле это было довольно просто, я просто скопировал из существующего фрагмента 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>
Ответ 6
Когда вы сталкиваетесь с этой ситуацией, я часто печатаю закрывающий тег, а затем открывающий тег. Это предотвращает "помощь" IDE, вставляя закрывающий тег, где я его не хочу. Я также заинтересован в лучшем решении.
Ответ 7
Для тех, кто использует Visual Studio 2017: щелкните правой кнопкой мыши по области html
/cshtml
или выберите некоторые элементы для обертывания, есть кнопка Wrap With <div>
в списке.
![введите описание изображения здесь]()
Ответ 8
Ничего я не знаю, но писать макрос, чтобы обернуть его в любой тег, который вы хотите, не должно быть трудным. У меня есть аналогичный, который будет охватывать мой выбор в блоке области.