用于在Visual Studio中使用标记包装所选文本的宏

时间:2009-02-28 14:18:50

标签: visual-studio ide macros

我意识到我可能有点懒,但有人知道Visual Studio宏,我可以在Visual Studio IDE中选择一些文本,单击一个按钮,然后用标签包装所选文本?它会产生类似的东西:

<strong>My Selected Text</strong>

我甚至会创建一个宏,只是不知道从哪里开始!

4 个答案:

答案 0 :(得分:13)

这样做的代码很简单:

Sub SurroundWithStrongTag()
    DTE.ActiveDocument.Selection.Text = "<strong>" + DTE.ActiveDocument.Selection.Text + "</strong>"
End Sub

现在,如果您对宏的了解不多,请点击此处:

  • 首先,您需要打开宏IDE,单击工具 - &gt;宏 - &gt;宏IDE ...
  • 接下来,我们将为您的自定义宏添加一个模块。右键单击Project Explorer中的“MyMacros”,单击Add-&gt; Add Module ...,键入相应的名称,然后单击“Add”。
  • 现在将该功能粘贴到模块中,为您想要的任何其他标签制作副本
  • 保存并关闭宏IDE

将宏挂钩到按钮:

  • 点击工具 - &gt;自定义...
  • 单击“新建...”,键入相应的名称,然后单击“确定”。应该可以看到一个空工具栏(您可能需要移动窗口才能看到它)
  • 单击“命令”选项卡,然后在“类别
  • ”中选择“宏”
  • 找到之前创建的宏并将它们拖到工具栏
  • 右键单击按钮以更改设置(例如显示图标而不是文本)

答案 1 :(得分:2)

我知道这是一个古老的话题,但也许有人觉得这很有用。

我有以下设置:

Sub WrapInH1()
    WrapInTag("h1")
End Sub

Sub WrapInP()
    WrapInTag("p")
End Sub

Sub WrapInStrong()
    WrapInTag("strong")
End Sub

Sub WrapInTag()
    WrapInTag("")
End Sub

Sub WrapInTag(ByVal tagText As String)
    EnableAutoComplete(False)

    If tagText.Length = 0 Then
        tagText = InputBox("Enter Tag")
    End If

    Dim text As String
    text = DTE.ActiveDocument.Selection.Text
    text = Regex.Replace(text, vbCrLf & "$", "") 'Remove the vbCrLf at the end of the line, for when you select the line by clicking in the margin, otherwise your closing tag ends up on it's own line at the end...

    DTE.ActiveDocument.Selection.Text = "<" & tagText & ">" & text & "</" & tagText & ">" & vbCrLf
    EnableAutoComplete(True)
End Sub

Private Sub EnableAutoComplete(ByVal enabled As Boolean)
    Dim HTMLprops As Properties
    Dim aProp As EnvDTE.Property
    HTMLprops = DTE.Properties("Texteditor", "HTML Specific")
    aProp = HTMLprops.Item("AutoInsertCloseTag")
    aProp.Value = enabled
End Sub

答案 2 :(得分:1)

Dim HTMLprops As Properties = DTE.Properties("Texteditor", "HTML Specific")

Dim aProp As EnvDTE.Property = HTMLprops.Item("AutoInsertCloseTag")

aProp.Value = False

答案 3 :(得分:1)

Original answer

如果您想要一个开箱即用的解决方案,Visual Studio 2015附带一个新的快捷方式,Shift + Alt + W用div包装当前选择。此快捷方式使文本“div”处于选中状态,使其可以无缝更改为任何所需的标记。这与自动结束标签更换相结合,可以快速解决问题。

实施例

Shift+Alt+W > strong > Enter