112 votes

Comment envelopper une sélection avec une balise HTML dans Visual Studio ?

Cela semble être la question la plus élémentaire du monde, mais je ne peux pas trouver de réponse.

Existe-t-il un raccourci clavier, soit natif à Visual Studio, soit par le biais de Code Rush ou d'un autre plug-in tiers, pour entourer la sélection actuelle d'une balise HTML ? Je suis fatigué de taper la balise d'ouverture, de couper la balise de fermeture mal placée dans le presse-papiers, de déplacer le curseur et de la coller à la fin, là où elle doit être.

Mise à jour : Voici comment TextMate gère le fait d'entourer une sélection avec une balise . Franchement, je suis stupéfait que Visual Studio ne semble pas disposer d'une fonction similaire. La création d'une macro ou d'un extrait de code pour chaque balise que je pourrais vouloir utiliser semble absurde.

0 votes

Vous pouvez écrire la macro de manière à ce qu'elle vous demande la balise avec laquelle envelopper la sélection. Je peux sortir ma macro si vous le souhaitez ?

0 votes

Quelqu'un a déjà trouvé un moyen de le faire ?

141voto

D-Jones Points 71

Visual Studio 2015 est livré avec un nouveau raccourci, Shift+Alt+W, qui enveloppe la sélection actuelle avec un div. Ce raccourci laisse le texte "div" sélectionné, ce qui permet de le changer de manière transparente en n'importe quelle balise souhaitée. Ceci, couplé avec le remplacement automatique de la balise de fin, constitue une solution rapide.

UPDATE

Ce raccourci est également disponible dans Visual Studio 2017, mais vous devez avoir installé la charge de travail "ASP.NET et développement Web".

Exemple

Shift+Alt+W > p > Enter

0 votes

Toujours applicable dans VS2017.

0 votes

Ne fonctionne pas pour moi dans VS 2017. Je pense que cela ne fonctionne que si vous avez web essentials.

0 votes

@RayLoveless vient d'essayer sur une nouvelle installation de vs community, desktop workload, et la commande n'est pas disponible pour les raccourcis. Cependant, en modifiant l'installation et en sélectionnant la charge de travail "ASP.NET and Web Development", la commande et les raccourcis par défaut sont disponibles. Ce n'est pas la même chose que web essentials, et cela ne nécessite pas d'extension tierce. Ceci étant dit, je ne suis pas sûr que vous puissiez voir un éditeur html sans installer cette charge de travail pour commencer.

65voto

Bradley Mountford Points 4887

Je sais que cette question est ancienne et que vous avez probablement déjà trouvé la réponse, mais je voudrais juste ajouter, pour ceux qui ne le savent pas, que cela est possible dans VS 2010 :

  1. Sélectionnez le code que vous souhaitez entourer.
  2. Faites ctrl-k ctrl-s (ou cliquez avec le bouton droit de la souris et sélectionnez Surround with... .
  3. Il existe une grande variété d'extraits HTML parmi lesquels vous pouvez choisir.

Vous pouvez créer vos propres extraits de SurroundsWith si vous ne trouvez pas ce que vous cherchez :

  1. Cliquez sur File puis cliquez sur New et choisissez un type de fichier de XML .
  2. Sur le File cliquez sur Save .
  3. Dans le Save as sélectionnez All Files (*.*) .
  4. Dans le File name saisissez un nom de fichier avec l'option .snippet l'extension du nom de fichier.
  5. Cliquez sur Save .

Entrez quelque chose comme l'exemple suivant dans le fichier 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. Ouvrir Tools > Code Snippets Manager .
  2. Cliquez sur Import et naviguez jusqu'au snippet que vous venez de créer.
  3. Vérifiez My HTML Snippets et cliquez sur Finish et ensuite OK .

Vous disposerez alors de votre nouveau snippet HTML pour y insérer des éléments !

2 votes

Quand vous dites "Cliquez sur le fichier XML et ensuite sur Ouvrir". Que voulez-vous dire ? Cliquer sur quel fichier xml ?

0 votes

C'est un bon tuyau ! Connaissez-vous l'inverse ? Comment enlever les balises environnantes ?

0 votes

@User ... Je suis en train de le corriger. Il ne devrait pas dire "Cliquez sur le fichier XML...", juste "Cliquez sur le fichier...".

50voto

Janspeed Points 1463

Ctrl-X -> Taper les balises -> Ctrl-V est toujours la solution la plus rapide que j'ai vue, comme mentionné dans cette réponse : https://stackoverflow.com/a/5109994/486325 .

42voto

Justin Points 186

Si vous avez L'essentiel du Web installé, vous pouvez utiliser Shift+Alt+W pour entourer une sélection d'une balise.

6 votes

Ce qu'il faut retenir, c'est qu'il suffit de mettre la balise en surbrillance, ou même d'avoir le curseur à l'intérieur de la balise. Il n'est pas nécessaire de sélectionner le texte explicitement.

10voto

Burak Karakuş Points 940

Pour ceux qui utilisent Visual Studio 2017 : Faites un clic droit sur un html / cshtml ou de sélectionner des éléments à envelopper, il existe une fonction Wrap With <div> sur la liste. enter image description here

1 votes

Il s'agit d'une duplication de la réponse actuellement choisie (en utilisant la fonction shift+alt+w ).

0 votes

Que dois-je faire alors ? Au fait, Visual Studio 2015 n'avait pas un tel élément d'interface utilisateur comme je l'ai montré dans ma réponse lors de la rédaction, je voulais juste montrer qu'il existe un élément d'interface utilisateur pour faire la même chose via les clics de souris dans Visual Studio 2017.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X