Приховані особливості 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 :)
Jonas Gulle

Дякую. насправді я натрапив на "показати білі простори" випадково і хотів позбутися від нього. дуже дякую!
Арсен Захрай

Відповіді:


123

Зробіть виділення натиснутою ALT - вибирає квадрат тексту замість цілих рядків.


9
Ctrl-Alt вибере цілі слова. Alt змінює розмір області вибору по одному символу одночасно.
стрілянина

4
Це працює і в MS Word і OO Writer. Я його багато використовував.
Bård

3
Це (називається "вибір блоку") також працює з клавіатурою - утримуйте клавіші alt + shift, а потім використовуйте клавіші зі стрілками.
arolson101

1
Крім того, якщо ви виберете порожній горизонтальний стовпець таким чином, все, що ви введете, буде дублюватися у кожному рядку, ведучи себе як величезний курсор :)
Седат Капаноглу

1
Я бачив, як це продається як функція для VS 2010, але я просто спробував це у VS 2008, і це спрацювало. Я зашарпаний. це напрочуд корисно!
DaveDev

95

Слідові точки!

Поставте точку перерви в рядку коду. Підніміть вікно "Розривні точки" та клацніть правою кнопкою миші на новій точці розриву. Виберіть "Коли потрапити ...". Поставивши прапорець "Роздрукувати повідомлення", Visual Studio надрукує повідомлення на вивідку налагодження щоразу, коли виконується рядок коду, а не (або як) порушується на ньому. Ви також можете змусити його виконувати макрос під час проходження рядка.


1
Я знаю, що я запізнююся на гру, але це чудова особливість, про яку я ніколи не знав!
Джеррі

7
Для додаткових очок ви можете зробити локальне призначення змінної у кнопці при натисканні. {localVariable = 1.0f} або збільшити значення на {staticVariable + = 0.1f}
Чарльз Бітті

91

Ви можете перетягнути код до ToolBox. Спробуй це!


Святе лайно, щоб ви могли! (Дякую!)
Алі Парр

Мабуть, не дуже корисно для фрагментів
jk.

33
Шановний Боже ... це абсолютно новий рівень копіювання та вставки. Скопіюйте і вставте-вставте-вставте. Я знаю багато програмістів, які, сподіваюся, ніколи не дізнаються, що ви можете це зробити.
Райан Лунді

Було б здорово, якби ви могли сказати йому, щоб зрівняти код, натиснувши кнопку, як-от закладку.
інтуїтоване

о ні. Що ця функція бастардіза робить!

79

Клацніть ідентифікатор (назва класу, змінної тощо), а потім натисніть кнопку F12"Перейти до визначення". Мене завжди дивує, скільки людей, за якими я переглядаю код, використовують повільнішу клацання правою кнопкою миші -> "Перейти до визначення".

EDIT: Тоді ви можете скористатися Ctrl+, -щоб повернутися туди, де ви були.


8
І не забудьте Ctrl + Shift + - [контроль зсуву мінус], щоб стрибнути вперед!
Кевін Пуллін

5
І Shift F12 для пошуку всіх посилань
Benjol

2
Ви також можете використовувати ALT + стрілку вліво, щоб повернутися туди, де ви були
arolson101

1
З налаштуваннями ключа VB, Shift-F2 також виконує визначення Go.
Райан Лунді

1
Ви також можете клацнути правою кнопкою миші, якщо ви рухаєтесь мишею в першу чергу.
tsilb

57

CTRL + SHIFT + V буде проходити через буфер обміну, Visual Studio зберігає історію копій.


