8

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

<strong>My Selected Text</strong>

我什至愿意创建一个宏,只是不确定从哪里开始!

4

4 回答 4

15

这样做的代码相当简单:

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

现在,如果您对宏不太了解,这里是如何添加它:

  • 首先你需要打开宏IDE,点击Tools->Macros->Macros IDE...
  • 接下来,我们将为您的自定义宏添加一个模块。在项目资源管理器中右键单击“MyMacros”,单击“添加”->“添加模块...”,输入适当的名称,然后单击“添加”。
  • 现在将函数粘贴到模块中,为您想要的任何其他标签制作副本
  • 保存并关闭宏 IDE

要将宏连接到按钮:

  • 单击工具->自定义...
  • 单击新建...,键入适当的名称,单击确定。应该可以看到一个空的工具栏(您可能需要移动窗口才能看到它)
  • 单击命令选项卡,然后在类别中选择“宏”
  • 找到之前创建的宏并将它们拖到工具栏上
  • 右键单击按钮以更改设置(例如显示图标而不是文本)
于 2009-02-28T19:08:21.510 回答
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
于 2011-12-07T19:49:45.613 回答
1
Dim HTMLprops As Properties = DTE.Properties("Texteditor", "HTML Specific")

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

aProp.Value = False
于 2010-02-08T13:21:15.943 回答
1

原始答案

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

例子

Shift+Alt+W > strong > Enter
于 2016-04-29T19:05:34.423 回答