在Access VB6代碼編輯器中,Ctrl-Up和Ctrl-Down將跳轉到下一個/ prev函數聲明。什麼是VS2010導航到Next/Prev函數聲明熱鍵?
這是一個非常方便的導航工具,我似乎無法在VS2010中找到它。
我已經做了一些搜索谷歌和stackoverflow,似乎無法找到任何參考。
有誰知道這些熱鍵在VS2010中是否存在?
如果他們不這樣,他們怎麼會不能像VS2010那樣在環境感知的IDE中存在?
在Access VB6代碼編輯器中,Ctrl-Up和Ctrl-Down將跳轉到下一個/ prev函數聲明。什麼是VS2010導航到Next/Prev函數聲明熱鍵?
這是一個非常方便的導航工具,我似乎無法在VS2010中找到它。
我已經做了一些搜索谷歌和stackoverflow,似乎無法找到任何參考。
有誰知道這些熱鍵在VS2010中是否存在?
如果他們不這樣,他們怎麼會不能像VS2010那樣在環境感知的IDE中存在?
是熱鍵存在:http://www.dofactory.com/ShortCutKeys/ShortCutKeys.aspx
並移動到單獨的聲明: SHIFT + CTRL + 1/SHIFT + CTRL + 2
我不認爲他們在VS2010存在,我們在工作無論是VS6還是2010,真氣都沒有這些命令。
我這些日子都是自動化的強迫症,已經做了很多宏來幫助我導航。以下是一些VB宏代碼,它們將在C中完成你想要的功能(也可能是C++)。您可以在Visual Studio中創建一個宏,並將這些行添加到它。用於檢測函數聲明的正則表達式可能並不完美,但我已經使用它們一個星期了,他們已經爲我工作得很好。您可以將這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
這些似乎不適用於我。任何想法在VS2010熱鍵編輯器中調用實際的命令? 同樣根據該頁面上的描述來判斷,它看起來更像是基於光標下的變量/函數進行導航。 – Ashy 2012-03-30 02:15:41
這取決於您使用的是哪種語言。對於每種語言,microsoft提供了一個與單獨的熱鍵集合相對應的pdf文件。 – Rich 2012-03-30 02:21:39
http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=13189 – Rich 2012-03-30 02:22:04