2012-03-30 1 views
4

Access VB6コードエディタでCtrl-UpとCtrl-Downは、次の/ prev関数宣言にジャンプします。VS2010とは何かNext/Prev関数宣言ホットキーに移動しますか?

これは非常に便利なナビゲーションツールです。私はVS2010で見つけることができません。

私はGoogleとstackoverflowでいくつかの検索を行っており、それに対する参照を見つけることができないようです。

これらのホットキーがVS2010にまったく存在するかどうかは知りませんか?

もしそうでなければ、VS2010のようなコンテキスト認識IDEではどうしてそれらが存在しないのでしょうか?

答えて

1

はいホットキーが存在する:http://www.dofactory.com/ShortCutKeys/ShortCutKeys.aspx

、別の宣言に移動するには: シフト+ CTRL + 1 /シフト+ CTRL + 2

+0

これらは私にとってはうまくいかないようです。どのようなアイデアVS2010のホットキーエディタで実際のコマンドが呼び出されるか? また、そのページの説明から判断すると、カーソルの下の変数/機能に基づいてナビゲートする方が多くなるようです。 – Ashy

+0

使用している言語によって異なります。各言語ごとに、マイクロソフトは別々のホットキーコレクションに対応するpdfファイルを提供しています。 – Rich

+0

http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=13189 – Rich

0

私は、彼らはVS2010には存在しないと思う、私たちはで働きますVS6と2010の両方で、これらのコマンドを持たないように怒っています。

0

私は現在、自動化されたOCDであり、私がナビゲートするためのマクロをたくさん作っています。以下は、あなたがCで(おそらくC++でも)何をするかを行うVBマクロコードです。 Visual Studioでマクロを作成し、これらの行を追加することができます。関数宣言を検出するための正規表現は完璧ではない可能性が高いですが、今は1週間使っています。これらの2つのマクロは、必要なキーバインディング(Ctrl + UpまたはCtrl + Down)にマップできます。誰かが正規表現を改善したら、私は更新版を見たいと思う。

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

Public Module NavigationMacros 
    Private Function IsFunctionDeclaration(ByRef LineText As String) As Boolean 
     If Regex.IsMatch(LineText, "^[^\s\d\W\(\)]+[^\(\)]+\s+[^\s\d\W\(\)]+\s*\([^\(\)]*\)\s*$") Then 
      IsFunctionDeclaration = True 
     Else 
      IsFunctionDeclaration = False 
     End If 
    End Function 

    Private Function GetLineText(ByRef EditPoint As EnvDTE.EditPoint) As String 
     EditPoint.StartOfLine() 
     GetLineText = EditPoint.GetText(EditPoint.LineLength) 
    End Function 

    Sub GoToPreviousFunctionDeclaration() 
     Dim Selection As EnvDTE.TextSelection 
     Dim EditPoint As EnvDTE.EditPoint 
     Dim LineText As String 

     Selection = DTE.ActiveDocument.Selection 
     EditPoint = Selection.TopPoint.CreateEditPoint 

     EditPoint.LineUp() 

     While IsFunctionDeclaration(GetLineText(EditPoint)) = False And Not EditPoint.AtStartOfDocument 
      EditPoint.LineUp() 
     End While 

     If Not EditPoint.AtEndOfDocument Then 
      Selection.MoveToLineAndOffset(EditPoint.Line, 1) 
     End If 
    End Sub 

    Sub GoToNextFunctionDeclaration() 
     Dim Selection As EnvDTE.TextSelection 
     Dim EditPoint As EnvDTE.EditPoint 
     Dim LineText As String 

     Selection = DTE.ActiveDocument.Selection 
     EditPoint = Selection.TopPoint.CreateEditPoint 

     EditPoint.LineDown() 

     While IsFunctionDeclaration(GetLineText(EditPoint)) = False And Not EditPoint.AtEndOfDocument 
      EditPoint.LineDown() 
     End While 

     If Not EditPoint.AtEndOfDocument Then 
      Selection.MoveToLineAndOffset(EditPoint.Line, 1) 
     End If 
    End Sub 
End Module 
関連する問題