Скрытые возможности Visual Studio (2005-2010)?

182

Visual Studio - настолько большой продукт, что даже после многих лет работы с ним я иногда сталкиваюсь с новым / лучшим способом сделать вещи или вещи, которые я даже не знал, были возможны.

Например-

  • Crtl+ R, Ctrl+ Wчтобы показать пробелы. Необходим для редактирования скриптов сборки Python.

  • В разделе « "HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\8.0\Text Editor" Создать строку» с именем « Направляющие» со значением «RGB (255,0,0), 80» добавьте красную линию в столбце 80 в текстовом редакторе.

На какие еще скрытые функции вы наткнулись?

шош
источник
Спасибо! Наконец отметка 80 столбцов в VS :)
Йонас Галле
Спасибо. на самом деле, я случайно наткнулся на «показать пробелы» и хотел от него избавиться. большое спасибо!
Арсен Захрай

Ответы:

123

Сделайте выделение с нажатой клавишей ALT - выделяет квадрат текста вместо целых строк.

shoosh
источник
9
Ctrl-Alt выделит целые слова. Alt изменит размер области выбора на один символ за раз.
firedfly
4
Это работает в MS Word и OO Writer. Я использовал это много.
Бард
3
Это (называемое «выбор блока») также работает с клавиатурой - удерживайте Alt + Shift, а затем используйте клавиши со стрелками.
arolson101
1
Кроме того, если вы выберете пустой горизонтальный столбец таким образом, все, что вы вводите, будет дублироваться в каждой строке, ведя себя как огромный курсор :)
Седат Капаноглу
1
Я видел, что это продается как функция для VS 2010, но я только попробовал это в VS 2008, и это сработало. Я изумлен. это удивительно полезно!
DaveDev
95

! Точек трассировки

Поместите точку останова в строку кода. Откройте окно точек останова и щелкните правой кнопкой мыши новую точку останова. Выберите «Когда ударил ...». Установив флажок «Распечатать сообщение», Visual Studio будет распечатывать сообщение для вывода отладки каждый раз, когда выполняется строка кода, а не (или даже) прерываться на ней. Вы также можете заставить его выполнять макрос при прохождении строки.

Чарльз Андерсон
источник
1
Я знаю, что опоздал на игру, но это отличная особенность, о которой я никогда не знал!
Джерри
7
Для дополнительных очков вы можете назначить локальную переменную при нажатии кнопки. {localVariable = 1.0f} или увеличьте значения на {staticVariable + = 0.1f}
Чарльз Битти
91

Вы можете перетащить код в панель инструментов. Попытайся!

JFS
источник
Святое дерьмо, так что вы можете! (Спасибо!)
Али Парр
кажется, не слишком полезен над фрагментами
JK.
33
Дорогой Бог ... это совершенно новый уровень копирования и вставки. Скопируйте и вставьте Пасты Пасты. Я знаю многих программистов, которые, я надеюсь, никогда не узнают, что вы можете сделать это.
Райан Ланди
Было бы здорово, если бы вы могли сказать ему, чтобы он оценивал код при нажатии кнопки, как букмарклет.
интуитивно
о нет. Что делает эта ублюдочная функция!
79

Нажмите на идентификатор (имя класса, переменную и т. Д.), Затем нажмите F12«Перейти к определению». Я всегда удивляюсь, как много людей смотрят код, использующий медленный щелчок правой кнопкой мыши -> «Перейти к определению».

РЕДАКТИРОВАТЬ: Затем вы можете использовать Ctrl+, -чтобы вернуться туда, где вы были.

Крейг
источник
8
И не забудьте Ctrl + Shift + - [Control Shift минус], чтобы прыгнуть вперед!
Кевин Пуллин
5
И Shift F12 для Найти все ссылки
Benjol
2
Вы также можете использовать ALT + стрелка влево, чтобы вернуться туда, где вы были
arolson101
1
С настройками клавиш VB Shift-F2 также выполняет переход к определению.
Райан Ланди
1
Также можно щелкнуть правой кнопкой мыши G, если вы идете по маршруту мыши.
Цилб
57

