Visual Studio의 숨겨진 기능 (2005-2010)?


182

Visual Studio는 매우 큰 제품으로 수년간의 작업을 거친 후에도 때로는 알지 못했던 일이나 일을 할 수있는 새로운 방법을 발견했습니다.

예를 들어

  • Crtl+ R, Ctrl+ W는 공백을 표시합니다. Python 빌드 스크립트를 편집하는 데 필수적입니다.

  • 에서 "HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\8.0\Text Editor" 생성 문자열라는 가이드 텍스트 편집기에서 열 (80)에서 레드 라인을 가지고 값 "RGB (255,0,0), 80"과 함께합니다.

다른 숨겨진 기능은 무엇입니까?


감사합니다! 마지막으로 VS에서 80 열 마커 :)
Jonas Gulle

감사. 실제로, 나는 우연히 "백색 공백 표시"에 걸려서 그것을 제거하고 싶었다. 고마워요!
아르센 자 레이

답변:


123

Alt 키를 누른 채로 선택-전체 줄 대신 텍스트의 제곱을 선택합니다.


9
Ctrl-Alt는 전체 단어를 선택합니다. Alt는 선택 영역의 크기를 한 번에 한 문자 씩 변경합니다.
firedfly

4
이것은 MS Word 및 OO Writer에서도 작동합니다. 나는 그것을 많이 사용했습니다.
Bård

3
이 기능 ( "블록 선택"이라고도 함)은 키보드 홀드 alt + shift와 함께 작동 한 다음 화살표 키를 사용합니다.
arolson101

1
또한이 방법으로 빈 가로 열을 선택하면 입력 한 모든 항목이 모든 커서에 복제되어 큰 커서처럼 작동합니다.
Sedat Kapanoglu

1
나는 이것이 VS 2010의 기능 으로 판매 되는 것을 보았지만 VS 2008에서 방금 시도해 보았습니다. 나는 깜짝 놀랐다. 이것은 놀랍게도 유용합니다!
DaveDev

95

추적 점!

코드 줄에 중단 점을 둡니다. 중단 점 창을 열고 새 중단 점을 마우스 오른쪽 단추로 클릭하십시오. '히트시 ...'를 선택하십시오. '메시지 인쇄'확인란을 선택하면 Visual Studio는 코드 줄을 실행할 때마다 (또는 중단하지 않고) 디버그 출력에 메시지를 인쇄합니다. 줄을 통과 할 때 매크로를 실행하도록 할 수도 있습니다.


1
나는 게임에 늦었다는 것을 알고 있지만, 내가 알지 못했던 훌륭한 기능입니다!
Jerry

7
추가 점수를 얻으려면 when hit 버튼에서 지역 변수를 지정할 수 있습니다. {localVariable = 1.0f} 또는 {staticVariable + = 0.1f} 증가
Charles Beattie

91

코드를 ToolBox로 드래그 할 수 있습니다. 시도 해봐!


당신이 할 수있는 거룩한 쓰레기! (감사합니다!)
Ali Parr

그래도 스 니펫보다 많이 사용되지 않는 것 같습니다
jk.

33
사랑하는 하나님 ... 그것은 완전히 새로운 수준의 복사하여 붙여 넣기입니다. 복사하여 붙여 넣기 붙여 넣기 붙여 넣기. 나는 당신이 이것을 할 수 있다는 것을 결코 알기를 희망하는 많은 프로그래머를 알고 있습니다.
Ryan Lundy

북마크를 비롯해 버튼을 클릭 할 때 코드를 평가하도록 지시하면 멋질 것입니다.
intuited

아뇨 이 자식 기능은 무엇입니까!

79

식별자 (클래스 이름, 변수 등)를 클릭 한 다음 F12 "정의로 이동" . 코드를 느리게 마우스 오른쪽 버튼으로 클릭하여 "정의로 이동"방법을 사용하는 사람이 몇 명인지 항상 놀랐습니다.

편집 : 그런 다음 Ctrl+ -를 사용 하여 원래 위치로 돌아갈 수 있습니다 .


