검색

검색은 소스 분석의 기본이다. 특정 명칭이 어디에 선언되어 있고 어디에 사용되는지 보려면 문자열을 검색한다. 명칭을 검색할 때는 Search/Search 명령을 사용하며 단축키는 Ctrl+F이다. 명칭에 캐럿을 두고 Ctrl+F만 누르면 이 명칭을 대화상자에 열어준다. g_hInst에 캐럿을 두고 검색 대화상자를 열어 보자.

굳이 블록을 선택해 놓지 않아도 해당 명칭을 대화상자에 미리 입력해 놓았다. 명칭이 아닌 구문을 검색한다면 이때는 해당 구문을 블록으로 선택해 놓고 열어야 한다. 이 대화상자에서 대소문자 구분, 단어 단위로 등의 검색 옵션을 선택한 후 Search 버튼을 누르면(=Enter 키를 치면) 소스창에 검색 결과를 보여 준다.

한번 검색한 옵션은 내부 버퍼에 기억되어 있어 검색 대화상자를 다시 열 필요 없다. Search 메뉴의 Search Forward, Search Backward 명령을 선택하면 같은 명칭에 대해 이전 이후 위치를 찾아 준다. 단축키 F4, F3이 지정되어 있으며 툴바에도  버튼이 배치되어 있다. Ctrl + F로 검색한 후 F4키만 계속 누르면 해당 명칭이 사용된 모든 곳을 순서대로 살펴볼 수 있다.

Ctrl + F는 대화상자를 연 후 검색을 시작하기 때문에 Enter를 한번 더 눌러야 하는 불편함이 있다. 현재 캐럿 위치의 단어를 바로 검색하고 싶으면 Shift + F4를 누른다. 이 단어의 다음 위치로 바로 이동한다. 이전 위치를 찾을 때는 Shift + F3을 누른다. 일단 한번 찾은 후에는 F3, F4 만 눌러도 앞뒤로 이동하며 찾아준다.

현재 소스 뿐만 아니라 여러 파일에서 검색할 때는 Search/Search Files 명령을 사용하며 단축키는 Ctrl+Shift+F이다. 프로젝트 전체에 걸쳐, 서브 디렉토리까지 다 검색할 수 있으며 정규식 검색까지 가능하다. 다음 대화상자가 나타난다.

검색할 대상 파일을 고른 후 Search 버튼을 누르면 Search Results창이 열리며 이 명칭을 참조하는 모든 소스 파일의 목록이 나타난다.

개인적으로 이 부분이 좀 불만인데 검색 결과를 별도의 창으로 보여주는 것보다 아래쪽에 패널로 보여주는 것이 더 편리할 거 같다. 목록에서 검색 결과를 클릭하면 아래쪽의 컨텍스트 패널에 주변 코드를 보여준다.

검색창 왼쪽의  버튼을 누르면 소스창에 해당 파일을 열어 준다. 소스창에도 똑같은 버튼이 나타나는데 이 버튼을 누르면 다시 검색창으로 돌아간다. 단축키 Ctrl + L을 누르면 검색창과 소스창을 번갈아가며 토글한다. 다른 명칭을 새로 검색하면 다음 질문 대화상자가 나타난다.

이전의 검색 결과를 대체할 것인지 아니면 뒤에 덧붙일 것인지 물어 본다. 이전 검색 결과와 새 검색 결과를 같이 보려면 덧붙이고 그렇지 않다면 대체하는 것이 좋다. 보통 새로 검색하기 때문에 대체하는 경우가 많다. 매 검색시마다 이 질문에 대답하기 싫다면 옵션창의 Searching 탭에서 미리 선택해 두면 된다. 디폴트 옵션이 물어 보는 것으로 되어 있는데 항상 대체하거나 항상 덧붙이도록 지정해 두면 더 이상 묻지 않는다.

Search/Search Project 명령은 파일 찾기와 비슷하되 프로젝트내에서 검색을 수행한다는 점이 다르다. 검색 대상 파일을 지정할 수는 없고 전체 프로젝트나 파일 유형만 선택할 수 있다.

검색 옵션은 거의 비슷하되 검색 결과를 몇줄까지 보여줄 것인지 지정할 수 있다. 디폴트로 5줄까지 보여주도록 되어 있는데 검색 결과창에 주변 소스 다섯 줄이 같이 표시되어 굳이 소스창을 보지 않아도 관련 코드를 확인할 수 있다.

신속하고 정확한 검색은 분석의 기초이다. 번개같이 검색하여 파닥 파닥 소스를 읽어 내야 고놈 분석 좀 한다는 소리 들을 수 있다. 검색 기능을 자주 사용한다면 Search 메뉴에서 Activate Search Bar, Activate Project Search Bar 옵션을 선택하여 톨바에 배치해 놓고 쓴다. 대상 명칭을 즉시 검색해 볼 수 있고 옵션 선택도 쉽다.

툴바를 두 줄이나 차지하여 화면이 좀 번잡스럽지만 대화상자를 일일이 열지 않아도 바로 검색해 볼 수 있어 편리하다. 이런 사치를 맘껏 누리려면 모니터가 큼직해야 한다. 참고로 나는 겁나 좋은 4K 모니터를 쓰고 있다.