Ukryte funkcje programu Visual Studio (2005-2010)?

182

Visual Studio to tak ogromny produkt, że nawet po latach pracy z nim czasami natrafiam na nowy / lepszy sposób robienia rzeczy lub rzeczy, o których nawet nie wiedziałem, że są możliwe.

Na przykład-

  • Crtl+ R, Ctrl+, Waby pokazać białe spacje. Niezbędny do edycji skryptów kompilacji Pythona.

  • W obszarze "HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\8.0\Text Editor" Utwórz ciąg o nazwie Przewodniki o wartości „RGB (255,0,0), 80”, aby mieć czerwoną linię w kolumnie 80 w edytorze tekstu.

Na jakie inne ukryte funkcje natknąłeś się?

shoosh
źródło
Dziękuję Ci! W końcu znacznik 80 kolumn w VS :)
Jonas Gulle
dzięki. natknąłem się na „pokaż białe przestrzenie” przez przypadek i chciałem się go pozbyć. wielkie dzięki!
Arsen Zahray

Odpowiedzi:

123

Dokonaj wyboru z wciśniętym klawiszem ALT - zaznacza kwadrat tekstu zamiast całych linii.

buta
źródło
9
Ctrl-Alt wybierze całe słowa. Alt zmieni rozmiar obszaru wyboru o jeden znak na raz.
firedfly
4
Działa to również w MS Word i OO Writer. Dużo z tego korzystałem.
Bård
3
To (nazywane „wybieraniem bloku”) działa również z klawiaturą - przytrzymaj klawisze Alt + Shift, a następnie użyj klawiszy strzałek.
arolson101
1
Ponadto, jeśli wybierzesz w ten sposób pustą poziomą kolumnę, wszystko, co wpiszesz, zostanie zduplikowane w każdej linii, zachowując się jak ogromny kursor :)
Sedat Kapanoglu
1
Widziałem to sprzedawane jako funkcja dla VS 2010, ale właśnie wypróbowałem to w VS 2008 i zadziałało. Jestem oszołomiony. jest to niezwykle przydatne!
DaveDev,
95

Tracepoints!

Umieść punkt przerwania w wierszu kodu. Wyświetl okno punktów przerwania i kliknij prawym przyciskiem myszy nowy punkt przerwania. Wybierz „Po trafieniu ...”. Zaznaczając pole wyboru „Drukuj wiadomość” Visual Studio będzie drukować komunikat na wyjściu debugowania za każdym razem, gdy wykonywany jest wiersz kodu, zamiast (lub również) jego zerwania. Możesz również go uruchomić, aby wykonać makro przechodzące przez linię.

Charles Anderson
źródło
1
Wiem, że jestem spóźniony do gry, ale to świetna funkcja, o której nigdy nie wiedziałem!
Jerry,
7
Aby uzyskać dodatkowe punkty, możesz przypisać zmienną lokalną do przycisku po naciśnięciu. {localVariable = 1.0f} lub zwiększ wartości o {staticVariable + = 0.1f}
Charles Beattie
91

Możesz przeciągnąć kod do ToolBox. Spróbuj!

jfs
źródło
Cholera jasna, więc możesz! (Dzięki!)
Ali Parr
wydaje się, że nie nadaje się zbyt dobrze do urywków
jk.
33
Dobry Boże ... to zupełnie nowy poziom kopiowania i wklejania. Skopiuj i wklej-wklej-wklej. Znam wielu programistów, którzy, mam nadzieję, nigdy nie dowiedzą się, że możesz to zrobić.
Ryan Lundy,
Byłoby fajnie, gdybyś mógł polecić ewaluację kodu po kliknięciu przycisku, tak jak bookmarklet.
intuicyjnie
o nie. Co robi ta drańska funkcja!
79

Kliknij identyfikator (nazwę klasy, zmienną itp.), A następnie naciśnij F12„Przejdź do definicji”. Zawsze jestem zaskoczony, ile osób oglądam kod, używając wolniejszego kliknięcia prawym przyciskiem myszy -> „Przejdź do definicji”.

EDYCJA: Następnie możesz użyć Ctrl+, -aby wrócić do miejsca, w którym byłeś.

Craig
źródło
8
I nie zapomnij Ctrl + Shift + - [shift shift minus], aby przejść do przodu!
Kevin Pullin
5
I Shift F12 dla Znajdź wszystkie referencje
Benjol
2
Możesz także użyć ALT + strzałka w lewo, aby wrócić do miejsca, w którym byłeś
arolson101 16.10.2009
1
Przy ustawieniach klucza VB Shift-F2 wykonuje także przejście do definicji.
Ryan Lundy,
1
Może również kliknąć prawym przyciskiem myszy G, jeśli wybierasz się myszą.
tsilb
57