CTRL + SHIFT + V будет циклически перебирать ваш буфер обмена, Visual Studio хранит историю копий.

SONTEK
источник
это можно найти в edit.cycleclipboardring в отображениях клавиатуры (в Visual C ++ это Ctrl-Shift-Insert, а не Ctrl-Shift-V)
умолчанию
52

Сара Форд предлагает множество полезных советов: http://blogs.msdn.com/saraford/archive/tags/Visual+Studio+2008+Tip+of+the+Day/default.aspx

Но некоторые из моих любимых - это фрагменты кода, Ctrl+ .для добавления using<пространства имен> или создания заглушки метода. Я не могу жить без этого.

Ознакомьтесь с большим списком на плакате по связыванию клавиш в Visual Studio 2008 C: http://www.microsoft.com/downloadS/details.aspx?familyid=E5F902A8-5BB5-4CC6-907E-472809749973&displaylang=en

Slace
источник
1
Сара Форд - богиня Visual Studio. Я не мог рекомендовать ее достаточно.
Крис Чарабарук
Полностью согласен, что я, почему я разделяю ее работу. Я действительно люблю ее текущую серию, которая охватывает отладку
Аарон Пауэлл
Грустно, что она перестала заниматься делом дня, хотя она так долго работала с внутренностями VS, что совершенно понятно, что ей нужно двигаться дальше ...
Кноблох
Спасибо за упоминание CTRL +. Я искал именно это.
Сорин Команеску
Я всегда использовал CTRL + ALT + F10. Не знал CTRL +. делает то же самое - спасибо. Намного удобнее.
Ноам Гал
49
CTRL-K, CTRL-D

Переформатировать документ!
Это под сочетаниями клавиш VB, не уверен насчет C #

Марк Глори
источник
3
да, работает под C #, веб-дизайнер, XML-редактор, CSS-редактор, XSD-редактор, JavaScript (в некоторой степени). Большинство поддерживаемых типов файлов
Aaron Powell
8
Ctrk-K, Ctrl-F для C ++
MSalters
7
Я использую Ctrl-E, Ctrl-D
конфигуратор
Ctrl + K, Ctrl + F также форматирует любой текст, который вы выбрали (в C #, не уверен в других).
Занн Андерсон
43

Сколько раз вы отлаживаете массив в QuickWatch или в окне просмотра, и только Visual Studio показывает вам первый элемент? Добавьте «, N» в конец определения, чтобы студия показала вам следующие N элементов. IE "this-> m_myArray" становится "this-> m_array, 5".

tenpn
источник
41

Инкрементальный поиск: открыв нажатие исходного документа (CTRL + I) и введите слово, которое вы ищете, вы можете снова нажать (CTRL + I), чтобы увидеть слова, соответствующие вашему вводу.

Leyu
источник
4
Это называется "> i <ncremental search".
Константин
В отличие от> ex <cremental search, который реализует Firefox.
кибибу
Исходя из мира Emacs, это первая функция, которую я искал. :)
JesperE
37

Вы можете использовать следующие коды в окне просмотра.

@err - display last error
@err,hr - display last error as an HRESULT
@exception - display current exception
Ферруччо
источник
35
  • Ctrl-K, Ctrl-C для комментирования блока текста с // в начале
  • Ctrl-K, Ctrl-U, чтобы раскомментировать блок текста с // в начале

Не могу жить без этого! :)

Томас Братт
источник
Также верно для VB.NET, кроме как с «а не //»
ChrisA
Также верно для SQL Server Management Studio, за исключением использования escape-последовательности комментария SQL '-'
Томас Братт
3
Я всегда хотел, чтобы вы могли переключать комментарии? Почему вы хотите что-то «дважды прокомментировать»? Если вы нажмете на нее снова, следует удалить комментарий ...
Дэн Дипл
16
Иногда вы хотите прокомментировать всю функцию, и некоторые строки внутри уже закомментированы (т.е. они являются правильными комментариями). В таких случаях неочевидно, что делать, если у вас есть переключатель, поэтому обычно лучше сделать решение явным.
Павел Минаев
1
Обратите внимание, что если вы начнете с начала текста, а не с начала строки, вы получите / * * / вместо //. Это, кстати, моя наиболее часто используемая функция
умолчанию
25

