Visual Studio跳转到函数的开头

woo*_*gie 25 keyboard-shortcuts visual-studio

我知道Ctrl+ }会带你到Visual Studio中相应的大括号,但是我说我正处于一个巨大的功能中,我不知道顶部或底部在哪里,是否有直接进入功能声明?

void function()
{
//so many lines of code
//can't see the top or the bottom curly brace
//can i get to the top of the function with a shortcut?
}
Run Code Online (Sandbox Code Playgroud)

Sta*_*cev 10

更新

在上次更新 Visual Studio 后,EditorContextMenus.Navigate.GoToContainingBlock 的默认键盘快捷键现在是 Shift+Alt+[


旧答案:

Visual Studio 2017 版本 15.8.0 附带了一个新的快捷方式 Ctrl + Alt + UpArrow - 转到封闭块。

转到封闭块 (Ctrl + Alt + UpArrow) 允许您快速导航到封闭代码块的开头。

来源

如果您在函数内部,此命令还允许移动到函数声明。 在此处输入图片说明

如果快捷方式对您不起作用


Ada*_*son 8

我通常双按代码左边的白线.它会关闭函数,但它也会将您带到函数的声明中.

  • 在这种情况下,您还可以使用键盘快捷键`Ctrl + M,Ctrl + M`.或者(如果您使用不同的键盘方案)查看命令`Edit.ToggleOutliningExpansion`的正确快捷方式 (10认同)
  • 双击该行关闭块,而不是函数。 (3认同)

Chi*_*f A 6

Alt+Ctrl+UPTabTabEnter
这个序列会打动你通过项目selctor>范围选择>功能选择>电流功能。

Ctrl+MCtrl+M
此序列将在折叠/展开当前块之间切换。
将光标放在该函数立即包围的任何行上。坍方。将光标放在折叠函数的末尾,即之后{ ... }。扩展功能以获取最后的支撑。

注意:
如果您难以找到被函数立即包围的行(例如,当函数具有许多嵌套块时),则始终可以从头开始折叠函数。


Ant*_*ony 6

我重新安装了VS2017。从15.9.1开始,我的默认值为Alt+ Shift+ [

这是的快捷方式EditorContextMenus.Navigate.GoToContainingBlock。因此,如果您的块深度很深,则可能必须多次执行此快捷方式,但是它将使您到达想要的位置。


Ber*_*eux 6

对于 VSCode 爱好者来说,这个组合键将带你进入功能的顶端:

Ctrl-Shift-. 其次是 ENTER

对于 MAC 用户:

Cmd-Shift-. 其次是 ENTER

  • 你刚刚改变了我的生活。在这里,我认为面包屑栏很愚蠢。 (2认同)

Kul*_*Gin 5

您可以使用Visual Studio扩展的宏来实现

这是宏的代码:

// BeginningOfFunction moves the caret to the beginning of the containing definition.

var textSelection = dte.ActiveDocument.Selection;

// Define Visual Studio constants
var vsCMElementFunction = 2;

var codeElement = textSelection.ActivePoint.CodeElement(vsCMElementFunction);


if (codeElement != null)
{
    textSelection.MoveToPoint(codeElement.GetStartPoint());
    dte.ActiveDocument.Activate();
}
Run Code Online (Sandbox Code Playgroud)

它是扩展的示例宏之一。稍微编辑了一下,因为出于某种原因样本对我不起作用。您可以通过更改codeElement.GetStartPoint()为 来到达函数的末尾codeElement.GetEndPoint()