CTRL + SHIFT + V będzie cyklicznie przechodził przez Twój schowek, Visual Studio przechowuje historię kopii.

sontek
źródło
można to znaleźć w edit.cycleclipboardring w mapowaniach klawiatury (w wizualnym c ++ to Ctrl-Shift-Insert, a nie Ctrl-Shift-V)
Domyślnie
52

Sara Ford zawiera wiele wspaniałych wskazówek: http://blogs.msdn.com/saraford/archive/tags/Visual+Studio+2008+Tip+of+the+Day/default.aspx

Ale niektóre z moich ulubionych to Snippets Code Ctrl+, .aby dodać using<Namespace> lub wygenerować kod pośredniczący metody. Nie mogę bez tego żyć.

Sprawdź świetną listę w plakacie skrótów klawiszowych Visual Studio 2008 C #: http://www.microsoft.com/downloadS/details.aspx?familyid=E5F902A8-5BB5-4CC6-907E-472809749973&displaylang=en

Slace
źródło
1
Sara Ford jest boginią Visual Studio. Nie mogłem jej wystarczająco polecić.
Chris Charabaruk,
Całkowicie zgadzam się, dlaczego ja dzielę się jej pracą. Naprawdę uwielbiam jej obecną serię, która obejmuje debugowanie
Aaron Powell,
Smutne, że przestała robić napiwek dnia, choć minęło tak dużo czasu, odkąd pracowała z wnętrznościami VS, że jest całkowicie zrozumiałe, że musiała iść dalej ...
Knobloch
Dziękujemy za wzmiankę o CTRL +. Właśnie tego szukałem.
Sorin Comanescu,
Zawsze używałem CTRL + ALT + F10. Nie znałem CTRL +. robi to samo - dzięki. O wiele wygodniejszy.
Noam Gal
49
CTRL-K, CTRL-D

Sformatuj dokument!
To jest pod skrótami klawiszowymi VB, nie jestem pewien co do C #

Mark Glorie
źródło
3
tak, działa pod C #, Web Designer, edytor XML, edytor CSS, edytor XSD, JavaScript (do pewnego stopnia). Większość obsługiwanych typów plików
Aaron Powell,
8
Ctrk-K, Ctrl-F dla C ++
MSalters
7
Używam Ctrl-E, Ctrl-D
konfigurator
Ctrl + K, Ctrl + F formatuje również dowolny wybrany tekst (w C #, nie jestem pewien co do innych).
Zann Anderson
43

Ile razy debugujesz tablicę w szybkim zegarku lub oknie zegarka i tylko studio graficzne pokazuje ci pierwszy element? Dodaj „, N” na końcu definicji, aby studio pokazywało Ci także kolejne N elementów. IE „this-> m_myArray” zmienia się na „this-> m_array, 5”.

tenpn
źródło
41

Wyszukiwanie przyrostowe: mając otwarty dokument źródłowy, naciśnij (CTRL + I) i wpisz szukane słowo, możesz ponownie nacisnąć (CTRL + I), aby zobaczyć słowa pasujące do wprowadzonego tekstu.

Leyu
źródło
4
Nazywa się to „> i <ncremental search”.
Constantin,
W przeciwieństwie do> ex <wyszukiwanie kreacji, które implementuje Firefox.
kibibu
Pochodzący ze świata Emacsa to pierwsza funkcja, której szukałem. :)
JesperE
37

Możesz użyć następujących kodów w oknie zegarka.

@err - display last error
@err,hr - display last error as an HRESULT
@exception - display current exception
Ferruccio
źródło
35
  • Ctrl-K, Ctrl-C, aby skomentować blok tekstu za pomocą // na początku
  • Ctrl-K, Ctrl-U, aby odkomentować blok tekstu za pomocą // na początku

Nie da się bez tego żyć! :)

Thomas Bratt
źródło
Dotyczy to również VB.NET, z wyjątkiem „zamiast //”
ChrisA
Dotyczy to również SQL Server Management Studio, z wyjątkiem sekwencji ucieczki komentarzy SQL „-”
Thomas Bratt
3
Zawsze chciałem, żebyś mógł przełączać komentarze? Dlaczego chcesz coś „podwójnie komentować”? Z pewnością ponowne naciśnięcie powinno anulować komentarz ...
Dan Diplo,
16
Czasami chcesz skomentować całą funkcję, a niektóre wiersze wewnątrz są już skomentowane (tj. Są to właściwe komentarze). W takich przypadkach nie jest oczywiste, co zrobić, jeśli masz przełącznik, więc ogólnie lepiej jest wyraźnie wyrazić decyzję.
Pavel Minaev,
1
Zauważ, że jeśli zaczniesz na początku tekstu, a nie na początku linii, otrzymasz / * * / zamiast //. Jest to przy okazji moja najczęściej używana funkcja
domyślnie
25

