用习惯了CodeWarrior的头文件/Cpp文件切换的快捷键,感觉还是不错的,但是VS.NET里面竟然没有,只好上网搜了下,嘿嘿,还不错,让我找到了,特地拷贝过来以供参考,很简单的一端宏
Sub SourceHeaderJumper()
'splitted file name
Dim SArr As System.Array
'new filename generated by macros
Dim NewFN As String
'file name base (without extention)
Dim FNBase As String
'file extention
Dim Ext As String
'simple counter
Dim i As Integer
If DTE.ActiveDocument() Is Nothing Then
Exit Sub
End If
SArr = DTE.ActiveDocument().Name().Split(".")
'has file extention?
If (SArr.GetLength(0) < 2) Then
Exit Sub
End If
'file name base
FNBase = DTE.ActiveDocument().Path()
For i = 0 To SArr.GetLength(0) - 2
FNBase = FNBase + SArr(i) + "."
Next
'file extention
Ext = System.Convert.ToString(SArr(SArr.GetLength(0) - 1)).ToLower()
'business logic
If (Ext = "cpp") Or (Ext = "c") Then
NewFN = FNBase + "h"
Else
If Ext = "h" Then
NewFN = FNBase + "cpp"
If Not System.IO.File.Exists(NewFN) Then
NewFN = FNBase + "c"
End If
End If
End If
'if you don't want add file to tabs uncomment next line
'DTE.ActiveDocument().Close()
'opens needed file
If System.IO.File.Exists(NewFN) Then
DTE.ItemOperations.OpenFile(NewFN)
End If
End Sub
'splitted file name
Dim SArr As System.Array
'new filename generated by macros
Dim NewFN As String
'file name base (without extention)
Dim FNBase As String
'file extention
Dim Ext As String
'simple counter
Dim i As Integer
If DTE.ActiveDocument() Is Nothing Then
Exit Sub
End If
SArr = DTE.ActiveDocument().Name().Split(".")
'has file extention?
If (SArr.GetLength(0) < 2) Then
Exit Sub
End If
'file name base
FNBase = DTE.ActiveDocument().Path()
For i = 0 To SArr.GetLength(0) - 2
FNBase = FNBase + SArr(i) + "."
Next
'file extention
Ext = System.Convert.ToString(SArr(SArr.GetLength(0) - 1)).ToLower()
'business logic
If (Ext = "cpp") Or (Ext = "c") Then
NewFN = FNBase + "h"
Else
If Ext = "h" Then
NewFN = FNBase + "cpp"
If Not System.IO.File.Exists(NewFN) Then
NewFN = FNBase + "c"
End If
End If
End If
'if you don't want add file to tabs uncomment next line
'DTE.ActiveDocument().Close()
'opens needed file
If System.IO.File.Exists(NewFN) Then
DTE.ItemOperations.OpenFile(NewFN)
End If
End Sub
然后给宏设置一个快捷键就OK了。
代码摘自:http://www.codeproject.com/KB/macros/SourceHeaderJumper.aspx