8
그리고 앞으로 이동하려면 Ctrl + Shift +-[control shift 마이너스]를 잊지 마십시오!
Kevin Pullin

5
모든 참조를 찾기위한 Shift F12
Benjol

2
당신은 또한 당신이 어디 있었로 돌아가하려면 Alt + 왼쪽 화살표를 사용할 수 있습니다
arolson101

1
VB 키 설정을 사용하면 Shift-F2도 정의로 이동을 수행합니다.
Ryan Lundy

1
마우스 라우트를 먼저 갈 경우 마우스 오른쪽 버튼을 클릭 (G) 할 수도 있습니다.
tsilb

57

Ctrl + Shift + V는 클립 보드를 순환하며 Visual Studio는 복사 기록을 유지합니다.


이것은 키보드 매핑의 edit.cycleclipboardring에서 찾을 수 있습니다 (시각적 C ++에서는 Ctrl-Shift-V가 아니라 Ctrl-Shift-Insert입니다)
기본값

52

사라 포드 (Sara Ford)는 많은 멋진 팁을 다룹니다 : http://blogs.msdn.com/saraford/archive/tags/Visual+Studio+2008+Tip+of+the+Day/default.aspx

하지만 내 즐겨 찾기 중 일부는 코드 조각이있는 Ctrl+ .a를 위해using <Namespace> 하거나 메소드 스텁을 생성하는 입니다. 그것 없이는 살 수 없습니다.

Visual Studio 2008 C # 키 바인딩 포스터에서 훌륭한 목록을 확인하십시오. http://www.microsoft.com/downloadS/details.aspx?familyid=E5F902A8-5BB5-4CC6-907E-472809749973&displaylang=en


1
Sara Ford는 Visual Studio의 여신입니다. 나는 그녀를 충분히 추천 할 수 없었다.
Chris Charabaruk

내가 왜 그녀의 작품을 공유하는지에 동의합니다. 디버깅을 다루는 현재 시리즈를 좋아합니다
Aaron Powell

그녀는 오늘의 팁을 그만두고 슬프지만, 그녀는 VS의 내부와 함께 일한 지 너무 오래되어서 계속 움직여야 할 완전히 이해할 수 있었지만 ...
Knobloch February

CTRL +를 언급 해 주셔서 감사합니다. 나는 이것을 정확하게 찾고있었습니다.
Sorin Comanescu

항상 CTRL + ALT + F10을 사용하고있었습니다. CTRL +를 몰랐습니다. 같은 일을합니다-감사합니다. 훨씬 더 편안합니다.
Noam Gal

49
CTRL-K, CTRL-D

문서를 다시 포맷하십시오!
이것은 VB 키 바인딩에 있으며 C #에 대해서는 확실하지 않습니다.


3
예, C #, 웹 디자이너, XML 편집기, CSS 편집기, XSD 편집기, JavaScript (범위)에서 작동합니다. 지원되는 파일 형식의 대부분
Aaron Powell

8
Ctrk-K, C ++ 용 Ctrl-F
MSalters

7
저는 Ctrl-E, Ctrl-D를 사용합니다
구성자

Ctrl + K, Ctrl + F는 선택한 텍스트를 C #에서 다른 텍스트에 대해서는 확실하지 않은 형식으로 지정합니다.
Zann Anderson

43

퀵 워치 또는 조사 식 창에서 배열을 몇 번 디버깅하고 Visual Studio에서 첫 번째 요소 만 표시합니까? 정의의 끝에 ", N"을 추가하면 studio에서 다음 N 항목도 표시 할 수 있습니다. IE "this-> m_myArray"는 "this-> m_array, 5"가됩니다.


41

증분 검색 : 소스 문서 열기 (CTRL + I)를 누른 상태에서 검색중인 단어를 입력하면 (CTRL + I)을 다시 눌러 입력 내용과 일치하는 단어를 볼 수 있습니다.


4
"> i <크리 멘탈 검색"이라고합니다.
Constantin

Firefox가 구현하는> ex <cremental search와는 반대로.
kibibu

