有可能改变Ctrl + Tab和Shift + Ctrl + Tab在Visual Studio中的工作方式吗?我已经禁用了弹出式导航器窗口,因为我只想在选项卡控件中的项之间切换。我的问题是切换到下一个和上一个文档所做的不一致。
我所见过的其他使用tab控件打开文档的程序都使用Ctrl + tab从左向右移动,Shift + Ctrl + tab从右向左移动。Visual Studio通过跳转到所选的最后一个选项卡来打破这一点。你永远不知道你会在什么文件上结束,而且它不会以相同的方式出现两次。
这是违反直觉的。这是一种鼓励每个人一次只打开两个文档的微妙方式吗?
假设我打开了几个文件。我在一个工作,我需要看看右边的下一个标签是什么。在地球上的任何一个应用程序中,Ctrl + Tab都可以做到。但是在Visual Studio中,我不知道它会把我带到其他哪个选项卡。如果我只打开两个文档,这就很好。当你转到三个或更多的标签时,所有关于Visual Studio决定将你发送到哪个标签的赌注都结束了。
这样做的问题是,我不应该考虑工具,它应该消失在背景中,而我应该考虑任务。当前的标签行为不断把我从任务中拉出来,使我不得不关注这个工具。
经过几个小时的搜索,我找到了一个解决方案,如何使用CTRL+TAB从左到右切换打开的文档和SHIFT+ CTRL+TAB从右到左。
简而言之,你需要复制和粘贴这个宏:
Imports System
Imports EnvDTE
Imports EnvDTE80
Imports EnvDTE90
Imports System.Diagnostics
Public Module TabCtrl
Public Sub TabForward()
Dim i As Integer
Dim activateNext As Boolean = False
For i = 1 To DTE.Windows.Count
If DTE.Windows().Item(i).Kind = "Document" Then
If activateNext Then
DTE.Windows().Item(i).Activate()
GoTo done
End If
If DTE.Windows().Item(i) Is DTE.ActiveWindow Then
activateNext = True
End If
End If
Next
' Was the last window... go back to the first
If activateNext Then
For i = 1 To DTE.Windows.Count
If DTE.Windows().Item(i).Kind = "Document" Then
DTE.Windows().Item(i).Activate()
GoTo done
End If
Next
End If
done:
End Sub
Public Sub TabBackward()
Dim i As Integer
Dim activateNext As Boolean = False
For i = DTE.Windows.Count To 1 Step -1
If DTE.Windows().Item(i).Kind = "Document" Then
If activateNext Then
DTE.Windows().Item(i).Activate()
GoTo done
End If
If DTE.Windows().Item(i) Is DTE.ActiveWindow Then
activateNext = True
End If
End If
Next
' Was the first window... go back to the last
If activateNext Then
For i = DTE.Windows.Count To 1 Step -1
If DTE.Windows().Item(i).Kind = "Document" Then
DTE.Windows().Item(i).Activate()
GoTo done
End If
Next
End If
done:
End Sub
End Module
这个宏来自:www.mrspeaker.net/2006/10/12/tab-un-stupidifier/
如果你从未将宏添加到Visual Studio中,有一个非常有用的链接来做这件事。
它是可以改变的,至少在VS 2012(我认为它应该也适用于2010)。
1)工具>选项>环境>键盘
(是的工具,它的VS2012 !)现在有三个快捷方式来检查。
2)窗口。NextDocumentWindow -您可以通过在顶部的搜索窗格中输入快速到达那里。这就是你的敌人。如果你不喜欢,就去掉它。如果你想有自己的快捷键,可以把它改成其他的(不要忘记分配按钮),但一定要记住那个快捷键,不管它是什么。以后会派上用场的。
(我的意思是这是记住你的最后一个标签的快捷方式)
3)现在找Window。NextDocumentWindowNav -这与上面相同,但显示了打开选项卡的预览(你可以用这个弹出窗口快速导航到其他窗口)。但我从来没有发现这有用。执行步骤2中提到的所有步骤(不要忘记记住)。
4)窗口。NextTab -你的魔法药水。这将允许您按照向前的顺序循环使用制表符。可能是你想要CTRL+TAB?还是第二步,记住。
5)现在将光标放在按快捷键:文本框(不管当前选择什么,这次你不打算分配),并键入三个(或两个或一个)快捷键中的第一个。
您将看到快捷方式当前被:列出。确保该快捷方式没有重复的条目。在图片中,没有重复的条目。如果你有(一个罕见的),比如X,然后转到X,并删除快捷键。对其他快捷方式也重复此步骤。
6)现在重复1-5以前的快捷方式(最好添加Shift)。
7)奖励:选择VS2005映射方案(在同一框的顶部),所以现在你得到F2重命名成员而不是CTRL+R+R,和F7查看代码而不是CTRL+ALT+0。
我认为VS在默认情况下是正确的。我发现它非常有用,VS记得我上次用的是什么,使切换更容易,就像操作系统本身所做的一样(在ALT+选项卡上)。我的浏览器默认也是这样(Opera),尽管我知道Firefox的表现不同。