Подтвердить что ты не робот

Визуальная студия Перейти к началу работы

Я знаю, что 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?
}
4b9b3361

Ответ 1

Я обычно дважды нажимаю белую линию, расположенную слева от кода. Он закрывает функцию, но также выводит вас на объявление функции.

Ответ 2

Alt+Ctrl+UP, Tab, Tab, Enter
Эта последовательность переместит вас через Выборщик проекта> Выбор области действия> Выбор функции> Текущая функция.

Ctrl+M, Ctrl+M
Эта последовательность будет переключаться между свернуть/развернуть текущий блок.
Поместите курсор в любую строку, которая немедленно заключена в функцию. Collapse. Поместите курсор в конец свернутой функции, т.е. после {... }. Разверните функцию, чтобы получить ее последнюю скобку.

Замечания:
Если у вас возникли трудности с нахождением строки, непосредственно закрытой функцией (например, когда функция имеет много вложенных блоков), вы всегда можете перейти к началу, чтобы свернуть функцию.

Ответ 3

У меня свежая установка VS2017. По состоянию на 15.9.1 для меня по умолчанию установлено значение Alt + Shift + [.

Это ярлык для EditorContextMenus.Navigate.GoToContainingBlock. Таким образом, вам может потребоваться выполнить этот ярлык несколько раз, если вы находитесь в нескольких слоях блока, но он приведет вас туда, куда вы хотите.

Ответ 4

Вы можете сделать это с Макросами для расширения 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();
}

Это один из примеров макросов расширения. Немного изменил его, потому что по какой-то причине образец не работал у меня. Вы можете перейти к концу функции, изменив codeElement.GetStartPoint() на codeElement.GetEndPoint().

Ответ 5

Обновление

С последними обновлениями Visual Studio теперь по умолчанию сочетание клавиш для EditorContextMenus.Navigate.GoToConistingBlock имеет значение Shift + Alt + [


Старый ответ:

Visual Studio 2017 версии 15.8.0 поставляется с новым сочетанием клавиш Ctrl + Alt + UpArrow - Перейти к включенному блоку.

Перейти в блок вложения (Ctrl + Alt + UpArrow) позволяет быстро перейти к началу блока кода.

Источник

Эта команда также позволяет перейти к объявлению функции, если вы находитесь внутри функции. enter image description here

Если ярлык не работает для вас

Ответ 6

Я нашел один трюк в визуальной студии:

Поместите курсор на пустой, чтобы получить контекст (имя функции), скопируйте имя функции, затем щелкните стрелку раскрывающегося списка, в которой будут перечислены все функции, вставьте имя функции, введите. Тогда вы находитесь в начале этой функции!