이맥스 세계에서 온이 제품은 제가 찾은 첫 번째 기능입니다. :)
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 관리 Studio에서 또한 사실의 SQL 주석 이스케이프 시퀀스를 사용하여 제외 '-'
토마스 브랫

3
난 항상 당신이 의견을 토글 할 수 있었으면 좋겠다? 왜 "이중 댓글"을 하시겠습니까? 다시 눌러야 주석 처리를 제거해야합니다.
Dan Diplo

16
때로는 전체 기능에 주석을 달고 내부의 일부 행은 이미 주석 처리되어 있습니다 (즉, 적절한 주석). 이러한 경우 토글이있는 경우 수행 할 작업이 확실하지 않으므로 일반적으로 결정을 명확하게하는 것이 좋습니다.
Pavel Minaev

1
줄의 시작이 아니라 텍스트의 시작에서 시작하면 // 대신 / * * /가 표시됩니다. 이것은 내가 가장 많이 사용하는 기능입니다
기본값

25

디버거가 사소한 기능을 수행하는 것을 중지합니다.

디버거에서 코드를 단계별로 실행할 때 특히 관심이없는 함수를 가져오고 나가는 데 많은 시간을 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 에서 확인할 수 있습니다.


와, 대단해. 나는 이것이 가능하다는 것을 몰랐다.
j_random_hacker

23

Ctrl-F10 : 디버깅 중에 커서를 실행합니다. 나는 이것을 찾기 위해 나이를 먹었고, 나는 그것을 항상 사용한다.

Ctrl-E, Ctrl-D : 표준 형식을 적용합니다 (정의 할 수 있음).


1
모든 코드를 건너 뛰고 커서를 실행하려면 Ctrl + Shift + F10누르십시오 . 특정 코드 줄을 테스트하려고 할 때 좋습니다.
Samuel Slade

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

사라 포드 (Sara Ford)는이 시장이 우위에있다.

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

스틱을 흔들 수있는 것보다 더 많은 Visual Studio 팁과 요령.

다른 사람들 :

  • Visual Studio 2005 및 2008 3 개월 평가판은 완벽하게 작동하며 VS를 열기 전에 시스템 시계를 다시 설정하여 무한정 사용할 수 있습니다 . 그런 다음 VS가 열리면 날짜 시간이 고정되지 않도록 시스템 시계를 다시 앞으로 설정하십시오.
  • 그러나 그것은 정말 불법 복제이며, 특히 .edu 주소를 가진 사람이 Microsoft Dreamspark를 통해 VS2008의 모든 기능을 갖춘 Pro 버전을 얻을 수있는 경우에는 추천 할 수 없습니다 .
  • Visual Studio를 사용하여 타사 실행 파일을 열고 그 안에 저장된 포함 된 리소스 (대화 상자, 문자열 테이블, 이미지 등)를 찾아 볼 수 있습니다.
  • 제공된 비주얼 라이저를 사용하는 것 외에도 사용자가 직접 롤링 할 수 있기 때문에 디버깅 비주얼 라이저는 정확히 "숨겨진"기능은 아니지만 다소 무시되고 매우 유용합니다. 특정 데이터 세트에 대해 합니다.
  • 디버거의 "명령 포인터 설정"또는 "다음 명령문 설정"명령.
  • 조건부 중단 점 (KiwiBastard에서 언급 한대로).
  • Quickwatch 등을 사용하여 변수의 값뿐만 아니라 해당 변수 주위의 런타임 표현식을 평가할 수 있습니다.

3
그것이 실제로 불법 복제 (내가 당신에게 동의하는 경우)라면 왜 언급하겠습니까?
Ryan Lundy

1
Kyralessa, 아마 어떤 사람들은 신경 쓰지 않기 때문입니다. 그러나 Express 버전이 무료이기 때문에 요즘 불법 복제 된 VS 버전을 사용해야하는 실제 이유가 의심됩니다.
Joey


17

사용자 지정 IntelliSense 드롭 다운 높이 ( 예 : IMO는 엄청나게 작은 기본값 (8) 대신 50 개 항목 표시)

