2011-05-05 57 views
30

有沒有辦法在visual studio 2010中創建'surround with'片段?我知道如何創建替代類型的片段。帶有片段的簡單環繞可以用asp:超鏈接圍繞一段文本。類似於默認的「環繞」片段可以用asp:面板包圍代碼塊的方式。如何在Visual Studio 2010中創建'surround with'類型的片段?

+0

略有不同的問題,但同樣的答案:http://stackoverflow.com/a/2879206/93394 – kmote 2014-07-17 19:57:51

回答

23

查看關於creating snippets的MSDN文章。它應該給你一個好的開始。當你創建你的代碼片段時,一定要給它一個代碼段類型SurroundsWith以使代碼片段環繞所選代碼。

對於最新的Visual Studio(當前爲2017),有Code Snippets on Microsoft Docs以及Walkthrough: Creating a Code Snippet

+0

我不知道你們是怎麼做的,但片段從來沒有爲我工作!即使我替換內置代碼並將它們放在適當的文件夾中也不行! (VsDir \ Code Snippets \ Visual Basic)或(VsDir \ Code Snippets \ Visual C#) – 2011-05-05 17:30:35

+2

@Alex:我總是使用Resharper,它具有非常優越的代碼片段支持,其中幾乎支持其他所有內容。 – 2011-05-05 17:32:36

+0

在這裏尋找一個例子:http://www.blackwasp.co.uk/VSSnippetTypes.aspx – Sara 2011-06-23 12:52:36

29

事實證明,有一些預先定義的ID沒有很好的記錄。特別對於SurroundWith類型片段,有一個ID $選定$。因此,例如,對於#如果段的代碼是:

... 
<Code Language="csharp"> 
    <![CDATA[#if $expression$ $selected$ $end$ #endif]]> 
</Code> 
... 

$ END $ ID指示在何處將光標置於環繞聲功能完成時。 這就是它的全部。當然,要記住,SurroundsWith作爲SnippetType

更多的例子,儘量考慮看看在C預定義的片段:\ Program Files文件\微軟的Visual Studio 10.0 \\片段\ 1033 \。

+0

VS2012不會在VS2010的相同位置存儲代碼片段。如果您打開代碼片段管理器並單擊一組片段,它會向您顯示它們存儲的路徑。這不是幾英里,但它仍然難倒我,直到我找到路徑 – 2012-09-17 16:08:41

+0

C:\ Program Files(x86)\ Microsoft Visual Studio 10.0 \ VC#\ Snippets \ 1033 \ Visual C# – SAm 2014-09-24 09:34:50

+1

此答案包含Microsoft應該寫的文檔。感謝分享@DiamondBack。 – Marcel 2017-01-13 08:08:41

0

一個例子,爲VS2017一些建議(基於以前的答案):

的例子是一個XML片斷,但我猜,這將適用於更多或更少的任何語言。

  1. 下面的代碼粘貼到一個文件,並保存爲example.snippet從任何地方VS
  2. 做工具 - >代碼段管理,XML的語言選擇,然後我的XML片段
  3. 單擊導入並選擇example.snippet。
  4. 點擊完成並確定
  5. 在這一點上,我重新啓動VS,但可能不需要這樣嚴厲的措施。
  6. 在XML文件中,選擇要用para標籤圍繞的文本。
  7. Ctrl + K,Ctrl + S,選擇My XML Snippets,然後選擇「SurroundWith Snippet示例」。

一個<對>標籤將你的文字和後< /對>之前。

如果包含尾隨的新行,那麼在文本之後會出現一個額外的空白行,並且結束標記之後的文本與結束標記出現在相同的行上。如果你仔細考慮它是有道理的。

如果你只選擇一行文字的一部分,那麼你可能會或可能不會得到你所期望的。該片段可能需要調整。

<?xml version="1.0" encoding="utf-8"?> 
<CodeSnippets 
    xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet"> 
    <CodeSnippet Format="1.0.0"> 
    <Header> 
     <Title>Example of a SurroundsWith snippet</Title> 
     <Shortcut>shortcutsdontwork</Shortcut> 
     <Description> 
     complete example of SurroundsWith 
     will put para tag on the line above selected text 
     and /para end tag on the line below selected text 
     will positon the cursor immediately after the 
     closing angle bracket of the end tag 
     </Description> 
     <Author>mikedamay - TheDisappointedProgrammer</Author> 
     <SnippetTypes> 
     <SnippetType>SurroundsWith</SnippetType> 
     </SnippetTypes> 
    </Header> 
    <Snippet> 
     <Code Language="XML"> 
     <![CDATA[<para> 
     $selected$ 
     </para>$end$]]> 
     </Code> 
    </Snippet> 
    </CodeSnippet> 
</CodeSnippets> 

我會限制我對代碼片段在VS2017的行爲社論評論說,執行是不尋常的現代微軟工具開發團隊。特別要小心有關快捷方式的功能。據我所知,他們沒有任何用處。

相關問題