Visual Studio 2015:Ctrl+Shift+8(View.PopBrowseContext)无法导航回去?

12
一个我在多个 Visual Studio 版本中都常常使用的快捷键是 Ctrl+Shift+8,用于在执行 F12 进行“转到定义”操作后返回之前的位置。
在 Visual Studio 2015 中,按下 Ctrl+Shift+8 似乎没有任何反应。
在打开 Visual Studio 2013 并查看“工具”|“自定义”|“键盘”对话框后,发现 Ctrl+Shift+8 映射到“视图.弹出浏览上下文”命令。在 Visual Studio 2015 中,Ctrl+Shift+8 具有相同的命令映射,但该命令似乎不起作用。
是否有办法让“视图.弹出浏览上下文”命令在 Visual Studio 2015 中执行“转到定义” (F12) 操作后导航返回到之前的位置?

1
这个情况有任何更新吗?已经过去一年了,这个破损的VS2015功能还没有修复吗? - RonC
1
@RonC 最新更新请查看 https://github.com/dotnet/roslyn/issues/14496 - Jon Schneider
2
@JonSchneider 感谢您提供的链接,很高兴看到在Github上现在已经有了一个Roslyn问题。我添加了评论支持它。 - RonC
3个回答

9

Visual Studio 2015 Connect -> 查看.PopBrowseContext命令及其他命令无法使用 (该问题已被微软从Connect网站上移除)

GitHub上的问题 -> 重新启用转到定义导航堆栈 #14496

View.NavigateBackward (Ctrl+-) 不是 View.PopBrowseContext (Ctrl+Shift+8) 的良好替代品。如果您调用 Edit.GoToDefinition (F12),然后使用鼠标点击几次并移动光标,所有这些移动都将记录在导航堆栈中。

View.PopBrowseContext (Ctrl+Shift+8) 直接重定向到先前的定义(即您最后调用 Edit.GoToDefinition (F12) 的位置)。

  • View.PopBrowseContext
  • Edit.GoToReference
  • View.BrowseNext
  • View.BrowsePrevious
  • Edit.GoToDeclaration
  • View.ForwardBrowseContext

注意:这些命令在Visual Studio 2015中已经损坏,仍然无法在Visual Studio 2017中使用。


2
我也完全同意。我正在使用View.NavigateBackward(Ctrl + -)但它不像View.PopBrowseContext那样高效。我经常不得不使用View.NavigateBackward(Ctrl + -)三到四次,才能回到我按F12的地方。在之前的Visual Studio版本中,使用View.PopBroweContext(Ctl + shift + 8),我只需要按一次键盘组合,就可以回到我使用F12的地方。我希望这个问题很快在Visual Studio 2015中得到解决。没有View.PopBroweContext(Ctl + shift + 8)真的会降低生产力。 - RonC
在https://developercommunity.visualstudio.com/content/problem/94907/vs2017-the-command-viewpopbrowsecontext-with-the-k.html进行讨论。 - Marc.2377

6
在Visual Studio 2015中,一个解决方法是按下CTRL+-(映射到View.NavigateBackward命令),而不是尝试使用View.PopBrowseContext/Ctrl+Shift+8,在按下F12后返回。参考链接:Reference

1
谢谢这个!我之前一直在使用VS2013卡住了! - Surfbutler

3

当你第一次启动Visual Studio时,它会提供典型用途(不确定确切称呼)的选择:如C++、C#等。我相信初始键绑定取决于该选择。

我使用了FeinCtrl,并注意到View.PopBrowseContext映射到Ctrl+Num *,而且它正常工作。对我来说,Ctrl+Shift+8被映射到Edit.ViewWhiteSpace......

你是否碰巧遇到了不同范围内的另一个命令映射到同样的快捷键而导致冲突的情况?


1
好的想法,但我认为我没有冲突:在键盘选项对话框中,如果我将焦点放在“按快捷键”字段上并按下Ctrl+Shift+8,则在“当前使用快捷键”的字段中出现的唯一项目是“View.PopBrowseContext(Ctrl+Shift+8(全局))”。 - Jon Schneider
1
@Jon Schneider - 那个对话框一次只检查一个作用域。例如,快捷方式可以在“文本编辑器”范围内定义,并引起运行时冲突。您介意尝试一下我上面提到的visualstudiogallery中的FeinCtrl扩展吗?我想知道它是否会发现这个冲突。 - Vlad Feinstein
1
不错的扩展!我试了一下,但是对我来说View.PopBrowseContext似乎是Ctrl+Shift+8的唯一映射:http://i.imgur.com/yfP56lZ.png - Jon Schneider
1
请再做一个测试:在使用 <kbd>F12</kbd> 后,您能否打开命令窗口并在其中键入 View.PopBrowseContext?您是否回到了之前的位置?另外,不确定是否有影响,您使用的是什么语言?C++?C#?还是其他高级语言? - Vlad Feinstein
有趣!命令窗口返回错误“Command "View.PopBrowseContext" is not available.”。这是一个C#项目。 - Jon Schneider
2
我猜他们决定你不需要两个执行相同操作的命令。但好消息是,你可以重新绑定你最喜欢的 Ctrl+Shift+8 到 View.NavigateBackward。 - Vlad Feinstein

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接