Остановка отладчика от перехода к тривиальным функциям.

Когда вы просматриваете код в отладчике, вы можете тратить много времени на вход и выход из функций, которые вам не особенно интересны, с такими именами, как GetID () или std :: vector <> (), выбрать пример C ++. Вы можете использовать реестр, чтобы отладчик игнорировал их.

Для Visual Studio 2005 вам нужно перейти в HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ VisualStudio \ 8.0 \ NativeDE \ StepOver и добавить строковые значения, содержащие регулярные выражения для каждой функции или набора функций, которые вы хотите исключить; например

std :: vector. * ::. *
TextBox :: GetID

Вы также можете переопределить их для отдельных исключений. Например, предположим, что вы захотели войти в деструктор векторного класса:

станд :: вектор. * :: \ ~. * = StepInto

Вы можете найти подробную информацию о других версиях Visual Studio по адресу http://blogs.msdn.com/andypennell/archive/2004/02/06/69004.aspx.

Чарльз Андерсон
источник
Вау, это круто. Я понятия не имел, что это возможно.
j_random_hacker
23

Ctrl-F10 : бегать к курсору во время отладки. Мне понадобилось много времени, чтобы найти это, и я использую это все время;

Ctrl-E, Ctrl-D : применить стандартное форматирование (которое вы можете определить).

Джоэл в Го
источник
1
Ctrl + Shift + F10, чтобы пропустить весь код и запустить курсор. Изящный при попытке проверить определенные строки кода.
Самуэль Слэйд
23

Ключевая особенность TAB .

  1. Если вы знаете имя ключа фрагмента, напишите и нажмите двойную клавишу Tab. например: написать

    foreach

а затем дважды нажмите клавишу табуляции, чтобы

foreach (object var in collection_to_loop)
{

}

2. Если вы пишете какое-либо событие, напишите здесь

        Button btn = new Button();
        btn.Click +=         

а затем дважды нажмите клавишу табуляции, чтобы

private void Form1_Load(object sender, EventArgs e)
{
        Button btn = new Button();
        btn.Click += new EventHandler(btn_Click);     
}    
void btn_Click(object sender, EventArgs e)
{
        throw new Exception("The method or operation is not implemented.");
}

Функция btn_Click пишет автоматически

  1. в редакторе XAML напишите любое событие. например:

MouseLeftButtonDownзатем нажмите вкладку,
MouseLeftButtonDown=""затем снова нажмите вкладку MouseLeftButtonDown="Button_MouseLeftButtonDown"в Button_MouseLeftButtonDownсозданном методе раздела кода .

Ебаттулга
источник
21

Сара Форд загнала этот рынок в угол.

http://blogs.msdn.com/saraford/default.aspx

Советы и хитрости Visual Studio больше, чем вы можете встряхнуть.

Некоторые другие:

  • Трехмесячные пробные выпуски Visual Studio 2005 и 2008 являются полнофункциональными и могут использоваться неограниченное время (навсегда) путем возврата системных часов до открытия VS. Затем, когда VS открывается, снова установите системные часы вперед, чтобы ваши даты не были испорчены.
  • Но это действительно пиратство, и я не могу его рекомендовать, особенно если кто-то с адресом .edu может получить полнофункциональную Pro-версию VS2008 через Microsoft Dreamspark .
  • Вы можете использовать Visual Studio для открытия сторонних исполняемых файлов и просмотра встроенных ресурсов (диалогов, таблиц строк, изображений и т. Д.), Хранящихся в них.
  • Отладочные визуализаторы - это не совсем «скрытая» функция, но они несколько игнорируются и очень полезны, поскольку помимо использования предоставленных визуализаторов вы можете использовать свой собственный для определенных наборов данных.
  • Команда «Установить указатель инструкций» или «Установить следующую инструкцию» отладчика.
  • Условные точки останова (как отметил KiwiBastard).
  • Вы можете использовать Quickwatch и т. Д. Для оценки не только значения переменной, но и выражений времени выполнения вокруг этой переменной.
