我在 Visual Studio 2010 中进行 WinForms 和 Web 开发。Web 开发人员使用四个空格的选项卡大小,而 WinForms 开发人员使用两个空格大小的选项卡。
由于我在两者之间来回切换,我想知道是否有一种快速的方法可以做到这一点,而不必每次都导航选项?
我在 Visual Studio 2010 中进行 WinForms 和 Web 开发。Web 开发人员使用四个空格的选项卡大小,而 WinForms 开发人员使用两个空格大小的选项卡。
由于我在两者之间来回切换,我想知道是否有一种快速的方法可以做到这一点,而不必每次都导航选项?
没有专门的快捷方式,但让我们做一个吧!
只需点击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+2
和Alt+T, Alt+4
(t=Tabs,2=两个空格等)
当然,您可以根据需要自定义它们。
我想我会分享我的个人宏,它会根据语言进行切换。您可以设置键盘快捷键,如 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问题中找到“在每个项目的前导选项卡或空格之间切换” 。