Zatrzymywanie debugera przed wejściem w trywialne funkcje.

Podczas przechodzenia przez kod w debuggerze możesz spędzić dużo czasu wchodząc i wychodząc z funkcji, które nie są szczególnie zainteresowane, z nazwami takimi jak GetID () lub std :: vector <> (), wybrać przykład w C ++. Możesz użyć rejestru, aby debugger zignorował je.

W przypadku programu Visual Studio 2005 należy przejść do HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ VisualStudio \ 8.0 \ NativeDE \ StepOver i dodać wartości ciągów zawierające wyrażenia regularne dla każdej funkcji lub zestawu funkcji, które chcesz wykluczyć; na przykład

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

Możesz również zastąpić je dla indywidualnych wyjątków. Załóżmy na przykład, że chciałeś wejść w destruktor klasy wektorowej:

std :: vector. * :: \ ~. * = StepInto

Szczegółowe informacje na temat innych wersji programu Visual Studio można znaleźć na stronie http://blogs.msdn.com/andypennell/archive/2004/02/06/69004.aspx

Charles Anderson
źródło
Wow, to jest niesamowite. Nie miałem pojęcia, że ​​to możliwe.
j_random_hacker
23

Ctrl-F10 : uruchom kursor podczas debugowania. Zajęło mi to całe wieki, aby to znaleźć i używam tego cały czas;

Ctrl-E, Ctrl-D : zastosuj standardowe formatowanie (które możesz zdefiniować).

Joel in Gö
źródło
1
Ctrl + Shift + F10, aby pominąć cały kod i uruchomić kursor. Sprytne, gdy próbujesz przetestować określone wiersze kodu.
Samuel Slade
23

Kluczowa funkcja TAB .

  1. Jeśli znasz nazwę klucza fragmentu, napisz i kliknij dwukrotnie Tab. na przykład: Napisz

    foreach

a następnie kliknij dwukrotnie klawisz Tab, aby

foreach (object var in collection_to_loop)
{

}

2. Jeśli napiszesz jakieś wydarzenie, napisz tutaj

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

a następnie kliknij dwukrotnie klawisz Tab, aby

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.");
}

Funkcja btn_Click pisze automatycznie

  1. w Edytorze XAML Napisz dowolne wydarzenie. na przykład:

MouseLeftButtonDownnastępnie kliknij tab,
MouseLeftButtonDown=""a następnie kliknij tab ponownie MouseLeftButtonDown="Button_MouseLeftButtonDown"w Button_MouseLeftButtonDownutworzonej metodzie sekcji kodu .

ebattulga
źródło
21

Sara Ford opanowała ten rynek.

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

Więcej wskazówek i trików Visual Studio, niż można potrząsnąć kijem.

Jacyś inni:

  • 3-miesięczne wersje próbne Visual Studio 2005 i 2008 są w pełni funkcjonalne i mogą być używane w nieskończoność (na zawsze) poprzez cofnięcie zegara systemowego przed otwarciem VS. Następnie, po otwarciu VS, ustaw ponownie zegar systemowy do przodu, aby twoje czasy danych nie były pomieszane.
  • Ale to naprawdę piractwo i nie mogę tego polecić, zwłaszcza gdy ktoś z adresem .edu może uzyskać w pełni funkcjonalną wersję Pro VS2008 za pośrednictwem Microsoft Dreamspark .
  • Za pomocą programu Visual Studio można otwierać pliki wykonywalne innych firm i przeglądać osadzone zasoby (okna dialogowe, tabele ciągów, obrazy itp.).
  • Wizualizatory debugujące nie są dokładnie funkcją „ukrytą”, ale są nieco zaniedbywane i bardzo przydatne, ponieważ oprócz korzystania z dostarczonych wizualizatorów można tworzyć własne dla określonych zestawów danych.
  • Polecenie debugera „Ustaw instrukcję” lub „Ustaw następną instrukcję”.
  • Warunkowe punkty przerwania (jak zauważył KiwiBastard).
  • Możesz użyć Quickwatch itp., Aby ocenić nie tylko wartość zmiennej, ale także wyrażenia środowiska wykonawczego wokół tej zmiennej.