이렇게하려면 다음에 드롭 다운을 볼 때 크기를 조정하면 다음에 드롭 다운을 열 때 선택한 크기가 Visual Studio에서 기억됩니다.


4
VS2010에서는 더 이상 크기를 조정할 수 없으므로 끝이 없습니다.
manixrock

Vs2008에서는 너비를 변경할 수 있지만 높이는 변경할 수 없습니다.
Kapil

16

오늘 발견 :

Ctrl + .

리팩토링을위한 컨텍스트 메뉴를 불러옵니다 (방금 이름을 바꾼 클래스 / 방법 / 속성의 밑줄 친 마지막 글자를 통해 액세스 할 수있는 메뉴- "Ctrl"+ ".")


Alt + Shift + F10이 아니라 (사용 C # 1 키 바인딩)을 수행
카일 Trauberman에게

4
이 상황에서 작은 마우스 클릭 대상을 사냥하는 것보다 훨씬 낫습니다
Richard Ev

14

많은 사람들이 디버거를 알지 못하거나 최대한 활용합니다 .IE는 코드를 중지하는 데 사용하지만 빨간색 원을 마우스 오른쪽 버튼으로 클릭하면 조건에 따라 중단, 중단시 코드 실행과 같은 훨씬 더 많은 옵션이 있습니다.

또한 훌륭한 기능 인 디버거를 사용하여 런타임에 변수 값을 변경할 수 있습니다. 재실행 코드를 저장하여 바보 같은 논리 오류를 수정합니다.


13

줄 바꿈, Shift-Alt-T
두 줄 (현재와 다음)을 바꾸고 커서를 다음 줄로 이동합니다. 나 이거 너무 좋아. 나는 한 줄씩 다시 위치를 변경하고 줄 바꿈을 실행하고 다시 줄 위치를 변경하여 현재 줄을 이전 (역 줄 바꿈)과 바꾸는 것처럼 보이는 매크로를 작성했습니다.

단어 조옮김, Shift-Ctrl-T


그러면 선이 페이지 아래로 이동합니다. 어떻게 선을 페이지 위로 이동합니까?
Alex Baranosky

GordonG, 나는 다음 매크로를 작성했습니다 : Sub ReverseLineTranspose () DTE.ActiveDocument.Selection.LineUp DTE.ExecuteCommand ( "Edit.LineTranspose") DTE.ActiveDocument.Selection.LineUp End Sub
okutane

1
그것으로 밝혀 질 수 있습니다 :)
Benjol

11

C ++를 개발할 때 Ctrl-F7은 현재 파일 만 컴파일합니다.


11

FormsDesigner의 문서 개요 ( CTRL + ALT + T )

빠른 제어 이름 변경, 주문 등!


나는 이것에 대해 몰랐다는 것을 믿을 수 없다. 내 인생이 바뀐다.
HipsterZipster

11

솔루션 탐색기와 현재 파일을 자동 동기화합니다. 따라서 프로젝트 구조에서 파일이 어디에 있는지 볼 필요가 없습니다.

도구-> 옵션-> 프로젝트 및 솔루션-> "솔루션 탐색기에서 활성 항목 추적"

편집 : 이것이 너무 성가신 경우 Dan Vanderboom의 매크로를 사용 하여 키 입력을 통해 필요에 따라이 기능을 호출 할 수 있습니다 .

(참고 : Jerry의 아래 코멘트에서 발췌).


3
이것은 잠시 후 성가신 것입니다. 주문형 키보드 단축키가 있었으면 좋겠다.
kenwarner

2
주문형 추적 방법에 대한 게시물입니다. dvanderboom.wordpress.com/2008/03/21/…
Jerry

많은 파일이 열려있는 경우 'PowerCommands의 모든 것을 닫습니다'와 같은 작업을 수행하면 경고없이 VS를 죽일 수 있습니다 (PowerCommands에서)
Benjol September