user2189331
источник
3
Если это действительно пиратство (о чем я с тобой согласен), то почему ты об этом даже упомянул?
Райан Ланди
1
Киралесса, потому что некоторым людям, наверное, все равно. Однако, поскольку редакции Express являются бесплатными, я сомневаюсь, что в настоящее время существует реальная причина использовать пиратскую версию VS.
Джои
17

Настраиваемая высота выпадающего списка IntelliSense , например, отображающая 50 элементов вместо значения по умолчанию, которое ИМО смехотворно мало (8).

(Для этого просто измените размер раскрывающегося списка в следующий раз, и Visual Studio запомнит выбранный вами размер при следующем открытии раскрывающегося списка.)

Brann
источник
4
Вы больше не можете изменить его размер в VS2010, это беспокоит меня до бесконечности.
Manixrock
в Vs2008 я могу изменить ширину, но не высоту.
Капил
16

Обнаружено сегодня:

Ctrl + .

Вызывает контекстное меню для рефакторинга (затем оно доступно через подчеркнутую последнюю букву класса / метода / свойства, которое вы только что переименовали - наведите курсор мыши на меню или "Ctrl" + ".")

Muxa
источник
Alt + Shift + F10 также делает это (используя сочетания клавиш C #)
Кайл Трауберман,
4
Намного лучше, чем пытаться охотиться на крошечную цель щелчка мыши в этой ситуации
Ричард Эв
14

Многие люди не знают и не используют отладчик в полной мере - IE просто использует его, чтобы остановить код, но щелкните правой кнопкой мыши на красном круге, и есть намного больше опций, таких как выполнение условия по условию, выполнение кода при прерывании.

Также вы можете изменять значения переменных во время выполнения, используя отладчик, который является отличной функцией - сохраняет повторный запуск кода для исправления глупой логической ошибки и т. Д.

JamesSugrue
источник
13

Строка транспонировать, Shift-Alt-T
Меняет местами две строки (текущую и следующую) и перемещает курсор на следующую строку. Я люблю это. Я даже написал макрос, который снова изменил положение на одну строку, выполнил транспонирование строки и снова изменил положение строки, так что все выглядело так, как будто я менял текущую строку с предыдущей (транспонирование обратной линии).

Перенос слов, Shift-Ctrl-T

okutane
источник
Это заставляет линию перемещаться вниз по странице. Как сделать так, чтобы линия перемещалась вверх по странице?
Алекс Бараноски
GordonG, я написал следующий макрос: Sub ReverseLineTranspose () DTE.ActiveDocument.Selection.LineUp DTE.ExecuteCommand ("Edit.LineTranspose") DTE.ActiveDocument.Selection.LineUp End Sub
okutane
1
Могло бы быть с этим здесь, поскольку это оказывается :)
Benjol
11

При разработке C ++ Ctrl-F7 компилирует только текущий файл.

Sakin
источник
11

Структура документа в FormsDesigner ( CTRL + ALT + T )

Быстрое управление переименованием, заказом и многим другим!

Pondidum
источник
Я не могу поверить, что я не знал об этом. Моя жизнь изменилась.
HipsterZipster
11

Для автоматической синхронизации текущего файла с помощью обозревателя решений. Так что не нужно искать, где находится файл в структуре проекта.

Сервис -> Параметры -> Проекты и решения -> «Отслеживать активный элемент в обозревателе решений»

Изменить: Если это становится слишком раздражающим для вас, то вы можете использовать макрос Дэна Вандербоома, чтобы вызвать эту функцию по требованию с помощью нажатия клавиши.

(Примечание: взято из комментария ниже Джерри).

SDX2000
источник
3
это становится раздражающим через некоторое время. Я хотел бы, чтобы были сочетания клавиш, чтобы сделать это по требованию.
kenwarner
2
Вот пост о том, как отслеживать по требованию. dvanderboom.wordpress.com/2008/03/21/…
Джерри
Если у вас открыто много файлов, он может убить VS (без предупреждения), если вы сделаете что-то вроде «Закрыть все, кроме этого» (я думаю, из PowerCommands).
Бенджол
Resharper делает необходимость в этом избыточным, поскольку вы можете сделать Shift + Alt + L, чтобы перейти непосредственно к текущему файлу в обозревателе решений; или Ctrl + Shift + N для поиска по ключевому слову для любого файла в решении.
Cbp
9

