【问题标题】:How can I switch to a different tab group using the keyboard in visual studio 2013如何在 Visual Studio 2013 中使用键盘切换到不同的选项卡组
【发布时间】:2014-04-30 07:12:57
【问题描述】:

考虑以下窗口设置:

目前有两个标签组打开。左侧选项卡组处于活动状态(ListingDetailsDTO.cs 窗口处于活动状态)。

我现在想切换到正确的标签组,所以 Visual Studio 会显示如下:

这很容易使用鼠标来实现(即只需左键单击右侧窗口)。但是我无法弄清楚如何单独使用键盘来做到这一点。将快捷方式分配给 Window -> Move to next tab group 最接近,但它也会将当前窗口移动到下一个选项卡组,这不是我想要的。我认为 Window.NextPane 或 Window.NextSubpane 可能会工作,但他们没有。

有没有办法做我想做的事?如有必要,我很乐意安装(最好)免费的扩展程序以实现这一点。

【问题讨论】:

  • Window.NextPane 做了什么?我希望这会起作用,除非它将您移至工具箱窗口。 Window.NextDocumentWindow 呢,我相信默认分配给 Ctrl+Tab?
  • @CodyGray:Ctrl-Tab 移动到之前选择的窗口。例如,如果我选择 IListingService.cs,然后选择 ListingDetailsDTO.cs,按 Ctrl-tab 将移动到 IListingService.cs 而不是 ListingUpdateDTO.cs。 Window.NextPane 不幸地将你移动到工具箱窗口(它默认绑定到 alt-f6)
  • @Fred,不,我将打开两个相似的文件(例如两个控制器,两种数据类型),并且想轻松地在两个文件之间复制代码,以及独立滚动每个文件而无需一直使用鼠标。我通常会在两个选项卡组中同时打开许多其他选项卡。基本上,我想要像 emacs C-X C-O 这样的东西。
  • @Fred:这确实有效,但非常乏味,并且每次访问新标签时都需要重复(因为标签顺序会改变)。使用切换到下一个选项卡组命令,只要您要切换到的窗口可见,它就会工作。如果你曾经在 emacs 或 vim 中使用过多个窗口分割,你就会明白这样一个命令的好处。看起来该命令不存在,所以你是对的,Ctrl-Tab 是一个不错的替代品。
  • 我找到了这两个extensions。但它们是为 vs2010 和 vs2012 制作的。但它们都是开源的......

标签: visual-studio visual-studio-2013


【解决方案1】:

对于 Visual Studio 2017/2019,我 created an open-source extension 这样做:

它默认添加了两个键盘快捷键:

  • Tools.NavigateTabGroups.Next (CTRL+SHIFT+Right) 移动到下一个标签组
  • Tools.NavigateTabGroups.Previous (CTRL+SHIFT+Left) 移至上一组

一共有六个命令(都可以指定快捷键):

【讨论】:

  • 正是我想要的。谢谢!
【解决方案2】:

这可以使用 VSStreamliner 扩展来实现。唯一需要注意的是,我所知道的最新版本是针对 VS2010 的。幸运的是,有一个 hack-around - 我已经让它与 VS2015 一起工作。

  1. 下载VSStreamliner

  2. 编辑扩展的版本以匹配您的 Visual Studio 版本,如 here 所述。

  3. 安装版本被破解的扩展。这提供了命令Window.NextDocumentUp, Window.NextDocumentDown, Window.NextDocumentLeftWindow.NextDocumentRight

  4. 在 VS 中,转到 工具 -> 选项 -> 环境 -> 键盘,然后为这些命令设置所需的键绑定。 [Emacs 用户:出于某种原因,“C-x o”不起作用。 (也许 VS 不喜欢二冲程绑定?),所以我分别对NextDocumentDownNextDocumentUp 使用了“M-o”和“M-p”。]

【讨论】:

  • 如果你想跳过第2步,只需从here下载VSStreamliner2015。
  • 这完全解决了问题!我使用了您评论中链接的扩展名,并设置了键绑定,它按预期工作。不仅如此,您还可以在 VsVim 中分配窗口移动键,例如map gh :vsc Window.NextDocumentLeft<CR> 在您的 .vsvimrc 文件中。感谢您抽出时间回答一个 2 年前的问题,我已经放弃了寻找解决方案!
【解决方案3】:

我可以用 Ctrl + Shift + Backspace 来做到这一点。

我不确定这是因为扩展还是开箱即用的行为。我使用 ReSharper 和 Productivity Power Tools 2013 来扩展生产力,所以如果它不是开箱即用的,那么其中之一就可以了。

【讨论】:

  • ReSharper 将命令 Resharper.ReSharper_GotoLastEditLocation 绑定到此键。虽然很有用,但它不允许在编辑组之间切换,除非另一个编辑组中的活动文件是最后一个编辑的文件。无论如何,这就是它对我的工作方式 - 你可能会将它绑定到其他东西。
  • Going to last edit location 是 Visual Studio 中的官方命令Edit.GoToLastEditLocation
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-08-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-30
  • 2016-12-17
相关资源
最近更新 更多