当前位置:  开发笔记 > 编程语言 > 正文

更改Ctrl + Tab行为以在Visual Studio中的文档之间移动

如何解决《更改Ctrl+Tab行为以在VisualStudio中的文档之间移动》经验,为你挑选了10个好方法。

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

使用选项卡控件打开文档的其他每个程序我都看到使用Ctrl+ Tab从左到右移动,Shift+ Ctrl+ Tab从右到左移动.Visual Studio通过跳转到选定的最后一个选项卡来中断此操作.你永远不会知道你最终会得到什么文件,它永远不会是两次相同的方式.

这非常违反直觉.这是一种微妙的方式来鼓励每个人一次只打开两份文件吗?


假设我打开了一些文件.我在一个工作,我需要看到右边下一个选项卡中的内容.在地球表面的每一个单独的应用程序中,Ctrl+ Tab都会让我在那里.但是在Visual Studio中,我不知道它将采用哪些其他选项卡.如果我只打开两个文档,这很有效.一旦你去了三个或更多,所有的赌注都是关于Visual Studio决定发送给你的标签.

这个问题是我不应该考虑这个工具,它应该淡入背景,我应该考虑这个任务.当前的选项卡行为使我不能完成任务,并且必须注意该工具.



1> thepaulpage..:

在Visual Studio 2015(以及VS的早期版本中,但如果您使用的是VS2013或更低版本,则必须安装Productivity Power Tools),Visual Studio中有两个新命令:

Window.NextTabWindow.PreviousTab

只需将它们从Ctrl+ Alt+ PageUp/ Ctrl+ Alt+ 重新映射PageDownCtrl+ Tab/ Ctrl+ Shift+ Tab:

菜单工具 - > 选项 - > 环境 - > 键盘

注意:在早期版本(如Visual Studio 2010)中,Window.NextTab和Window.PreviousTab分别命名为Window.NextDocumentWellTabWindow.PreviousDocumentWellTab.


在Visual Studio 2012中,命令名称稍有变化.它现在是*Window.NextTab*和*Window.PreviousTab*.
如果您使用Visual Studio Express,这将无济于事
@JP ten Berge - 我在VS 2012中测试了这个,如果你在Razor视图(.cshtml文件)上,Window.PreviousTab快捷方式(Ctrl + Alt + PgUp)不起作用.非常讨厌,虽然Ctrl + Alt + PgDown仍然有效,所以你并没有完全卡住.还有Window.NextDocumentWindow(Ctrl + F6),虽然这似乎以奇怪的顺序循环选项卡.
还没有Visual Studio 2012的版本

2> Zoey..:

Visual Studio 2010内置了一种解决方案.

默认情况下,分配Ctrl+ TabCtrl+ Shift+ ,但您可以通过TabWindow.[Previous/Next]..Document

Tools -> Options -> Environment -> Keyboard,

删除这些键分配并重新分配它们Window.[Next/Previous]Tab以添加所需的行为.


显然有人混淆了downvote背后的推理 - 如果一个答案不符合这个问题,或者它实际上是否定的,那么它应该得到一个......但我的答案是正确的,尽管不如你的答案.是不是我希望人们真正理解选项菜单,而不是"在这里,运行这个脚本"或"安装这个插件!"......这不是一个程序员的网站吗?

3> nawfal..:

它可以改变,至少在VS 2012中(我认为它也适用于2010年).

1) TOOLS > Options > Environment > Keyboard

(Yes Tools,VS2012!)现在要检查三个快捷方式.

2)Window.NextDocumentWindow- 您可以通过在顶部的搜索窗格上键入来快速到达那里.现在这是你的敌人.如果你不喜欢它,删除它.如果想拥有自己的,请将其更改为其他内容(并且不要忘记" 分配"按钮),但要记住最后的快捷方式.它会在以后派上用场.

(我的意思是这是记住你上一个标签的快捷方式)

在此输入图像描述

3)现在查找Window.NextDocumentWindowNav- 这与上面相同,但显示已打开选项卡的预览(您可以使用此弹出窗口快速导航到其他窗口).我从来没有发现这有用.完成步骤2中提到的所有内容(不要忘记记住).

4)Window.NextTab- 你的魔药.这将允许您按正向顺序循环切换选项卡.可能你想要CTRL+ TAB?再次步骤2并记住.

