我知道在Visual Studio中,Ctrl+} 可以带你到相应的括号处,但是假设我正在一个巨大的函数中间,不知道顶部或底部在哪里,有没有快捷键可以直接跳转到函数声明?
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?
}
我知道在Visual Studio中,Ctrl+} 可以带你到相应的括号处,但是假设我正在一个巨大的函数中间,不知道顶部或底部在哪里,有没有快捷键可以直接跳转到函数声明?
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?
}
我已经安装了全新的VS2017。在版本15.9.1中,我的默认快捷键是Alt+Shift+[。
这是用于EditorContextMenus.Navigate.GoToContainingBlock
的快捷键。如果你需要跳转到几个块层级深处,可能需要多次执行此快捷键,但它可以帮助你到达你想去的地方。
对于VSCode的爱好者,这个键组合将带您到函数的顶部:
Ctrl-Shift-.
接着按 ENTER
而对于MAC用户:
Cmd-Shift-.
接着按 ENTER
Ctrl-Shift-\\
可直接跳转到匹配的括号(通过按下 Ctrl-Shift-p
并搜索 'go to' 找到)。 - undefinedAlt+Ctrl+UP
,Tab
,Tab
,Enter
这个序列将帮助你在Project选择器、Scope选择器、Function选择器和当前函数之间切换。
Ctrl+M
,Ctrl+M
这个序列将折叠/展开当前块。
将光标放在任何被该函数直接包含的行上,然后折叠它。将光标放在折叠后的函数结束后即{ ... }
的位置,展开函数以到达最后一个大括号。
注意:
如果你找不到被函数直接包含的行(例如函数有很多嵌套块),你可以始终回到开头折叠函数。
更新
在最新的Visual Studio更新中,现在EditorContextMenus.Navigate.GoToContainingBlock的默认键盘快捷键为Shift+Alt+[
旧答案:
Visual Studio 2017版本15.8.0增加了一个新的快捷键Ctrl + Alt + UpArrow - 转到包含块。
转到包含块 (Ctrl + Alt + UpArrow) 允许您快速导航到封闭代码块的开头。
我通常双击代码左侧的白色线条,这会关闭函数并且带您前往该函数的声明。
Ctrl+M, Ctrl+M
。或者(如果您使用不同的键盘方案),查找命令 Edit.ToggleOutliningExpansion
的正确快捷方式。 - Max// 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();
}
这是扩展的示例宏之一。我进行了一些修改,因为样本在某种原因下无法工作。通过将 codeElement.GetStartPoint()
更改为 codeElement.GetEndPoint()
,您可以到达函数的末尾。
我使用Ctrl+Shift+O
和Enter
。
Ctrl+Shift+O
打开顶部的“转到符号...”下拉菜单,其中包含它打开时选择的当前函数,而Enter
则将我带到当前函数的开头。
有关完整和最新的快捷键,请参阅此处的官方Visual Studio Code键盘快捷键:https://code.visualstudio.com/shortcuts/keyboard-shortcuts-windows.pdf
提示:Ctrl+k Ctrl+r
会在浏览器窗口中打开键盘快捷键页面。
ctrl + cmd + o
- Artur Carvalho另一个选择是使用Edit.PreviousMethod
。我更喜欢这个选项,因为即使您的光标位于多个嵌套块中,您也可以用单个按键跳转到方法定义!我已将Edit.PreviousMethod
映射到ctrl + alt + ,
,将Edit.NextMethod
映射到ctrl + alt + .
但您可以将其设置为任何您喜欢的方式。
要设置快捷键绑定,请转到工具.选项.环境.键盘
,然后在显示包含命令
文本框中键入edit.previousmethod
,将焦点设置在按键组合
文本框上,并按下您想要的键组合,然后点击分配
。对于edit.nextmethod
,重复此操作,然后点击确定
。
Edit.PreviousMethod
可以实现此功能。在 Viasfora 扩展中,快捷键Edit.RainbowPrevious
也可以实现。 - ingredient_15939