Как обернуть выделение тегом HTML в Visual Studio? - PullRequest
97 голосов
/ 10 октября 2008

Это кажется самым основным вопросом в мире, но, черт побери, могу ли я найти ответ.

Есть ли комбинация клавиш, встроенная в Visual Studio или через Code Rush или другой сторонний плагин, чтобы обернуть текущий выбор тегом HTML? Я устал набирать открывающий тег, вырезать неуместный закрывающий тег в буфер обмена, перемещать курсор и вставлять его в конец, где он принадлежит.

Обновление: Так TextMate обрабатывает выделение тегом . Честно говоря, я поражен тем, что Visual Studio, похоже, не имеет подобной функции. Создание макроса или фрагмента для каждого мыслимого тега, который я мог бы использовать, кажется абсурдным.

Ответы [ 8 ]

114 голосов
/ 23 апреля 2016

Visual Studio 2015 поставляется с новым сочетанием клавиш Shift + Alt + W, которое оборачивает текущий выбор элементом div. Этот ярлык оставляет выделенный текст «div», что делает его легко заменяемым на любой желаемый тег. Это в сочетании с автоматической заменой концевой метки обеспечивает быстрое решение.

UPDATE

Этот ярлык также доступен в Visual Studio 2017, но у вас должна быть установлена ​​рабочая нагрузка «ASP.NET и веб-разработка».

Пример

Shift+Alt+W > p > Enter
64 голосов
/ 21 мая 2010

Я знаю, что это старо, и вы, вероятно, уже нашли ответ, но я хотел бы добавить ради тех, кто может не знать, что это возможно в VS 2010:

  1. Выберите код, который вы хотите окружить.
  2. Do 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>
  1. Открыть Tools> Code Snippets Manager.
  2. Нажмите Import и перейдите к фрагменту, который вы только что создали.
  3. Проверьте My HTML Snippets и нажмите Finish, а затем OK.

После этого у вас будет новый блестящий HTML-фрагмент для упаковки!

45 голосов
/ 19 августа 2014

Ctrl-X -> Тип тегов -> Ctrl-V по-прежнему самое быстрое решение, которое я видел, как упоминалось в этом ответе: https://stackoverflow.com/a/5109994/486325.

41 голосов
/ 12 сентября 2014

Если у вас установлено Web Essentials , вы можете использовать Shift + Alt + W , чтобы окружить выбор тегом.

8 голосов
/ 01 апреля 2011

Я знаю, что это древняя тема, но, столкнувшись с проблемой, я, наконец, нашел способ сделать свой собственный, и, поскольку это один из первых результатов в 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>
7 голосов
/ 10 октября 2008

Столкнувшись с такой ситуацией, я часто набираю сначала закрывающий тег, а затем открывающий тег. Это предотвращает «помощь» IDE, вставляя закрывающий тег там, где он мне не нужен. Я также заинтересован в лучшем решении.

5 голосов
/ 09 мая 2017

Для тех, кто использует Visual Studio 2017: щелкните правой кнопкой мыши область html / cshtml или выберите элементы для переноса, в списке есть кнопка Wrap With <div>. enter image description here

2 голосов
/ 10 октября 2008

Я ничего не знаю, но написать макрос, чтобы обернуть его в любой тег, который вы хотите, не должно быть сложно. У меня есть аналогичный, который обернет мой выбор в блоке региона.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...