2

我在 Visual Studio 2010 中进行 WinForms 和 Web 开发。Web 开发人员使用四个空格的选项卡大小,而 WinForms 开发人员使用两个空格大小的选项卡。

由于我在两者之间来回切换,我想知道是否有一种快速的方法可以做到这一点,而不必每次都导航选项?

4

2 回答 2

2

没有专门的快捷方式,但让我们做一个吧!

只需点击Alt+F11以调出宏编辑器并将以下代码添加到新模块:

Imports System
Imports EnvDTE
Imports EnvDTE80
Imports EnvDTE90
Imports EnvDTE90a
Imports EnvDTE100
Imports System.Diagnostics

Public Module Tabspaces
    Sub TwoTabSpaces()
        Dim tabs As Properties

        tabs = DTE.Properties("TextEditor", "AllLanguages")
        tabs.Item("TabSize").Value = 2
        tabs.Item("IndentSize").Value = 2

    End Sub

    Sub FourTabSpaces()
        Dim tabs As Properties

        tabs = DTE.Properties("TextEditor", "AllLanguages")
        tabs.Item("TabSize").Value = 4
        tabs.Item("IndentSize").Value = 4

    End Sub

End Module

然后保存您的宏并从工具菜单中调出选项窗口并选择环境->键盘

分配宏

在这里,您可以搜索包含“”的命令,您应该会看到您的TwoTabSpaces()FourTabSpaces()列出的。
您现在可以为这些宏分配键盘快捷键。在上图中,我分别选择了Alt+T, Alt+2Alt+T, Alt+4(t=Tabs,2=两个空格等)

当然,您可以根据需要自定义它们。

于 2012-05-29T14:09:52.393 回答
1

我想我会分享我的个人宏,它会根据语言进行切换。您可以设置键盘快捷键,如 Widor's answer中建议的那样。

Public Sub ToggleSpaces()
  If DTE.ActiveDocument.Language = "Basic" Then
    Dim textEditorSettings = DTE.Properties("TextEditor", "Basic")

    Dim currentSize = CShort(textEditorSettings.Item("TabSize").Value)

    'If at 2, use 4... else switch to 2
    Dim newSpaces As Short = If(currentSize = 2, 4, 2)    

    textEditorSettings.Item("TabSize").Value = newSpaces
    textEditorSettings.Item("IndentSize").Value = newSpaces
  End If
End Sub

我的宏改编自 James Alexander 的宏,用于在以下 StackOverflow问题中找到“在每个项目的前导选项卡或空格之间切换” 。

于 2013-06-18T14:36:59.983 回答