是否可以更改Ctrl Tab和Shift Ctrl Tab在Visual Studio中的工作方式?我已禁用弹出窗口导航器窗口,因为我只想在选项卡控件中切换项目 . 我的问题是切换到下一个和上一个文档的不一致 .
使用Tab键控件打开文档的其他每个程序都使用Ctrl Tab从左向右移动,Shift Ctrl Tab从右向左移动 . Visual Studio通过跳转到选定的最后一个选项卡来中断此操作 . 你永远不会知道你最终会得到什么文件,它永远不会是两次相同的方式 .
这非常违反直觉 . 这是一种微妙的方式来鼓励每个人一次只打开两个文件吗?
假设我打开了一些文件 . 我在一个工作,我需要看到右边下一个选项卡中的内容 . 在地球表面上的每一个单独的应用程序中,Ctrl Tab都会让我在那里 . 但是在Visual Studio中,我不知道它将带我到哪个其他选项卡 . 如果我只打开两个文档,这很有效 . 一旦你去了三个或更多,所有的赌注都是关于Visual Studio决定发送给你的标签 .
这个问题是我不应该考虑这个工具,它应该淡入背景,我应该考虑这个任务 . 当前的选项卡行为使我不能完成任务,并且必须注意该工具 .
12 回答
在Visual Studio 2015(以及VS的早期版本中,但如果您使用VS2013或更低版本,则必须安装Productivity Power Tools),Visual Studio中有两个新命令:
Window.NextTab和Window.PreviousTab
只需将它们从Ctrl Alt PageUp / Ctrl Alt PageDown重新映射到Ctrl Tab / Ctrl Shift Tab:
菜单工具 - >选项 - >环境 - >键盘
注意:在早期版本(如Visual Studio 2010)中,Window.NextTab和Window.PreviousTab分别命名为Window.NextDocumentWellTab和Window.PreviousDocumentWellTab .
Visual Studio 2010内置了一种解决方案 .
默认情况下,Ctrl Tab和Ctrl Shift Tab分配给
Window.[Previous/Next]..Document
,但您可以通过删除这些键分配并将它们重新分配给
Window.[Next/Previous]Tab
以添加所需的行为 .它可以改变,至少在VS 2012中(我认为它也适用于2010年) .
1)
TOOLS > Options > Environment > Keyboard
(Yes Tools,VS2012!)现在要检查三个快捷方式 .
2)
Window.NextDocumentWindow
- 您可以通过在顶部的搜索窗格上键入来快速到达那里 . 现在这是你的敌人 . 如果你不喜欢它,删除它 . 如果想拥有自己的 but do remember that shortcut whatever it is in the end ,请将其更改为其他内容(并且不要忘记 Assign 按钮) . 它会在以后派上用场 .(我的意思是这是记住你上一个标签的快捷方式)
3)现在查找
Window.NextDocumentWindowNav
- 这与上面相同,但显示已打开选项卡的预览(您可以使用此弹出窗口快速导航到其他窗口) . 我从来没有发现这有用 . 完成步骤2中提到的所有内容(不要忘记 remember ) .4)
Window.NextTab
- 你的魔药 . 这将允许您按正向顺序循环切换选项卡 . 你想要CTRL TAB吗?再次执行第2步和 remember .5)现在将光标放在按下快捷键:文本框(不会分配此时间),然后键入三个(或两个或一个)快捷键中的第一个 .
您将看到目前使用的快捷方式:已列出 . 确保快捷方式没有重复条目 . 在图片中,没有重复的条目 . 如果你有(很少见),说X,然后转到X,然后删除快捷方式 . 对其他快捷方式也重复此步骤 .
6)现在为
Previous
快捷键重复1-5(最好添加Shift) .7)奖励:选择VS2005映射方案(在同一个框的顶部),所以现在你获得重命名成员的F2而不是CTRL R R,而F7代表查看代码而不是CTRL ALT 0 .
我认为VS默认情况下是正确的 . 我发现VS记得我最后使用的东西非常有用,并使切换更容易,就像操作系统本身所做的那样(在ALT TAB上) . 默认情况下我的浏览器也会这样做(Opera),但我知道Firefox的行为方式不同 .
在Visual Studio 2012或更高版本(2013,2015,2017 ...)中:
浏览菜单工具/选项/环境/键盘 .
搜索命令'Window.NextTab',将快捷方式设置为Ctrl Tab
搜索命令'Window.PreviousTab',将快捷方式设置为Ctrl Shift Tab
导航到博客文章Visual Studio Tab Un-stupidifier Macro并使用宏 . 将宏应用于Visual Studio安装后,您可以将喜爱的键盘快捷键绑定到它们 . 另请注意注释中的注册表修复程序没有显示宏气球,因为它们可能会在一段时间后变得烦人 .
经过几个小时的搜索,我找到了一个解决方案,如何使用CTRL TAB在打开的文档之间切换,从左到右移动,SHIFT CTRL TAB从右到左 .
在简而言之,您需要复制并粘贴此宏:
宏来自:www.mrspeaker.net/2006/10/12/tab-un-stupidifier/
如果您从未向Visual Studio添加宏,那么有一个非常有用的链接如何do it .
Visual Studio选项卡顺序的原理非常违反直觉,因为显示的选项卡的顺序与选项卡切换逻辑不同,呈现选项卡 completely useless 的顺序 .
因此,在出现更好的解决方案之前,将窗口布局(在Environment-> General中)从选项卡式文档更改为多个文档;它不会改变行为,但它减少了标签引起的混乱 .
这样你也会发现DocumentWindowNav更有用!
我100%与杰夫达成协议 .
我曾经在Borland C Builder工作了好几年,我最想念的功能之一是使用Ctrl-Tab的'correct'文档标签顺序 . 正如杰夫所说,“当前的标签行为让我不能完成任务,让我不得不关注这个工具”,这正是我对此的看法,而且很多人抱怨这一点 .
我认为Ctrl-F6 - NextDocumentWindowNav - 根据文档的上次激活时间导航文档 . 这种行为很像MDI应用程序过去的行为 .
考虑到这一点,我通常使用Ctrl F6在两个文档之间切换(这在处理c项目时在.cpp和.h文件之间切换非常方便),即使当前打开的文档超过2个 . 例如,如果您打开了10个文档(Tab1,Tab2,Tab3,....,Tab10),我单击Tab1然后单击Tab2 . 当我按下Ctrl F6并释放按键时,我会跳转到Tab1 . 再次按Ctrl F6将返回Tab2 .
我想你想要什么VSS调用Next(Previous)DocumentWindow . 默认情况下,它在我的VSS 8上的Ctrl(-Shift)-F6上 . 在Ctrl(-Shift)-Tab上,它们有
Next(Previous)DocumentWindowNav
. 您可以通过工具/选项/键盘更改键分配 .在注册表分支中:HKEY_CURRENT_USER \ Software \ Microsoft \ VisualStudio \ 9.0添加名为“UseMRUDocOrdering”的DWORD值为1.它将订购文档,因此最近使用的文档位于左侧 . 它并不完美,但比默认的不当行为更好 .
Ctl Alt PgUp或PgDn快捷方式可以为我切换下一个/ prev选项卡开箱即用...
我不使用Visual Studio(是的,实际上,我不使用它),但AutoHotkey可以全局或在特定应用程序中重新映射任何热键:
这是我的主要AutoHotKey脚本的两次重映射 . 我认为这是这类任务的绝佳工具 .