Я не уверен, что это «скрыто», но мало кто знает об этом - псевдорегистры . Очень удобно при отладке, у меня все время @ERR, hr в окне просмотра.

YRP
источник
1
Я слышал, что @xxx постепенно сокращается в пользу $ xxx. FWIW, WinDbg также использует форму $ xxx.
Константин
Разве вы не можете просто сказать «час, час» в окне часов? Я использовал это еще в VC6 ...
LarryF
Превосходно. Как показано в связанной статье, установка условных точек останова на @TIB значительно упростит отладку многопоточных приложений.
j_random_hacker
9

Ctrl-Minus, Ctrl-Plus, перемещает назад и вперед, где вы были недавно (правда, только открытые файлы).

Илья Рыженков
источник
Да, ЛЮБИТЕ это - используйте их каждый день.
MaseBase
Очень полезно, если вы нажмете F + 12, чтобы перейти к определению, а затем захотите вернуться туда, где вы были.
Томас Братт
9

Я не часто его использую, но я люблю:

ctrl-alt + mouse select

Выделить в прямоугольном блоке, чтобы «заблокировать» границы.

Как отмечено в комментариях,

alt + mouse select

Делает просто прямоугольный блок.

Шелковый полдень
источник
4
Понижательное голосование забавно, учитывая, что это действительное действие в VS :) Удачи вам, таинственный ненавистник.
Полдень Шелк
2
Возможно, это немного рано, но чтение этого заставило меня хотеть попробовать это на Firefox. Оказывается, ctrl-alt-shift позволяет вам использовать мышь для перетаскивания всего документа по экрану, подобно тому, как работает документ PDF.
KdgDev
Чем он отличается от alt + mouse select?
Гуффа
Guffa: Это касается только окончаний блоков. alt-select позволяет выбрать любую область, содержащую что-либо. Они разные.
Шелковый полдень
Хотя я думаю, что это может быть просто ctrl-alt, а не shift.
Шелковый полдень
9

Вот что я узнал (для C #):

Вы можете переместить курсор на открывающую фигурную скобку из закрывающей фигурной скобки, нажав Control +].

Я узнал об этом на ТАКОЙ теме, которая является обманом этого:

«Скрытые секреты» отладчика Visual Studio .NET?

Джей Риггс
источник
8

CTRL + Shift + U -> выделенный раздел в верхнем регистре. CTRL + U -> Нижний регистр выделенного раздела Отлично подходит для того, чтобы мои операторы SQL выглядели просто правильно при помещении их в строковые запросы.

Также полезно для кода, который вы нашли в Интернете, где ВСЕ В КРЫШКАХ.

обкрадывать
источник
2
Жаль, что у них нет опции CamelCase CTRL + Shift ... :) Это, вероятно, мой рефактор № 1, который я делаю, когда беру на себя управление проектом ... Ларри
LarryF
8

Средняя кнопка мыши Нажмите на вкладку редактора, чтобы закрыть вкладку.

Кевин Дридгер
источник
1
Я использую это все время, когда я пишу код, потому что я ищу код и затем закрываю его («X» для закрытия довольно далеко).
Кевин Дридгер
8

Чтобы отобразить любой фрагмент данных в виде n-байтового «массива», используйте следующий синтаксис в окне QuickWatch в Visual Studio:

variable, n

Например, чтобы просмотреть переменную с именем foo256-байтового массива, введите следующее выражение в окне QuickWatch:

foo, 256

Это особенно полезно при просмотре строк, которые не заканчиваются нулем, или данных, которые доступны только через указатель. Вы можете использовать окно памяти Visual Studio для достижения аналогичного результата, но использование окна QuickWatch часто удобнее для быстрой проверки.

Эмерик Рогул
источник