2

私はVisualStudio2010でWinFormsとWeb開発を行っています。Web開発者は4つのスペースのタブサイズを使用し、WinForms開発者は2つのタブサイズを使用します。

私は2つの間で前後に切り替えるので、毎回オプションをナビゲートする必要なしに、それを行うための迅速な方法があるかどうか疑問に思いましたか?

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 =タブ、2 = 2つのスペースなど)

もちろん、必要に応じてカスタマイズできます。

于 2012-05-29T14:09:52.393 に答える
1

言語に基づいてトグルする個人用マクロを共有したいと思いました。Widorの回答で提案されているようなキーボードショートカットを設定できます。

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 に答える