有可能改变Ctrl + Tab和Shift + Ctrl + Tab在Visual Studio中的工作方式吗?我已经禁用了弹出式导航器窗口,因为我只想在选项卡控件中的项之间切换。我的问题是切换到下一个和上一个文档所做的不一致。

我所见过的其他使用tab控件打开文档的程序都使用Ctrl + tab从左向右移动,Shift + Ctrl + tab从右向左移动。Visual Studio通过跳转到所选的最后一个选项卡来打破这一点。你永远不知道你会在什么文件上结束,而且它不会以相同的方式出现两次。

这是违反直觉的。这是一种鼓励每个人一次只打开两个文档的微妙方式吗?


假设我打开了几个文件。我在一个工作,我需要看看右边的下一个标签是什么。在地球上的任何一个应用程序中,Ctrl + Tab都可以做到。但是在Visual Studio中,我不知道它会把我带到其他哪个选项卡。如果我只打开两个文档,这就很好。当你转到三个或更多的标签时,所有关于Visual Studio决定将你发送到哪个标签的赌注都结束了。

这样做的问题是,我不应该考虑工具,它应该消失在背景中,而我应该考虑任务。当前的标签行为不断把我从任务中拉出来,使我不得不关注这个工具。


当前回答

导航到博客文章Visual Studio Tab unstupidifier宏并使用宏。在将宏应用到Visual Studio的安装之后,您可以将您喜欢的快捷键绑定到它们。还要注意注释中的注册表修复,不显示宏气球,因为它们可能会在一段时间后变得烦人。

其他回答

我觉得目前最重要的答案已经过时了。在Visual Studio 2021 (v1.56)中,你不需要安装任何扩展,也不需要处理任何配置文件。你只需要做以下步骤:

点击左下角的齿轮图标。 选择“键盘快捷键”。 搜索“workbench.action”。previousEditor和workbench.action。通过单击该行左侧的铅笔图标来编辑它们的键绑定。

如果您更改了“Ctrl+tab”或其他已被其他命令使用的快捷方式,它会让您知道并为您提供更改这些快捷方式的选项。我个人把它们改成了“Ctrl+PgUp”和“Ctrl+PgDn”,所以这只是一个直接的交换。

我不使用Visual Studio(是的,真的,我不使用它),但AutoHotkey可以在全局或特定应用程序中重新映射任何热键:

#IfWinActive Microsoft Excel (application specific remapping)

; Printing area in Excel (@ Ctrl+Alt+A)
^!a::
Send !ade
return

#IfWinActive


$f4::
; Closes the active window (make double tapping F4 works like ALT+F4)
if f4_cnt > 0 
{
    f4_cnt += 1
    return
}

f4_cnt = 1
SetTimer, f4_Handler, 250
return

f4_Handler:
SetTimer, f4_Handler, off

if (f4_cnt >= 2)    ; Pressed more than two times
{   
    SendInput !{f4}
} else {
    ; Resend f4 to the application
    Send {f4}
}

f4_cnt = 0
return

这是我的主要AutoHotKey脚本的两个重绘。我认为这是完成这类任务的绝佳工具。

在Visual Studio 2012或更高版本中(2013、2015、2017…):

浏览菜单工具/选项/环境/键盘。 搜索命令“窗口”。NextTab',设置快捷方式为Ctrl+Tab 搜索命令“窗口”。PreviousTab',设置快捷键为Ctrl+Shift+Tab

我猜你想要什么VSS称为下(上)文档窗口。默认情况下,它在我的VSS 8上按Ctrl(-Shift)-F6。按Ctrl(shift)-Tab键,有下一个(上一个)DocumentWindowNav。你可以通过工具/选项/键盘改变键值。

Ctl + Alt + PgUp或PgDn快捷键工作切换下一个/前一页标签出框为我…