użytkownik2189331
źródło
3
Jeśli to naprawdę piractwo (o czym się z tobą zgadzam), to dlaczego w ogóle o tym wspominasz?
Ryan Lundy,
1
Kyralessa, ponieważ niektórzy prawdopodobnie nie dbają o to. Jednak biorąc pod uwagę, że wersje Express są bezpłatne, wątpię, aby istniał obecnie rzeczywisty powód, aby używać pirackiej wersji VS.
Joey,
17

Niestandardowa wysokość listy rozwijanej IntelliSense , na przykład wyświetlająca 50 pozycji zamiast domyślnej, która jest śmiesznie mała przez IMO (8).

(Aby to zrobić, zmień rozmiar listy rozwijanej następnym razem, gdy ją zobaczysz, a Visual Studio zapamięta rozmiar wybrany przy następnym otwarciu listy rozwijanej).

Brann
źródło
4
Nie można już zmienić jego rozmiaru w VS2010, to mnie błogie bez końca.
manixrock
w Vs2008 jestem w stanie zmienić szerokość, ale nie wysokość.
Kapil,
16

Odkryte dzisiaj:

Ctrl + .

Wyświetla menu kontekstowe do refaktoryzacji (wtedy takie, które jest dostępne poprzez podkreśloną ostatnią literę klasy / metody / właściwości, której właśnie zmieniono nazwę - najedź myszką na menu lub „Ctrl” + „.”)

Muxa
źródło
Alt + Shift + F10 również to robi (przy użyciu
skrótów
4
Znacznie lepiej niż próbować złapać cel małego kliknięcia myszką w tej sytuacji
Richard Ev,
14

Wiele osób nie zna ani nie korzysta w pełni z debuggera - IE po prostu użyj go, aby zatrzymać kod, ale kliknij prawym przyciskiem myszy na czerwone kółko i jest o wiele więcej opcji, takich jak przerwa pod warunkiem, uruchom kod po przerwie.

Możesz również zmieniać wartości zmiennych w czasie wykonywania za pomocą debugera, który jest świetną funkcją - oszczędza kod ponownego uruchamiania, aby naprawić głupi błąd logiczny itp.

JamesSugrue
źródło
13

Transpozycja linii, Shift-Alt-T
Zamienia dwie linie (bieżącą i następną) i przenosi kursor do następnej linii. Uwielbiam to. Napisałem nawet makro, które ponownie zmieniło pozycję o jedną linię, wykonało transpozycję linii i ponownie zmieniło pozycję linii, więc wszystko wygląda tak, jakbym zamienił bieżącą linię z poprzednią (transpozycja linii odwrotnej).

Słowo transponowane, Shift-Ctrl-T

okutane
źródło
To powoduje, że linia przesuwa się w dół strony, jak zrobić linię w górę strony?
Alex Baranosky,
GordonG, napisałem następujące makro: Sub ReverseLineTranspose () DTE.ActiveDocument.Selection.LineUp DTE.ExecuteCommand („Edit.LineTranspose”) DTE.ActiveDocument.Selection.LineUp End Sub
okutane
1
Mogłoby się z tym zrobić tutaj, jak się okazuje :)
Benjol,
11

Podczas programowania C ++, Ctrl-F7 kompiluje tylko bieżący plik.

Sakin
źródło
11

Zarys dokumentu w formularzu FormsDesigner ( CTRL + ALT + T )

Szybka zmiana nazwy, zamówienia i wiele więcej!

Pondidum
źródło
Nie mogę uwierzyć, że o tym nie wiedziałem. Moje życie się zmieniło.
HipsterZipster,
11

Aby automatycznie zsynchronizować bieżący plik za pomocą Eksploratora rozwiązań. Więc nie musisz patrzeć, gdzie plik znajduje się w strukturze projektu

Narzędzia -> Opcje -> Projekty i rozwiązania -> „Śledź aktywny element w Eksploratorze rozwiązań”

Edycja: Jeśli stanie się to dla ciebie zbyt denerwujące, możesz użyć makra Dana Vanderbooma, aby wywołać tę funkcję na żądanie przez naciśnięcie klawisza.