솔루션 탐색기에서 Shift + Alt + L을 사용하여 현재 파일로 직접 이동할 수 있으므로 Resharper는이 중복을 필요로합니다. 또는 솔루션에서 파일을 키워드로 검색하려면 Ctrl + Shift + N을 누르십시오.
cbp

9

"숨겨진"것인지 확실하지 않지만 많은 사람들이 그것에 대해 알지 못합니다. pseudoregisters을 . 디버깅 할 때 항상 @ERR, hr을 감시 할 때 매우 편리합니다.


1
@xxx가 $ xxx에 찬성하여 단계적으로 폐지되고 있다고 들었습니다. FWIW, WinDbg는 또한 $ xxx 형식을 사용합니다.
Constantin

감시 창에서 "hr, hr"만 할 수 없습니까? 나는 그것을 VC6에서 다시 사용했습니다 ...
LarryF

우수한. 링크 된 기사에서 알 수 있듯이 @TIB에서 조건부 중단 점을 설정하면 다중 스레드 앱의 디버깅이 대폭 간소화됩니다.
j_random_hacker

9

Ctrl-Minus, Ctrl-Plus는 최근에 있었던 위치를 앞뒤로 탐색합니다 (단, 열린 파일 만 해당).


그렇습니다, 이것을 사랑하십시오-매일 사용하십시오.
MaseBase

F + 12를 눌러 정의로 이동 한 다음 원래 위치로 돌아 가려고 할 때 매우 유용합니다.
Thomas Bratt

9

자주 사용하지는 않지만 사랑합니다.

ctrl-alt + mouse select

직사각형 블록에서 선택하여 경계를 '차단'합니다.

의견에서 언급했듯이

alt + mouse select

일반 직사각형 블록 만 수행합니다.


4
이것이 VS에서 유효한 행동이라는 점을 감안할 때 downvote가 재미 있습니다. :) 당신에게 행운을 빕니다.
정오 실크

2
어쩌면 조금 빠르지 만 이것을 읽으면 Firefox에서 시도하고 싶었습니다. ctrl-alt-shift를 사용하면 PDF 문서의 작동 방식과 유사하게 마우스를 사용하여 전체 문서를 화면에서 끌 수 있습니다.
KdgDev

Alt + 마우스 선택과 어떻게 다릅니 까?
구파

구파 : 블록 엔딩에만 적용됩니다. alt-select를 사용하면 무엇이든 포함하는 영역을 선택할 수 있습니다. 그들은 다르다.
정오 실크

비록 그것이 'shift'가 아니라 'ctrl-alt'일 수 있다고 생각합니다.
정오 실크


8

CTRL + Shift + U-> 대문자로 강조 표시된 섹션. CTRL + U-> 강조 표시된 섹션 소문자 SQL 문을 문자열 쿼리에 넣을 때 올바르게 보이도록하는 데 좋습니다.

모든 것이 캡에있는 온라인에서 찾은 코드에도 유용합니다.


2
그들은 : 그건 아마 ... CamelCase를 CTRL + 시프트 옵션이 없습니다 너무 나쁜 내 # 내가 할 일 리팩터링 나는 프로젝트 ... 래리 인수 할 때
LarryF

8

마우스 가운데 버튼 편집기 탭을 클릭하면 탭이 닫힙니다.


1
코드를 찾아서 닫는 중이므로 코드를 작성할 때 항상이 코드를 사용합니다 (닫기의 "X"는 다소 먼).
Kevin Driedger 2009

8

데이터 청크를 n 바이트 "배열"로 표시하려면 Visual Studio의 QuickWatch 창에서 다음 구문을 사용하십시오.

variable, n

예를 들어, foo256 바이트 배열로 이름 지정된 변수를 보려면 QuickWatch 창에 다음 표현식을 입력하십시오.

foo, 256

이것은 null로 끝나지 않은 문자열이나 포인터를 통해서만 액세스 할 수있는 데이터를 볼 때 특히 유용합니다. Visual Studio의 메모리 창을 사용하여 비슷한 결과를 얻을 수 있지만 빠른 확인 창을 사용하는 것이 더 편리합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.