це можна знайти у edit.cycleclipboardring у відображеннях клавіатури (у візуальних 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 # Keybinding: http://www.microsoft.com/downloadS/details.aspx?familyid=E5F902A8-5BB5-4CC6-907E-472809749973&displaylang=en


1
Сара Форд - богиня Visual Studio. Я не міг її досить рекомендувати.
Кріс Чарабарук

Цілком погоджуюся, на що я ділюся її роботою. Я дуже люблю її нинішню серію, яка охоплює налагодження
Аарон Пауелл,

Сумно, що вона кинула робити пораду дня, хоча минуло так довго, як вона працювала з внутрішніми ВС, що цілком зрозуміло, що їй потрібно рухатися далі ...
Knobloch

Дякуємо, що згадали про CTRL +. Я саме шукав саме цього.
Сорін Команеску

Я завжди використовував CTRL + ALT + F10. Не знав CTRL +. робить те саме - дякую. Набагато комфортніше.
Ноам Гал

49
CTRL-K, CTRL-D

Переформатувати документ!
Це під клавішами VB, не впевнений у C #


3
так, працює під C #, веб-дизайнером, редактором XML, редактором CSS, редактором XSD, JavaScript (певною мірою). Більшість підтримуваних типів файлів
Аарон Пауелл,

8
Ctrk-K, Ctrl-F для C ++
MSalters

7
Я використовую Ctrl-E, Ctrl-D
конфігуратор

Ctrl + K, Ctrl + F також форматує будь-який текст, який ви вибрали (у C #, не впевнений у інших).
Занн Андерсон

43

Скільки разів ви налагоджуєте масив у швидкому годиннику чи у вікні перегляду, і лише у візуальній студії показано вам перший елемент? Додайте ", N" в кінці визначення, щоб студія показала і вам наступні N елементів. IE "this-> m_myArray" стає "this-> m_array, 5".


41

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


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, за винятком використання послідовності виходу коментарів SQL '-'
Thomas Bratt

3
Я завжди хотів, щоб ви могли перемикати коментарі? Чому б ти хотів щось "подвоїти"? Безумовно, натискаючи його знову, слід не коментувати ...
Dan Diplo

16
Іноді ви хочете прокоментувати всю функцію, а деякі рядки всередині вже коментуються (тобто це належні коментарі). У таких випадках не очевидно, що робити, якщо у вас перемикання, тому зазвичай краще зробити рішення явним.
Павло Мінаєв

1
Зауважте, що якщо ви починаєте з початку тексту, а не початку рядка, ви отримаєте / * * / замість //. Це, до речі, моя найбільш часто використовувана функція
за замовчуванням

25

Зупинка налагоджувача від переходу до тривіальних функцій.

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

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

std :: вектор. * ::. *
TextBox :: GetID

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

std :: вектор. * :: \ ~. * = 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, щоб пропустити весь код і перейти до курсору. Nifty при спробі випробувати конкретні рядки коду.
Самуїл Слейд

23

Основна функція TAB .

  1. Якщо ви знаєте ім'я ключового фрагмента, напишіть та натисніть подвійну вкладку. наприклад: Пишіть

    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 тощо, щоб оцінити не тільки значення змінної, але і вирази часу виконання навколо цієї змінної.

3
Якщо це справді піратство (з яким я згоден з вами), то чому б ви це навіть згадували?
Райан Лунді

1
Kyralessa, бо, певно, людей це не хвилює. Однак, оскільки видання Express є безкоштовними, я сумніваюся, що в даний час є фактична причина використовувати піратську версію VS.
Joey


17

Спеціальна висота випадання IntelliSense , наприклад, показ 50 елементів замість типових, що IMO смішно мало (8).

(Для цього просто змініть розмір спадного меню наступного разу, коли ви побачите його, і Visual Studio запам’ятає розмір, який ви вибрали наступного разу, коли він відкриє спадне меню.)


4
Ви більше не можете змінити його розмір у VS2010, це привертає мене до кінця.
manixrock

у Vs2008 я можу змінити ширину, але не висоту.
Капіль

16

Виявлено сьогодні:

Ctrl + .

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


Alt + Shift + F10 робить це також (використовуючи клавіші C #)
Kyle Trauberman

4
Набагато краще, ніж намагатися полювати на крихітну ціль миші в цій ситуації
Річард Ев

14

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

Крім того, ви можете змінювати змінні значення під час виконання, використовуючи налагоджувач, що є чудовою особливістю - економить код перезапуску для виправлення нерозумної логічної помилки тощо.


13

Транспоніруйте рядок, Shift-Alt-T
Міняє двома рядками (поточну та наступну) і переміщує курсор на наступний рядок. Я це люблю. Я навіть написав макрос, який знову змінив позицію на один рядок, виконав переміщення рядка і знову змінив положення рядка, щоб все виглядало так, що я міняю поточний рядок на попередній (Зворотний рядок транспозиції).

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


Це змушує рядок рухатися вниз по сторінці, як зробити так, щоб рядок рухався вгору по сторінці?
Олексій Бараноський

GordonG, я написав наступний макрос: Sub ReverseLineTranspose () DTE.ActiveDocument.Selection.LineUp DTE.ExecuteCommand ("Edit.LineTranspose") DTE.ActiveDocument.Selection.LineUp End Sub
okutane

1
З цим можна зробити, як виявляється :)
Benjol


11

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

Швидке управління перейменуванням, замовленням тощо!


Я не можу повірити, що не знав про це. Моє життя змінилося.
HipsterZipster

11

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

Інструменти -> Параметри -> Проекти та рішення -> "Відстеження активного елемента в Провіднику рішень"

Редагувати: Якщо це стає для вас занадто дратівливим, тоді ви можете використовувати макрос Dan Vanderboom, щоб викликати цю функцію на вимогу за допомогою натискання клавіші.

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


3
це стає дратівливим через деякий час. Я хотів би, щоб це було на клавіатурі, щоб зробити це на вимогу
kenwarner

2
Ось пост про те, як відстежувати попиту. dvanderboom.wordpress.com/2008/03/21/…
Джеррі

Якщо у вас відкрито багато файлів, це може вбити VS (без попередження), якщо ви робите такі речі, як "Закрити все, окрім цього" (від PowerCommands, я думаю).
Бенжол

Resharper вимагає цього резервного, оскільки ви можете робити Shift + Alt + L, щоб перейти безпосередньо до поточного файлу в Провіднику рішень; або Ctrl + Shift + N для пошуку за ключовим словом для будь-якого файлу в Рішенні.
cbp

9

Я не впевнений, чи це "приховано", але про це знають не багато людей - псевдорегістрати . Дуже зручно при налагодженні, я весь час у своєму вікні годинника @ERR, год.


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

Чим він відрізняється від вибору альт + миші?
Гуффа

Guffa: Це стосується лише блокових закінчень. alt-select дозволяє вибрати будь-яку область, що містить що-небудь. Вони різні.
Шовковий полудень

Хоча я думаю, що це може бути просто "ctrl-alt", а не "shift".
Шовковий полудень


8

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

Також корисний для коду, який ви знайшли в Інтернеті, де ВСЕ ВІД КАПІВ.


2
Шкода, що у них немає опції CamelCase CTRL + Shift ... :) Це, мабуть, мій рефактор №1, який я роблю, коли я переймаю проект ... Ларрі
LarryF

8

Кнопка "Середня миша" Клацання на вкладці "Редактор" закриває вкладку.


1
Я використовую це весь час, коли кодую, тому що я шукаю код, а потім закриваю його ("X" для закриття досить далеко).
Кевін Дрідджер

8

Щоб відобразити будь-який фрагмент даних як n-байтовий "масив", використовуйте такий синтаксис у вікні QuickWatch Visual Studio:

variable, n

Наприклад, для перегляду змінної, названої fooяк 256-байтовий масив, введіть таке вираження у вікні QuickWatch:

foo, 256

Це особливо корисно при перегляді рядків, які не мають нульового завершення, або даних, доступних лише за допомогою вказівника. Ви можете використовувати вікно пам'яті Visual Studio для досягнення подібного результату, але використання вікна QuickWatch часто зручніше для швидкої перевірки.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.