5)现在将光标放在按下快捷键:文本框(与当前选择的内容无关,您不打算分配此时间),然后键入三个(或两个或一个)快捷键中的第一个.

在此输入图像描述

您将看到目前使用的快捷方式:已列出.确保快捷方式没有重复条目.在图片中,没有重复的条目.如果你有(很少见),说X,然后转到X,然后删除快捷方式.对其他快捷方式也重复此步骤.

6)现在重复1-5以获得Previous快捷方式(最好是添加Shift).

7)奖励:选择VS2005映射方案(在同一个盒子的顶部),所以现在你得到F2重新命名的成员,而不是CTRL+ R+ R,以及F7用于查看代码,而不是CTRL+ ALT+ 0.

我认为VS默认是正确的.我发现VS记得我最后使用的内容非常有用,并且使切换更容易,就像操作系统本身所做的那样(在ALT+上TAB).默认情况下我的浏览器也会这样做(Opera),但我知道Firefox的行为方式不同.



4> Colonel Pani..:

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

    浏览菜单工具/选项/环境/键盘.

    搜索命令'Window.NextTab',将快捷方式设置为Ctrl+Tab

    搜索命令'Window.PreviousTab',将快捷方式设置为Ctrl+ Shift+Tab

在此输入图像描述


作为参考,默认情况下,Ctrl + Tab和Ctrl + Shift + Tab被映射到命令'Window.NextDocumentWindowNav'和'Window.PreviousDocumentWindowNav'.

5> 小智..:

导航到博客文章Visual Studio Tab Un-stupidifier Macro并使用宏.将宏应用于Visual Studio安装后,您可以将喜爱的键盘快捷键绑定到它们.另请注意注释中的注册表修复不显示宏气球,因为它们可能会在一段时间后变得烦人.



6> 小智..:

经过几个小时的搜索,我找到了一个解决方案,如何使用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添加宏,则有一个非常有用的链接如何执行.


第一次执行此操作还需要10秒钟,并且每次使用它时都会闪烁系统托盘图标吗?这就是VS2005所做的,我无法接受......

7> 小智..:

Visual Studio选项卡顺序的原理非常违反直觉,因为显示的选项卡的顺序与选项卡切换逻辑不同,使选项卡的顺序完全无用.

因此,在出现更好的解决方案之前,将窗口布局(在Environment-> General中)从选项卡式文档更改为多个文档; 它不会改变行为,但它减少了标签引起的混乱.

这样你也会发现DocumentWindowNav更有用!



8> FlashJordan..:

Ctl+ Alt+ PgUpPgDn快捷方式可以为我切换下一个/ prev选项卡开箱即用...


不合逻辑的事情是:如果您的标签栏只有n个标签的水平空间,那些快捷方式将不会使标签循环显示当前不可见的标签!

9> buti-oxa..:

我猜你想要什么VSS调用Next(Previous)DocumentWindow.默认情况下,它Ctrl(-Shift)-F6在我的VSS 8上.Ctrl(-Shift)-Tab他们有Next(Previous)DocumentWindowNav.您可以通过工具/选项/键盘更改键分配.


Ctrl-(Shift-)F6不会让您进入左侧或右侧选项卡.它的顺序与Ctrl-Tab相同,但没有恼人的窗口.

10> Kei..:

我100%与杰夫达成协议.

我曾在Borland的C++ Builder的工作了好几年,我最怀念的特点之一是"正确的"文档Tab键顺序与Ctrl- Tab.正如杰夫所说," 当前的标签行为让我不能完成任务并让我不得不关注这个工具 ",这正是我对此的看法,而且我对这一事实感到非常惊讶很多人抱怨这个.

我认为Ctrl- F6- NextDocumentWindowNav - 根据文档的上次激活时间导航文档.这种行为很像MDI应用程序过去的行为.

考虑到这一点,我通常使用Ctrl+ F6来切换2个文档(这在处理c ++项目时在.cpp和.h文件之间切换非常方便),即使当前打开的文档超过2个.例如,如果您打开了10个文档(Tab1,Tab2,Tab3,....,Tab10),我单击Tab1然后单击Tab2.当我执行Ctrl+ F6并释放键时,我将跳转到Tab1.再次按Ctrl+ F6将带我回到Tab2.

推荐阅读
勤奋的瞌睡猪_715
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有