Visual Studio'da seçimi bir HTML etiketiyle nasıl sarmalarım?


110

Bu dünyadaki en temel soru gibi görünüyor, ama bir cevap bulabilirsem lanet olsun.

Geçerli seçimi bir HTML etiketiyle sarmak için Visual Studio'ya yerel veya Code Rush veya başka bir üçüncü taraf eklentisi aracılığıyla bir klavye kısayolu var mı? Açılış etiketini yazmaktan, yanlış yerleştirilmiş kapanış etiketini panoya kesmekten, imleci hareket ettirmekten ve ait olduğu yere sonuna yapıştırmaktan yoruldum.

Güncelleme: Bu, TextMate'in bir seçimi etiketle çevrelemesini bu şekilde işler . Açıkçası, Visual Studio'nun benzer bir özelliğe sahip olmaması beni şaşırttı. Kullanmak isteyebileceğim akla gelebilecek her etiket için bir makro veya pasaj oluşturmak saçma görünüyor.


Makroyu, sizden seçimi sarmak için etiketi isteyecek şekilde yazabilirsiniz. İsterseniz makroyu çıkarabilir miyim?
Ian Jacobs

Bunu yapmanın bir yolunu bulan var mı?
SamWM

Yanıtlar:


132

Visual Studio 2015, geçerli seçimi bir div ile saran yeni bir kısayol olan Shift + Alt + W ile birlikte gelir. Bu kısayol, "div" metnini seçili bırakarak onu istenen herhangi bir etikete sorunsuz bir şekilde değiştirilebilir hale getirir. Bu, otomatik uç etiketi değişimi ile birleştiğinde hızlı bir çözüm sağlar.

GÜNCELLEME

Bu kısayol, Visual Studio 2017'de de mevcuttur, ancak "ASP.NET ve Web Geliştirme" iş yükünün yüklü olması gerekir.

Misal

Shift+Alt+W > p > Enter

Yine de VS2017'de uygulanabilir.
Zze

VS 2017'de benim için çalışmıyor. Sanırım bu yalnızca web temelleriniz varsa işe yarar.
RayLoveless

1
@RayLoveless ctrl-k ctrl-s bir parçacığı çevrelemem için çalışıyor. Bununla birlikte, seçiminiz ön bilgi listesinden (div yok) gelmelidir ve parçacıklar, yukarıda ayrıntıları verilen iş akışını bozan düzenlenecek ek alanlar sağlamalıdır. Biri özel parçacıkları savunabilir, ancak kutudan çıkmış çözümleri tercih ederim!
D-Jones

1
@WildJoe ne tür bir dosya açtınız? Şans eseri bir xml veya xaml dosyasıysa, bunun işe yarayacağından emin değilim, çünkü bunun yalnızca HTML editörleri için çalıştığına inanıyorum.
D-Jones

1
@WildJoe buraya bakın stackoverflow.com/a/34799783/1647159 ve burada stackoverflow.com/a/22274313/1647159 Uyarı, kötü bir deneyimle karşılaşabilirsiniz
D-Jones

65

Bunun eski olduğunu biliyorum ve muhtemelen cevabı şimdiye kadar bulmuşsunuzdur, ancak bunun VS 2010'da mümkün olduğunu bilmeyenler için şunu eklemek isterim:

  1. Çevresini sarmak istediğiniz kodu seçin.
  2. Yapın ctrl-k ctrl-s(veya sağ tıklayın ve seçin Surround with....
  3. Aralarından seçim yapabileceğiniz çeşitli HTML parçacıkları vardır.

Aradığınızı bulamazsanız, kendi SurroundsWith parçacıklarıyla oluşturabilirsiniz:

  1. Simgesine tıklayın Fileve ardından tıklayın Newve bir dosya türü seçin XML.
  2. Açık Filemenü, tıklayın Save.
  3. Gelen Save askutusunda seçin All Files (*.*).
  4. Gelen File namekutusu ile bir dosya adı girin .snippetdosya adı uzantısı.
  5. Tıklayın Save.

XML dosyasına aşağıdaki örneğe benzer bir şey girin:

<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. ImportYeni oluşturduğunuz parçacığa tıklayın ve göz atın.
  3. Kontrol edin My HTML Snippetsve tıklayın Finishve ardından OK.

Daha sonra, parlak yeni HTML pasajınızın bir şeyler sarmak için hazır olacaksınız!


2
"XML Dosyasını ve ardından Aç'ı tıklayın." Dediğinizde. Ne demek istiyorsun? hangi xml dosyasına tıklayın?
Kullanıcı

Bu harika bir ipucu! Tersini biliyor musun? Çevreleyen etiketleri nasıl kaldırabilirsiniz?
Trio Cheung

@User ... Şimdi düzeltiyorum. "XML Dosyasını Tıkla ..." dememeli, sadece "Dosyayı Tıkla ..." yazmalıdır.
Watki02

3
bu işe yarıyor, ancak tam olarak bir kısayol değil, daha uzun bir yol
Pixelomo

@AlanSutherland İlk kez kurduğunuzda, evet. Bir kez kurulduktan sonra, basit bir ctrl-k ctrl-s ve şablon seçme meselesidir.
Bradley Mountford



8

Bunun eski bir konu olduğunu biliyorum, ancak sorunla karşılaştıktan sonra nihayet kendimi geliştirmeye başladım ve bu Google'daki ilk sonuçlardan biri olduğundan, insanların bunu yararlı bulabileceğini düşündüm.

Aslında oldukça kolaydı, sadece mevcut bir HTML kod parçacığından kopyaladım ve değişmez değerler arasında hareket ettim. Aşağıdaki kod parçası genel bir HTML etiketi ile çevrelenecek, etiketi isteyecek ve hem açılış hem de kapanış etiketlerinin içine yerleştirecektir.

<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

Bu durumla karşılaştığımda, genellikle önce kapanış etiketini, ardından açılış etiketini yazıyorum. Bu, IDE'nin kapanış etiketini istemediğim yere ekleyerek "yardım etmesini" önler. Yine de daha iyi bir çözümle ilgileniyorum.


3
+1. Bu kadar basit bir özellik için bunun ne kadar karmaşık olduğu gerçekten şaşırtıcı.
John Hargrove

Neredeyse 8 yıl sonra hala aynısını kullanıyorum
Jack

7

Visual Studio 2017 kullananlar için: Bir html/ cshtmlalana sağ tıklayın veya sarılacak bazı öğeleri seçin Wrap With <div>, listede bir düğme var. görüntü açıklamasını buraya girin


1
Bu, şu anda seçilen cevabın bir kopyasıdır (kullanılarak shift+alt+w).
Zze

O zaman ne yapmalıyım? Bu arada, Visual Studio 2015 yazarken cevabımda gösterdiğim gibi bir UI öğesi yoktu, sadece Visual Studio 2017'de fare tıklamasıyla aynı şeyi yapacak bir UI öğesi olduğunu göstermek istedim.
Burak Karakuş

2

Farkında olduğum bir şey yok, ancak istediğiniz etikete sarmak için bir makro yazmak zor olmamalı. Seçimimi bir bölge bloğunda saracak benzer bir tane var.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.