Visual Studio - настолько крупный продукт, что даже после многих лет работы с ним я иногда натыкаюсь на новый / лучший способ делать вещи или вещи, о которых я даже не подозревал, возможно.
Например-
Crtl + R, Ctrl + W для отображения пробелов. Необходим для редактирования скриптов сборки Python.
Под "HKEY_CURRENT_USER\Software\Microsoft\VisualStudio.0\Text Editor"
Создайте строку с именем Гиды со значением «RGB (255,0,0), 80», чтобы в столбце 80 текстового редактора была красная линия.
На какие еще скрытые функции вы наткнулись?
Благодарю. на самом деле, я случайно наткнулся на «показывать белые пространства» и хотел от него избавиться. большое спасибо!





Самая важная функция, без которой я не могу жить, - это Visual Studio 2008.: P
Отладчик :-) На много миль превосходит Блокнот.
VS Debugger является Notepad по сравнению с windbg :)
Верно, но если VS Debugger - это Блокнот, то windbg - это vi или emacs :-)
Многие люди не знают и не используют отладчик в полной мере - I.E. просто используйте его, чтобы остановить код, но щелкните правой кнопкой мыши красный кружок, и появится гораздо больше опций, таких как прерывание по условию, запуск кода при прерывании.
Также вы можете изменять значения переменных во время выполнения с помощью отладчика, что является отличной функцией - сохраняет повторно запускаемый код для исправления глупой логической ошибки и т. д.
Сара Форд загнала этот рынок в угол.
http://blogs.msdn.com/saraford/default.aspx
Больше советов и приемов Visual Studio, чем вы можете представить.
Некоторые другие:
Если это действительно пиратство (в чем я с вами согласен), то зачем вам вообще упоминать о нем?
Киралесса, потому что некоторым людям все равно. Однако, поскольку экспресс-версии бесплатны, я сомневаюсь, что в настоящее время есть реальная причина использовать пиратскую версию VS.
CTRL-D, затем введите "> of", затем имя файла. Если открыта стандартная панель инструментов, crtl-d поместит вас в поле со списком поиска, и теперь в вашем решении появится раскрывающийся список с файлами, которые соответствуют началу введенного вами имени файла. Выберите один, и он его откроет. Эта альтернатива открытому диалогу файлов отлично подходит для больших решений с большим количеством каталогов.
В моей Visual Studio есть CTRL + /, чтобы перейти к окну поиска. Но я постоянно этим пользуюсь.
Вот старая статья в блоге о некоторых скрытые возможности отладчика в оценщиках выражений.
CTRL-K, CTRL-D
Переформатируйте документ!
Это под сочетаниями клавиш VB, не уверен в C#
да, работает под C#, Web Designer, редактором XML, редактором CSS, редактором XSD, JavaScript (в определенной степени). Большинство поддерживаемых типов файлов
Ctrl + K, Ctrl + F также форматирует любой текст, который вы выбрали (в C#, не уверен в других).
Не уверен, что он «скрытый», но не многие об этом знают - псевдорегистры. Очень удобно при отладке, у меня постоянно отображается @ERR, hr.
Я слышал, что от @xxx постепенно отказываются в пользу $ xxx. FWIW, WinDbg также использует форму $ xxx.
Разве вы не можете просто написать «hr, hr» в окне просмотра? Я использовал это еще в VC6 ...
Отлично. Как говорится в связанной статье, установка условных точек останова на @TIB значительно упростит отладку многопоточных приложений.
Сара Форд дает множество замечательных советов: http://blogs.msdn.com/saraford/archive/tags/Visual+Studio+2008+Tip+of+the+Day/default.aspx
Но некоторые из моих любимых - это фрагменты кода, Ctrl + . для добавления using <Namespace> или создания заглушки метода.
Я не могу без этого жить.
Посмотрите отличный список на плакате Visual Studio 2008 C# Keybinding: http://www.microsoft.com/downloadS/details.aspx?familyid=E5F902A8-5BB5-4CC6-907E-472809749973&displaylang=en
Сара Форд - богиня Visual Studio. Я не мог порекомендовать ее достаточно.
Полностью согласен, почему я разделяю ее работы. Мне очень нравится ее текущая серия, посвященная отладке.
Печально, что она перестала заниматься повседневным делом, хотя она так давно не работала с внутренностями VS, что совершенно понятно, что ей нужно было двигаться дальше ...
Спасибо, что упомянули CTRL +. Я искал именно эту.
Я всегда использовал CTRL + ALT + F10. Не знал CTRL +. делает то же самое - спасибо. Намного удобнее.
@ Ноам - раньше использовал CTRL + ALT + F10, обнаружил только CTRL. прочитав книгу Pro ASP.NET MVC. Намного лучше с CNTRL +.
Ctrl + K + M быстрее, чем Ctrl +. если вы уверены, что хотите сгенерировать метод. Один из моих любимых - Ctrl + K + S для окружения кода различными блоками кода, такими как if, try, region и т. д.
101 совет VS за 55 минут в настоящее время размещен здесь: saraford.net/2010/06/17/…
Ctrl-F10: запустить до курсора во время отладки. Мне потребовались годы, чтобы найти это, и я использую его все время;
Ctrl-E, Ctrl-D: применить стандартное форматирование (которое вы можете определить).
Перетащите выделенный текст в окно Watch в отладчике.
Пошаговый поиск: при открытом исходном документе (CTRL + I) и вводе искомого слова вы можете снова нажать (CTRL + I), чтобы увидеть слова, соответствующие вашему вводу.
Это называется «> инкрементный поиск».
В отличие от> ex <cremental search, который реализует Firefox.
Это первая функция из мира Emacs, которую я искал. :)
Сколько раз вы отлаживаете массив в Quickwatch или в окне просмотра, и только Visual Studio показывает вам первый элемент? Добавьте ", N" в конец определения, чтобы студия также показывала вам следующие N элементов. IE «this-> m_myArray» становится «this-> m_array, 5».
CTRL + SHIFT + V будет циклически перемещаться по буферу обмена, Visual Studio хранит историю копий.
это можно найти в edit.cycleclipboardring в сопоставлениях клавиатуры (в Visual C++ это Ctrl-Shift-Insert, а не Ctrl-Shift-V)
Сделать выделение с нажатой клавишей ALT - выделяет квадрат текста вместо целых строк.
Не уверен в разнице, но я всегда использовал Ctrl + Alt.
Ctrl-Alt выделит слова целиком. Alt изменит размер области выбора по одному символу за раз.
Однако похоже, что они «исправили» (или сломали) пасту выбранного блока вот так. Раньше вы могли вставлять код поверх другого кода, теперь он всегда вставляет новые строки. Я использовал это дерьмо для создания операторов CTORS или = с большим количеством членов для назначения.
Боже мой !! Я хотел этого всегда, но не думал, что VS.Net когда-нибудь получит это! Я помню это из старых дней WordStar, хотите верьте, хотите нет!
сначала я подумал «когда я когда-нибудь буду использовать это», а теперь я использую его почти каждый день для копирования и вставки кода в электронную почту, окно мессенджера, stackoverflow, ..
Это также работает в MS Word и OO Writer. Я много этим пользовался.
Это (так называемый «выбор блока») также работает с клавиатурой: удерживайте alt + shift, затем используйте клавиши со стрелками.
Кроме того, если вы выберете таким образом пустой горизонтальный столбец, все, что вы наберете, будет дублироваться в каждой строке, как огромный курсор :)
Ваш пробег может измениться, если вы скопируете и вставите прямоугольное выделение.
Я видел, что это продал как функция для VS 2010, но я просто попробовал это в VS 2008, и это сработало. Я ошеломлен. это потрясающе полезно!
alt + W: комментарий; alt + e: раскомментировать
Ctrl-Minus, Ctrl-Plus позволяет перемещаться назад и вперед туда, где вы были недавно (правда, только открытые файлы).
Да, ЛЮБЛЮ их - используйте их каждый день.
Очень полезно, если вы нажимаете F + 12, чтобы перейти к определению, а затем хотите вернуться туда, где вы были.
Я всегда сопоставляю control + alt + f4 с документами. CloseAllWindows в параметрах> среда> клавиатура.
Это несколько более интуитивно понятно, чем использование мыши.
Получил это при ctrl + shift + alt + q. Но через alt + w + w тоже довольно быстро.
Вы можете перетащить код в ToolBox. Попытайся!
Святое дерьмо, чтобы ты мог! (Спасибо!)
не похоже, чтобы использовать фрагменты, хотя
Дорогой Бог ... это совершенно новый уровень копирования и вставки. Копировать-вставить-вставить-вставить. Я знаю много программистов, которые, надеюсь, никогда не узнают, что вы можете это сделать.
Было бы здорово, если бы вы могли сказать ему, чтобы он оценивал код, когда вы нажимаете кнопку, как букмарклет.
о нет. Что делает эта ублюдочная функция!
Shift + Alt + F10 вызывает встроенное меню рефакторинга. Отлично подходит для добавления заглушек методов из интерфейсов и автоматического добавления операторов Using для определенных классов.
Более простой способ сделать это - Ctrl-. (период)
Нажмите клавишу F8, чтобы просмотреть результаты поиска. (Shift + F8 для обратного направления)
Нажмите F12, чтобы перейти к определению переменной.
Shift + alt + клавиши со стрелками = выбор блока!
Я думаю, что возможность щелкнуть правой кнопкой мыши по хранимой процедуре в обозревателе серверов и отладить ..
При разработке C++ Ctrl-F7 компилирует только текущий файл.
Точки трассировки!
Поместите точку останова в строку кода. Откройте окно «Точки останова» и щелкните правой кнопкой мыши новую точку останова. Выберите «При попадании ...». Установив флажок «Распечатать сообщение», Visual Studio будет распечатывать сообщение в Debug Output каждый раз, когда строка кода выполняется, а не (или также) прерывает ее. Вы также можете заставить его выполнять макрос при прохождении строки.
Я знаю, что опаздываю в игру, но это отличная функция, о которой я никогда не знал!
Для дополнительных очков вы можете назначить локальную переменную при нажатии кнопки. {local Variable = 1.0 для увеличения значений на {static Variable + = 0.1f}
Не совсем скрытая функция, но я кое-что сделал - добавил кнопку «Начать без отладки» рядом с моей кнопкой «Начать с отладкой». Просто щелкните стрелку вниз в правом конце панели инструментов. Затем выберите «Добавить или удалить кнопки». Затем настройте. На вкладке "Команды" выберите категорию "Отладка". Найдите команду «Начать без отладки» и перетащите ее в нужное место на панели инструментов.
CTRL-F5 - это ярлык для этого с настройками по умолчанию. Отличный способ запустить более быструю сборку или не попасть в точки останова.
Моя лучшая особенность - это то, что я должен был сделать сам ... Это флиппер cpp / h. Если вы смотрите на файл .h и нажимаете этот макрос (или его сочетание клавиш), он откроет файл cpp, и наоборот.
Я могу предоставить источник, если кто-то этого захочет.
Мне бы хотелось, чтобы это переключалось между файлами .aspx и .aspx.cs (аналогично для .ascx и .ascx.cs)
Rich, я только что написал для себя, чтобы сделать это для aspx и .cs ... Я выложу код.
Visual Assist, в целом, хотя и не совсем понятен для этого вопроса, но это отличное приложение, которое действительно помогает в повседневной работе Visual Studio. Их окна открытия любого файла и поиска любого символа особенно хороши.
Включить Intellisense в файлах скинов
Копирование и вставка из окна просмотра расширенных свойств объекта в отладчике в Excel сохранит табличный формат и сохранит данные после завершения сеанса отладки.
Обнаружил сегодня:
Ctrl + .
Вызывает контекстное меню для рефакторинга (затем то, которое доступно через подчеркнутую последнюю букву класса / метода / свойства, которое вы только что переименовали - наведите указатель мыши на меню или нажмите "Ctrl" + ".")
Alt + Shift + F10 также делает это (с использованием сочетаний клавиш C#)
Намного лучше, чем пытаться охотиться на крошечную цель щелчка мышью в этой ситуации
Щелкните идентификатор (имя класса, переменную и т. д.), Затем нажмите F12 для «Перейти к определению». Меня всегда удивляло, сколько людей, которых я наблюдаю за кодом, используют более медленный метод щелчка правой кнопкой мыши -> «Перейти к определению».
Обновлено: Затем вы можете использовать Ctrl + -, чтобы вернуться туда, где вы были.
И не забывайте Ctrl + Shift + - [control shift минус], чтобы прыгать вперед!
И Shift F12 для поиска всех ссылок
Если вы используете код с интерфейсами, Go To Definition не всегда работает, но если у вас есть ReSharper, Ctrl + F12 работает! (переходит к реализации)
Вы также можете использовать ALT + стрелка влево, чтобы вернуться туда, где вы были
С настройками клавиши VB Shift-F2 также выполняет переход к определению.
Resharper делает это еще лучше - когда вы удерживаете ctrl и щелкаете по вызову метода, вы переходите к объявлению метода.
Можно также щелкнуть правой кнопкой мыши-G, если вы в первую очередь идете по маршруту мыши.
+ 1 для сочетания клавиш "CTRL -"
Не могу без этого жить! :)
Также верно в VB.NET, за исключением ', а не //
Также верно в SQL Server Management Studio, за исключением использования escape-последовательности комментариев SQL '-'
Мне всегда хотелось, чтобы вы могли переключать комментарии? Зачем вам что-то «дважды комментировать»? Конечно, повторное нажатие не должно комментировать ...
Иногда вы хотите прокомментировать всю функцию, а некоторые строки внутри уже прокомментированы (то есть это правильные комментарии). В таких случаях неочевидно, что делать, если у вас есть переключатель, поэтому обычно лучше принимать явное решение.
Я хотел бы, чтобы был простой способ обернуть блок текста в / * ... * / вместо того, чтобы добавлять каждую строку с //. Я начал делать это вручную, а не лениво, используя Ctrl-E, Ctrl-C. Почему? Потому что, если вы закомментируете блок кода, который кто-то изменит, вы получите конфликты, когда попытаетесь их объединить (при использовании DVCS). Однако если вы оберните блоки комментариями в стиле C, закомментированный код будет изменен автоматически. Также в вашем контроле версий вы видите только первую и последнюю строки блока как измененные, а не каждую строку блока, что упрощает просмотр наборов изменений.
Обратите внимание, что если вы начнете с начала текста, а не с начала строки, вы получите / * * / вместо //. Кстати, это моя самая используемая функция
для такой полезной функции она должна быть проще, чем то, что требует двух рук.
@DaveDev: Вы используете одну руку, когда программируете?
@ Майкл, иногда, когда мне одиноко. Но в противном случае я мог бы выбрать блок кода с помощью мыши, а затем мне пришлось бы поднести руку к клавиатуре, а затем снова вернуться к мыши. Это небольшие накладные расходы, но если вы делаете это много, это может стать утомительным
@DaveDev: lol :) да, я обычно помечаю код сдвигом вверх / вниз .. Так что лично мне не так уж много хлопот. Но если вы выбираете его мышью, это должно быть одним щелчком мыши. Хотя, вы можете сами сопоставить это с одной рукой - .. щелкните (Как насчет, Ctrl -C [комментарий];))
Не могу без этого жить! :)
CTRL + Shift + U -> Раздел, выделенный прописными буквами. CTRL + U -> Нижний регистр выделенного раздела Отлично подходит для того, чтобы мои операторы SQL выглядели правильно, помещая их в строковые запросы.
Также полезно для кода, который вы нашли в Интернете, где ВСЕ ЗАГЛАВНЫ.
Жаль, что у них нет опции CamelCase CTRL + Shift ... :) Вероятно, это мой рефакторинг №1, который я делаю, когда беру проект на себя ... Ларри
Об этом есть статья. Вроде бы длинный сборник.
Для автоматической синхронизации текущего файла с обозревателем решений. Так что не нужно смотреть, где находится файл в структуре проекта.
Инструменты -> Параметры -> Проекты и решения -> «Отслеживать активный элемент в обозревателе решений»
Редактировать: Если это вас слишком раздражает, вы можете использовать макрос Дэна Вандербума, чтобы вызывать эту функцию по запросу с помощью нажатия клавиши.
(Примечание: взято из комментария Джерри ниже).
через некоторое время это начинает раздражать. Хотелось бы, чтобы для этого по требованию было сочетание клавиш.
Вот статья о том, как отслеживать по запросу. dvanderboom.wordpress.com/2008/03/21/…
Если у вас открыто много файлов, он может убить VS (без предупреждения), если вы сделаете что-то вроде «Закройте все, кроме этого» (я думаю, из PowerCommands).
Resharper делает необходимость в этом избыточном, поскольку вы можете нажать Shift + Alt + L, чтобы перейти непосредственно к текущему файлу в обозревателе решений; или Ctrl + Shift + N для поиска по ключевым словам любого файла в Решении.
Вы можете использовать следующие коды в окне просмотра.
@err - display last error
@err,hr - display last error as an HRESULT
@exception - display current exception
Предотвращение перехода отладчика к тривиальным функциям.
Когда вы выполняете код в отладчике, вы можете потратить много времени, входя и выходя из функций, которые вам не особенно интересны, с такими именами, как GetID () или std :: vector <> (), выбрать пример C++. Вы можете использовать реестр, чтобы отладчик их игнорировал.
Для Visual Studio 2005 вам нужно перейти в HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ VisualStudio \ 8.0 \ NativeDE \ StepOver и добавить строковые значения, содержащие регулярные выражения для каждой функции или набора функций, которые вы хотите исключить; например
std :: vector. * ::. *
TextBox :: GetID
Вы также можете переопределить их для отдельных исключений. Например, предположим, что вы действительно хотите войти в деструктор векторного класса:
std :: vector. * :: \ ~. * = StepInto
Вы можете найти подробную информацию о других версиях Visual Studio на http://blogs.msdn.com/andypennell/archive/2004/02/06/69004.aspx
Вау, это круто. Я понятия не имел, что это возможно.
T4 (набор инструментов для преобразования текстовых шаблонов). T4 - это генератор кода, встроенный прямо в Visual Studio
Примечание. Не экспресс-выпуски. (Тем не менее, это отличный совет.)
Чтобы отобразить любой фрагмент данных в виде n-байтового «массива», используйте следующий синтаксис в окне QuickWatch Visual Studio:
variable, n
Например, чтобы просмотреть переменную с именем foo как 256-байтовый массив, введите следующее выражение в окне QuickWatch:
foo, 256
Это особенно полезно при просмотре строк, не оканчивающихся нулем, или данных, доступных только через указатель. Вы можете использовать окно памяти Visual Studio для достижения аналогичного результата, но использование окна QuickWatch часто более удобно для быстрой проверки.
Вот источник макроса для моего флиппера aspx / aspx.cs. Он работает в 2005 году, но может иметь проблемы в 08 .. Я не уверен ... Это было взято из моего другого флиппера cpp / h, поэтому может потребоваться некоторая очистка, чтобы сделать его как можно лучше. Мне не платят за написание макросов, поэтому я должен продумать их как можно быстрее, когда они мне понадобятся.
Sub OpenASPOrCS()
'DESCRIPTION: Open .aspx file if in .cs file, open .cs file if in .aspx file
On Error Resume Next
' Get current doc path
Dim FullName
FullName = LCase(ActiveDocument.FullName)
If FullName = "" Then
MsgBox("Error, not a .cs or asp file!")
Exit Sub
End If
' Get current doc name
Dim DocName
DocName = ActiveDocument.Name
Dim IsCSFile
IsCSFile = False
Dim fn
Dim dn
If (Right(FullName, 3) = ".cs") Then
fn = Left(FullName, Len(FullName) - 3)
dn = Left(DocName, Len(DocName) - 3)
IsCSFile = True
ElseIf ((Right(FullName, 5) = ".aspx") Or (Right(FullName, 5) = ".ascx")) Then
fn = FullName + ".cs"
dn = DocName + ".cs"
Else
MsgBox("Error, not a .cs, or an asp file!")
Exit Sub
End If
Dim doc As EnvDTE.Documents
DTE.ItemOperations.OpenFile(fn)
doc.DTE.ItemOperations.OpenFile(fn)
If Err.Number = 0 Then
Exit Sub
End If
' First check to see if the file is already open and activate it
For Each doc In DTE.Documents()
If doc.Name = dn Then
doc.Active = True
Exit Sub
End If
Next
End Sub
Я обновил свой кодовый флиппер, опубликованный ранее. Я добавил поддержку элементов управления ASP.
Ларри
Рядом с кнопкой «Открыть» в диалоговом окне «Открыть файл» находится небольшая стрелка вниз. Щелкните по нему, и вы получите опцию «Открыть с помощью», которая включает двоичный редактор. Как специалист по системному типу, я считаю его весьма ценным, но большинство моих коллег не знали об этом, пока я им не показал.
Ключевая особенность 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 записывает автоматически
MouseLeftButtonDown, затем щелкните вкладку MouseLeftButtonDown = "", затем снова щелкните вкладку
MouseLeftButtonDown = "Button_MouseLeftButtonDown" в разделе кода Button_MouseLeftButtonDown метод создан.
Ctrl + L удаляет текущую выбранную строку. Это отличная экономия времени (если, конечно, использовать ответственно !!!)
К сожалению, это порезы текущая строка, занимающая ваш буфер обмена. Я действительно хотел бы, чтобы была команда, которая просто удаляла текущую строку ...
И Ctrl + X, пока ничего не выделено, обрезает текущую строку. То же самое и с копией. Тогда не нужно запоминать какие-либо новые буквы алфавита.
Shift + Ctrl + L удаляет текущую строку, не помещая ее в буфер обмена. (Из ответа SLaks.)
Ctrl-M + Ctrl-L Переключить Свернуть все - развернуть все
Re: Остановить отладчик от перехода в тривиальные функции.
В C# вы также можете добавить атрибут [DebuggerStepThrough] (используя System.Diagnostics) к методу. По иронии судьбы это заставляет отладчик не выполнять пошаговый процесс.
Схема документа в FormsDesigner (CTRL + ALT + T)
Быстрое переименование, заказ и многое другое!
Не могу поверить, что не знал об этом. Моя жизнь изменилась.
Настраиваемая высота раскрывающегося списка IntelliSense, например, отображение 50 элементов вместо значения по умолчанию, которое IMO смехотворно мало (8).
(Для этого просто измените размер раскрывающегося списка в следующий раз, когда вы его увидите, и Visual Studio запомнит выбранный вами размер в следующий раз, когда он откроет раскрывающийся список.)
Вы не можете больше изменять его размер в VS2010, это меня беспокоит.
в Vs2008 я могу изменить ширину, но не высоту.
Ctrl-T меняет местами последние две буквы. Например, «swithc» -> «переключатель».
@Shoosh, это быстрее, чем prinft m_variablena "woops!", Backspace, backspace, backspace, backspace, backspace, backspace и т. д.
На самом деле я только что пробовал это в VS 2008, и кажется, что две буквы, которые находятся по обе стороны от курсора, меняются местами, поэтому, если у вас есть переключатель, а курсор находится между w и i, Ctrl-T делает его siwtch.
Ссылочный тег в Visual Studio 2008 для JavaScript IntelliSense - это новая скрытая функция. Особенно jQuery IntelliSense - это сокрушительный удар!
Транспонирование строки, Shift-Alt-T
Меняет местами две строки (текущую и следующую) и перемещает курсор на следующую строку. Я люблю это. Я даже написал макрос, который снова изменил положение на одну строку, выполнил транспонирование строки и снова изменил положение строки, так что все выглядело так, как будто я меняю местами текущую строку с предыдущей (обратное транспонирование строки).
Транспонирование слова, Shift-Ctrl-T
Это заставляет линию перемещаться вниз по странице. Как сделать так, чтобы линия двигалась вверх по странице?
GordonG, я написал следующий макрос: Sub ReverseLineTranspose () DTE.ActiveDocument.Selection.LineUp DTE.ExecuteCommand ("Edit.LineTranspose") DTE.ActiveDocument.Selection.LineUp End Sub
Оказывается, можно и здесь :)
Ctrl + Shift + L удаляет текущую строку (не вырезая ее в буфер обмена)
Вы можете перетащить маленький серый прямоугольник над вертикальной полосой прокрутки, чтобы разделить окно на два представления одного и того же файла, которые можно прокручивать независимо - отлично, если вы сравниваете две части одного и того же файла.
Это замечательно для веб-материалов, таких как сохранение css / javascript в верхней части и HTML в нижней части. Также для переписывания длинного метода вы можете сохранить «старую» версию в одной области для справки, в то время как вы пишете новую на другой панели.
я бы просто использовал windiff или что-то подобное
CTRL-G для перехода к определенному номеру строки. Экономит несколько секунд, если у вас есть номер строки в большом файле кода.
@sunglim - Ты прав! Однако я не пользовался блокнотом уже много лет.
View, Code Definition Window.
Окно определения кода показывает определение текущего выбранного идентификатора (если он находится в вашем решении, он покажет ваш источник; в противном случае он извлечет метаданные, например, щелчок правой кнопкой мыши, Перейти к определению)
Я вижу, что многие из нас публикуют ярлыки. Я распечатал этот плакат, очень полезно выучить эти ярлыки - в настоящее время я очень редко смотрю на плакат, потому что я выучил большинство из них :)
Ссылка на постеры VS:
Мои любимые - рефакторинг (CTRL-R + что-то)
Просмотр, Другие окна, Стенд объектного тестирования
Стенд для тестирования объектов можно использовать для выполнения кода во время разработки.
Вы можете щелкнуть правой кнопкой мыши тип в представлении классов, выбрать «Создать экземпляр» и выбрать конструктор. Затем вы можете указать значения для его параметров, если таковые имеются, и экземпляр отобразится на стенде Object Test Bench.
Вы также можете вызвать статические методы, щелкнув тип правой кнопкой мыши и выбрав «Вызов статического метода».
В Object Test Bench вы можете щелкнуть правой кнопкой мыши объект для вызова методов, а также навести на него курсор и увидеть его структуру (как при отладке). Вы также можете назначать эти переменные и взаимодействовать с ними в окне Immediate, также во время разработки.
Эта функция может быть полезна при написании библиотеки. Обратите внимание: чтобы использовать это, ваше решение должно быть сначала скомпилировано.
Я хотел поговорить о ярлыках комментариев (Ctrl + k, Ctrl + c) и раскомментировать (Ctrl + k, Ctrl + u), но Bratt (: p) уже упомянул их.
Как насчет ярлыка Ctrl + k, Ctrl + d, очень удобного для кода разметка формата (ASP.NET, HTML) и JavaScript!
Я не знаю, насколько неизвестными они кажутся большинству людей, но я не думаю, что многие люди используют сниппеты.
Я обнаружил их некоторое время назад, а затем обнаружил, что их можно настраивать, редактируя xml в каталоге Visual Studio Program Files. Они упрощают быстрое добавление большого количества кода.
Кроме того, чтобы сэкономить время при использовании фрагментов, убедитесь, что вы дважды нажимаете вкладку и не пытаетесь делать все через меню, вызываемое правой кнопкой мыши.
Вы также можете поместить их в MyDocs \ Visual Studio 200? \ Code Snippets.
Вы можете увидеть несколько фрагментов здесь: stackoverflow.com/questions/15111/…
Тот, который я только что обнаружил. При работе с COM можно найти краткое сообщение с загадочным шестнадцатеричным номером ошибки с помощью инструмента errlook.exe.
Полезный инструмент находится в вашем каталоге VS \ Common7 \ Tools.
Вы можете запустить его с помощью Tools -> Error Lookup
Отладчик .NET позволяет назначать идентификаторы объектам и ссылаться на них через эти идентификаторы позже во время сеанса. Для этого щелкните правой кнопкой мыши переменную (или выражение), ссылающуюся на объект, в окне Autos / Locals / Watch или во всплывающей подсказке и выберите «Create Object ID». Идентификаторы представляют собой последовательные целые числа, начинающиеся с 1, с суффиксом "#" - например, 1# будет первым созданным идентификатором.
После создания идентификатора, если объект связан с данным идентификатором, он отображается в скобках.
Вы можете использовать 1# для ссылки на объект по идентификатору везде, где вы обычно можете использовать выражения - в окне Watch, в условиях условной точки останова и так далее. Это наиболее удобно, когда вы хотите установить точку останова только для метода определенного объекта - если вы можете сначала отследить создание объекта или какое-либо другое место, где есть ссылка на этот конкретный объект, вы просто создаете для него идентификатор, а затем устанавливаете новая точка останова с условием, например this==1#.
Динамический XSLT Intellisense
A very little known fact is that Visual Studio 2008 does support real XSLT intellisense - not a static XSLT schema-based one, but real dynamic intellisense enabling autocompletion of template names, modes, parameter/variable names, attribute set names, namespace prefixes etc.
Для всех версий VS мне нравится
Ctrl + Shift + V
для копирования данных в цикле буфера обмена.
Круто, не знал control-shift-v.
Вот что я узнал (для C#):
Вы можете переместить курсор на открывающую фигурную скобку из закрывающей фигурной скобки, нажав Control +].
Я узнал об этом на ТАКОЙ теме, которая является обманом этой:
Я не часто им пользуюсь, но люблю:
ctrl-alt + mouse select
Выделить в прямоугольном блоке, «заблокировать» границы.
Как отмечено в комментариях,
alt + mouse select
Делает обычный прямоугольный блок.
Голос против забавен, учитывая, что это допустимое действие в VS :) Но удачи тебе, таинственный ненавистник.
Может быть, это немного рано, но, прочитав это, мне захотелось попробовать его в Firefox. Оказывается, ctrl-alt-shift позволяет использовать мышь для перетаскивания всего документа по экрану, подобно тому, как работает документ PDF.
Чем он отличается от alt + mouse select?
Guffa: Это касается только блок-концовок. alt-select позволяет вам выбрать любую область, содержащую что-либо. Они разные.
Хотя я думаю, что это может быть просто «ctrl-alt», а не «shift».
На самом деле это просто Shift + Alt в Firefox.
Я не знаю, насколько это «скрыто», но некоторые новички могут не знать о конидитональные точки останова.
Установите точку останова, затем щелкните ее правой кнопкой мыши и выберите Condition, затем введите выражение вроде:
(b == 0)
И он сработает только тогда, когда это правда. Очень полезно при отладке определенного этапа цикла.
Я думаю, что общий подход в этих обсуждениях состоит в том, чтобы помещать один ответ на каждый комментарий, чтобы люди могли ранжировать их индивидуально. Я все равно не получаю сегодня больше очков за голосование, так что меня это ни в коем случае не беспокоит :)
На MSDN есть этот блог, в котором есть несколько хороших советов и приемов.
http://blogs.msdn.com/saraford/archive/tags/Visual+Studio+2008+Tip+of+the+Day/default.aspx
Наличие надстройки Решарпер. Это упрощает работу с Visual Stupidio :)
На самом деле это не скрытая функция, но, тем не менее, ее стоит упомянуть, поскольку она включает в себя множество этих уловок и горячих клавиш.
Вертикальное выделение с помощью Ctrl-Left Click иногда бывает очень полезно ...
Shift + Delete, чтобы вырезать любую строку, на которой находится курсор.
Я использую это все время для удаления целых строк кода.
Вы знаете горячую клавишу для удаления всей строки, не помещая ее в буфер обмена?
Щелчок левой кнопкой мыши сбрасывает ваш курсор в положение, в котором он сейчас находится. Очень полезно для навигации по Visual Studio.
По умолчанию в VS есть только горизонтальное разделение, но трюк с дублированием окон позволяет использовать и вертикальное разделение.
Вертикальное выделение - это хорошо (доступно и с клавиатуры: Alt + Shift + [Ctrl] + стрелки). Но иногда мне нужно использовать Вертикальное копирование / вырезание и вставка. VS достаточно умен, чтобы правильно с этим справиться.
Также есть очень полезные функции: Go Next / Prev Scope (Alt + Down / Up), Перейти к реализации (Alt + G), но они являются частью плагина Визуальный помощник X.
В окне просмотра вы можете просмотреть текущее исключение, даже если у вас нет переменной для его хранения, добавив часы на $exception.
Я удивлен, что никто об этом еще не упомянул. Я считаю, что способность записывать и воспроизводить серию действий иногда очень и очень помогает. Например, если я применяю повторяющееся действие к нескольким строкам в текстовом файле.
Например
Ctrl + Shift + R (начать запись макроса)
выполнить серию нажатий клавиш
Ctrl + Shift + R (остановить запись макроса)
потом....
Ctrl + Shift + P (воспроизводить нажатия клавиш)
Такой подход идеален для коротких разовых манипуляций. Если что-то более сложное или понадобится более одного раза, я напишу сценарий.
Хочу воспользоваться вашим советом, чтобы быстро удалить строку! В настоящее время VS просто предоставляет горячую клавишу, чтобы разрезать строку. Ваши советы - это быстрый способ добавить временный ярлык (например, Ctrl-Shift-P).
Я также использую эти советы, чтобы быстро открыть панель «Ожидающие изменения».
Я использую это все время при очистке или форматировании файлов. Я использую это, а иногда и регулярное выражение
Я просто хотел скопировать этот код без комментариев.
Итак, уловка состоит в том, чтобы просто нажать кнопку Alt и затем выделить нужный прямоугольник (например, ниже).
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
//if (e.CommandName == "sel")
//{
// lblCat.Text = e.CommandArgument.ToString();
//}
}
В приведенном выше коде, если я хочу выбрать:
e.CommandName == "sel"
lblCat.Text = e.Comman
Затем я нажимаю клавишу ALt и выбираю прямоугольник, и строки не нужно раскомментировать.
Проверь это.
Средняя кнопка мыши. Щелчок по вкладке редактора закрывает вкладку.
Я использую это все время, когда кодирую, потому что я ищу код, а затем закрываю его («X» для закрытия довольно далеко).
Прочитав все эти чудесные (и несколько повторяющиеся) сообщения, я могу добавить кое-что, чего, по-моему, не видел:
CTRL + Z = отменить
CTRL + Y = повторить
;-)
Кроме того, не забудьте изменить сочетания клавиш! Инструменты> Параметры> Среда> Клавиатура
МНОГО вкусностей! У меня F9 == stepinto, f10 == step over и f11 == step out. Очень полезный.
Другой, не упомянутый, который я использую довольно часто (хотя у большинства людей, вероятно, есть панель инструментов с этой кнопкой): f6 == Build Solution.
Наслаждаться!
Также .. Ctrl + S, чтобы сохранить текущий файл?
Только дурак будет использовать CTRL + S для этого. Вы должны использовать CTRL + Shift + S, чтобы сохранить ВСЕ файлы! Но на самом деле это тривиально, я поставлю только те, которые используются часто.
В дополнение ко всем остальным сказал вроде:
Выбор при удерживании «Alt» .
Нажав F12 вместо правой кнопки мыши, выберите «Перейти к определению».
Сегодня если нашел что то новенькое:
В WebFroms в режиме «Дизайн» перейдите в меню «Инструменты» и выберите «Создать локальные ресурсы».
Это действительно удобно для создания многоязычных веб-приложений.
Не знаете, что вы имеете в виду под Ctrl-K-D?
@Nam: когда вы копируете какую-то форму разметки где-то еще и в прошлом в своем коде, вы теряете отступы и еще кое-что. Нажав Ctrl + K + D, он снова реорганизуется
Псевдопеременные в отладчике: http://msdn.microsoft.com/en-us/library/ms164891.aspx
$exception: позволяет избежать необходимости указывать имена исключений (и вызывать предупреждения о том, что переменная не указана).
$user: сообщает вам, какой пользователь запускает приложение ... иногда полезно при диагностике проблем с разрешениями.
Как насчет Ctrl + C, чтобы скопировать текущую строку в буфер обмена без выбора диапазона. Это оооочень ... просто и полезно.
@Wijeratna: Вы знаете, как быстро удалить / переместить вверх / вниз по строке?
Только что обнаруженные кнопки «Назад» и «Вперед» на моей мыши позволяют перемещаться назад или вперед на один документ.
Думаю, я ошибался насчет этого. Это происходит только при поиске чего-либо.
Я случайно нашел это только сейчас. Когда вы находитесь в любом месте строки и нажимаете Ctrl + Enter, он вставляет новую строку над в текущую строку и перемещает туда курсор.
Кроме того, если вы нажмете Ctrl + Shift + Enter, он вставит новую строку ниже в текущую строку и переместит туда курсор (аналогично End, Enter)
Ctrl + Shift + F вызывает диалоговое окно «Решение для поиска» и перечисляет все результаты удобным для навигации способом, вместо того, чтобы посещать каждый результат. Это не только проще в использовании, но и потому, что не влияет на настройки области поиска по умолчанию, которые вы используете при обычном поиске.
Я уверен, что все это знают, это не только VS, это можно делать практически везде. Если вы нажмете Ctrl + left arrow/right arrow, вы перейдете к следующему / последнему слову. Вы также можете Ctrl + Shift + left/right arrow для выбора целых слов за раз.
Закройте все документы, кроме вашего, щелкнув правой кнопкой мыши вкладку документа и выбрав «Закрыть все, кроме этого». Вы также можете сделать это во многих других IDE и браузерах. Небольшая функция, но я считаю, что использую ее более 10 раз в день. Эта функция была скрыта от меня много лет. Я должен сопоставить его с сочетанием клавиш: p
Ctrl + Delete удаляет все слово (вперед)
Ctrl + Backspace удаляет все слово (назад)
Следующее хорошо известно, но я ошибаюсь, говоря, что его еще нет в списке?
Ctrl + Shift + Space в круглых скобках вызова метода дает вам информацию о параметрах.
Перемещение по ссылкам на символ в VS 2010: 1. Поместите курсор на символ, чтобы выделить все ссылки. 2. Ctrl - Alt - вверх / вниз для перехода назад / к ссылке.
^ _ ^
Вы когда-нибудь хотели увидеть все реализации одного члена интерфейса? Используйте «Иерархию вызовов»!
только 2010, эта тема про 2005-2008 гг.
Вы когда-нибудь хотели найти функцию в текущем просматриваемом файле, но слишком много членов для просмотра? Нужен фильтр? Тогда вам нужно поле "Навигация". Вы активируете его Ctrl-, (запятая).
Во время отладки выберите идентификатор или выражение и перетащите его в окно просмотра. Лучше писать с нуля :)
Мне больше всего нравятся
Ctrl+E , Ctrl+C/U для настроек C#.Edit.IncreaseLineIndent/Edit.DecreaseLineIndent на TextEditor)PS: Я хочу знать, как перейти к раскрывающемуся списку участников (чуть ниже списка вкладок) с помощью клавиатуры.
+1 за функцию закладок (хотя я не думаю, что она очень скрыта:])
@michael: Я на самом деле не видел, чтобы кто-то еще использовал его, и даже я иногда об этом забываю.
Ctrl + Tab - переключение между открытыми вкладками / окнами в Visual Studio 2005 и 2008.
Вроде как Alt + Tab в Windows, выводит небольшое окно только для открытых в данный момент файлов VS.
Вот пример скриншота:
Используйте клавиши со стрелками для перехода между этими вкладками и окнами (пока вкладка нажата)
@ По умолчанию вы имеете в виду: при нажатии ctrl
Жетоны списка задач
Сконфигурированные токены списка задач извлекаются позже при открытии окна списка задач и выборе опции комментариев пользователя, при этом будут отображены все комментарии пользователей, содержащие настроенные токены.
Это будет очень полезно, например, если вы попытаетесь получить комментарии TODO.
Чтобы использовать это; Инструменты -> Параметры -> Среда -> Список задач, добавьте необходимые токены.
Установите следующий оператор, щелкнув правой кнопкой мыши представление кода во время отладки или просто перетащив желтую стрелку.
Это действительно полезно для повторной отладки части кода, которую вы недавно перешагнули, или, возможно, для изменения содержимого какой-либо переменной и повторной попытки выполнить набор операторов.
Некоторые из них, которые я знаю или не видел, размещены здесь.
Crtl + Space побуждают Intellisense завершить слово.
Настроить панель инструментов - щелкните правой кнопкой мыши на панели инструментов, чтобы вызвать всплывающее меню > Выберите элементы > Установите / снимите флажки > Хорошо.
Запустите Visual Studio без заставки. Windows + R, затем введите devenv /nosplash и нажмите Enter.
Я использую его каждый раз, когда открываю файл. И поэтому я просто ненавижу регионы.
Свернуть к определению
Ctrl + M + O
Если вы хотите разорвать строку, в которой произошло исключение, вы можете использовать CTRL + ALT + E и установить флажок для CLR в разделе Thrown Column.
Это будет работать, даже если исключение обработано пользователем.
P.S:
Я попытался опубликовать снимок экрана, но не смог, так как новым пользователям не разрешено публиковать изображения. Извини !
Вот некоторые из них, которые я еще не видел в списке:
Очень полезно при копировании / вставке жестко заданных таблиц, разнесенных для удобства чтения. Когда вы вставляете, Studio применяет форматирование, и ничего больше не выравнивается. Быстрый Ctrl-Z восстанавливает ваше хорошее выравнивание.
Спасибо! Наконец, маркер столбца 80 в VS :)