(Uwaga: pochodzi z komentarza Jerry'ego poniżej).

SDX2000
źródło
3
to po pewnym czasie staje się denerwujące. szkoda, że ​​nie było skrótu klawiaturowego, aby to zrobić na żądanie.
kenwarner
2
Oto post dotyczący śledzenia na żądanie. dvanderboom.wordpress.com/2008/03/21/…
Jerry
Jeśli masz otwartych wiele plików, może zabić VS (bez ostrzeżenia), jeśli wykonasz takie czynności, jak „Zamknij wszystko oprócz tego” (myślę, że z PowerCommands).
Benjol,
Resharper sprawia, że ​​jest to konieczne, ponieważ można zrobić Shift + Alt + L, aby przejść bezpośrednio do bieżącego pliku w Eksploratorze rozwiązań; lub Ctrl + Shift + N, aby wyszukać słowo kluczowe dowolnego pliku w Rozwiązaniu.
cbp
9

Nie jestem pewien, czy jest „ukryty”, ale niewiele osób o nim wie - pseudoregulatorów . Jest bardzo przydatny podczas debugowania, mam @ERR, cały czas w moim oknie zegarka.

yrp
źródło
1
Słyszałem, że @xxx jest wycofywany na korzyść $ xxx. FWIW, WinDbg używa również formularza $ xxx.
Constantin,
Nie możesz po prostu zrobić „hr, hr” w oknie zegarka? Używałem tego od samego początku w VC6 ...
LarryF,
Doskonały. Jak sugeruje linkowany artykuł, ustawienie warunkowych punktów przerwania na @TIB radykalnie uprości debugowanie aplikacji wielowątkowych.
j_random_hacker
9

Ctrl-Minus, Ctrl-Plus, nawiguje tam i z powrotem tam, gdzie ostatnio byłeś (tylko otwarte pliki).

Ilya Ryzhenkov
źródło
Tak, UWIELBIAM je - używaj ich codziennie.
MaseBase
Bardzo przydatne, jeśli naciśniesz F + 12, aby przejść do definicji, a następnie chcesz wrócić do miejsca, w którym byłeś.
Thomas Bratt
9

Nie używam go często, ale uwielbiam:

ctrl-alt + mouse select

Aby wybrać blok prostokątny, aby „zablokować” granice.

Jak zauważono w komentarzach,

alt + mouse select

Czy zwykły prostokątny blok.

Południe jedwabiu
źródło
4
Downvote jest zabawne, biorąc pod uwagę, że jest to prawidłowa akcja w VS :) Powodzenia, tajemniczy hejterze.
południe Silk
2
Może to trochę za wcześnie, ale przeczytanie tego zmusiło mnie do wypróbowania go w przeglądarce Firefox. Okazuje się, że ctrl-alt-shift pozwala przeciągać cały dokument po ekranie za pomocą myszy, podobnie jak działa dokument PDF.
KdgDev,
Czym różni się od Alt + Mouse Select?
Guffa,
Guffa: Chodzi tylko o zakończenia bloków. Alt-select pozwala wybrać dowolny obszar zawierający wszystko. Oni są różni.
południe Silk
Chociaż myślę, że może to być po prostu „ctrl-alt”, a nie „shift”.
południe Silk
9

Oto coś, czego się nauczyłem (dla C #):

Możesz przesunąć kursor do otwierającego nawiasu klamrowego z zamykającego nawiasu klamrowego, naciskając Control +].

Nauczyłem się tego na SO, który jest duplikatem tego:

„Ukryte sekrety” debugera Visual Studio .NET?

Jay Riggs
źródło
8

CTRL + Shift + U -> Podświetlona sekcja wielkich liter. CTRL + U -> Mała podświetlona sekcja Świetnie nadaje się do tego, aby moje instrukcje SQL wyglądały dobrze podczas wstawiania ich do zapytań łańcuchowych.

Przydatny również w przypadku kodu znalezionego online, w którym WSZYSTKO JEST W KAPSUŁCE.

Obrabować
źródło
2
Szkoda, że ​​nie mają opcji CamelCase CTRL + Shift ... :) To chyba mój pierwszy refaktor, który robię, kiedy przejmuję projekt ... Larry
LarryF
8

Środkowy przycisk myszy Kliknij kartę edytora, aby zamknąć kartę.

Kevin Driedger
źródło
1
Używam tego cały czas, gdy koduję, ponieważ szukam kodu, a następnie go zamykam („X” dla zamykania jest dość daleko).
Kevin Driedger
8

Aby wyświetlić dowolny fragment danych jako n-bajtową „tablicę”, użyj następującej składni w oknie QuickWatch programu Visual Studio:

variable, n

Na przykład, aby wyświetlić zmienną o nazwie foojako 256-bajtowa tablica, wprowadź następujące wyrażenie w oknie QuickWatch:

foo, 256

Jest to szczególnie przydatne podczas przeglądania ciągów, które nie są zakończone zerem lub danych, które są dostępne tylko za pomocą wskaźnika. Możesz użyć okna Pamięć programu Visual Studio, aby uzyskać podobny wynik, ale korzystanie z okna QuickWatch jest często wygodniejsze w celu szybkiego sprawdzenia.

Emerick Rogul
źródło