<같이보기>
2019/01/30 - [소프트웨어/소스인사이트 응용] - 소스 인사이트 매크로를 이용한 자동 주석(comment) 만들기..
2019/01/22 - [소프트웨어/소스인사이트 응용] - 소스 인사이트의 edit와 view 기능개선(a.k.a. trouble shoot..)
2019/01/20 - [소프트웨어/소스인사이트 응용] - 소스 인사이트의 특별한 에디트 능력들..
2019/01/17 - [소프트웨어/소스인사이트 응용] - [tip]소스인사이트 프로젝트 내에서 불필요한 파일 제거하기..
2018/12/15 - [소프트웨어/소스인사이트 응용] - 소스인사이트 설명
소스 인사이트의 검색 기능들
이번에는 소스 인사이트가 가지고 있는 검색 방법들에 대해서 알아보도록 하겠습니다.
저는 여기에서는 마우스의 기능과 키보드 단축키의 기능들을 적절히 섞어서 사용할 예정입니다.
먼저, 마우스의 경우, 기본적으로 3 버튼식 마우스(좌, 우 버튼 + 중간 스크롤 버튼)가 아닌 4버튼 또는 5버튼용 마우스 사용을 추천드립니다.
4버튼, 5버튼의 경우, 뒤로 가기와 앞으로 가기 버튼이 존재합니다.
<파고파고 또 파고 들어가는 기본 기능>
1. Ctrl키 + 마우스 좌클릭 (파고파고 또 파고 들어가는 기능)
앞서서도 언급 드린 적이 있습니다만, 기본적으로 왼손으로 Ctrl키를 누르고 마우스 좌클릭을 하게 되면 해당 심볼의 정의 부분으로 점프 합니다.
또는 화면의 기본 배치 상 하단에 Context Window라고 하여 커서가 깜빡이고 있는 부분의 정의(definition)가 보여집니다.
아래와 같이 앞서 만든 소스인사이트의 프로젝트에서 첫번째 main.c 파일에서 TI_CAPT_Button() 이라는 함수에 커서를 가져다 놓으면 아래 화면에서 해당 함수의 정의부분이 보여집니다. (우선은, 소스코드가 중요한 것이 아니므로, 이 소스가 어떠한 내용의 소스인지는 따로 언급드리지는 않겠습니다.)
여기에서 Ctrl + 마우스 좌클릭을 시전하게 되면 해당 함수의 내용이 본 화면에서 표시가 됩니다.
함수 내에 다른 함수의 내용도 파악을 하기 위해서 다시 위 화면에서 보여지는 TI_CAPT_Custom() 이라는 함수에 대해서도 마찬가지로 Ctrl + 마우스 좌클릭을 하고, 그 아래 다른 함수들도 타고 타고 들어가 보면 아래와 같이 들어가 볼 수가 있겠습니다.
- main()
- TI_CAPT_Button()
- TI_CAPT_Custom()
- TI_CAPT_Raw()
- TI_CTS_RO_CSIO_TA2_WDTA_HAL()
현재 이런 식으로 어떤 함수 내에서 어떤 함수가 어떤 기능을 하는지 파고 파고 파고들어가면서 확인 할 수가 있겠습니다.
2. 5버튼 마우스의 뒤로가기, 앞으로 가기 버튼 클릭 (이전에 봤던 화면, 앞서 봤던 화면으로 돌아오기)
현재 파고 파고 들어온 함수에서 다시 직전에 봤던 함수로 돌아가야 할 필요가 있겠죠? 즉, 위에서 TI_CAPT_Raw() 함수의 내용을 파악하고 난 뒤 TI_CAPT_Raw() 함수를 불렀던 TI_CAPT_Custom() 함수에서 TI_CAPT_Raw() 함수 다음 내용을 파악하고 계속 해서 main() 함수의 끝까지 파악을 해야 전체 소스코드를 파악하는 것이니까요.
이 때 5버튼 마우스의 뒤로가기 버튼을 누르거나 소스 인사이트 아이콘 중에서 파란색 왼쪽 화살표를 눌러보세요. 또는 키보드로 Alt + , (키보드 상에서 , 위에 표시된 < 심볼이 왼쪽으로 가는 화살표 모양이네요.)를 눌러도 동일한 효과를 보실 수 있습니다.
반대로 마우스의 앞으로 가기 버튼을 누르거나 파란색 오른쪽 화살표, 또는 Alt + . 버튼(마찬가지로 . 위에 > 심볼이 있음)을 누르면 앞서 봤던 화면으로 돌아오기를 할 수 있습니다.
위 내용을 간단히 그림으로 설명드리면 아래와 같습니다.
<파일 내에서 찾아가기 기능>
1. Ctrl + F (Search : 파일 내에서 찾기 기능)
일반적인 에디터에서도 있는 기능인 이 기능으로 파일 내에 있는 해당 심볼을 찾을 수 있습니다.
다만, 원하는 심볼에 커서를 두고 이 기능을 수행하게 되면 자동으로 해당 심볼이 팝업창에 나타나므로 새로 타이핑을 해 줄 필요가 없습니다.
2. F3 키(Search Backward : 위로 찾기)
직전에 Ctrl + F로 Search를 한 심볼을, 현재 위치에서 위쪽에 위치하는 것들을 위치 순서대로 연속적으로 찾아줄 수 있습니다.
3. F4 키(Search Forward : 아래로 찾기)
직전에 Ctrl + F로 Search를 한 심볼을, 현재 위치에서 아래쪽에 위치하는 것들을 위치 순서대로 연속적으로 찾아줄 수 있습니다.
4. F5 키(Go to Line : 해당 줄 수 찾기)
해당 기능은 Ctrl + F 기능과는 별개로 현재 파일에서 원하는 소스코드 줄 위치로 이동시켜 줍니다.
5. 키워드 하이라이트 기능 (Shift + F8)
소스 인사이트는 키워드를 하이라이트 시킬 수 있습니다.
해당 키워드에서 Shift + F8을 누를 경우 해당 키워드는 Highlight 됩니다. 다시 Shfit + F8을 누르면 Highlight 가 해제됩니다.
6. 화면 하단의 Context Window 고정시키기
소스 인사이트는 에디트 본 화면에서 커서의 위치에 따라서 아래 Context Window의 내용이 커서 위치의 해당 심볼의 정의부의 내용을 미리 보여줍니다. 이 Context Window를 더블클릭 하면 Ctrl + 마우스 좌클릭과 동일하게 해당 정의부분을 본 화면에 보여줍니다.
여기에서 열쇠모양 아이콘을 누르게 되면, Context Window의 현재 화면이 Lock이 걸려 고정되게 됩니다.
이 경우, 두 개의 창에서 내용을 비교하며 코드를 분석 할 수 있어 유용할 때가 있습니다.
<Lookup reference 활용하기>
1. Ctrl + / 로 Lookup reference로 찾기
Ctrl + / 키 조합 자체는 /키를 보시면 위에 ? 심볼이 있음을 알 수 있습니다. 즉 모르는 사람이라도 무언가가 궁금할 때 쓰는 명령으로 짐작할 수가 있겠죠?
이 단축키는 Lookup References라고 해서 현재 커서가 가리키는 심볼의 전체 사용처를 확인할 때 사용됩니다. 세부 설명에 대해서는 다른 페이지에서 설명토록 할게요.
우선 원하는 심볼 위에서 Ctrl + / 키를 누르면 아래와 같이 나옵니다. 여기서 다시 엔터키를 누르면 프로젝트 전체에서 해당 심볼을 찾게 됩니다.
이렇게 해서 검색된 내용은 Search Results 라고 하는 창이 새로 만들어져서 일치하는 심볼의 수 만큼 해당 창에 표시가 됩니다.
또한 Search result 창에서 해당 줄 좌측에 있는 붉은 양쪽 방향 화살표시를 누르게 되면 해당 위치로 점프하게 됩니다.
또한 느끼셨을 수 있겠지만, 프로그램 상단 아이콘 창에서도 같은 붉은 양쪽 방향 화살표 모양의 두 개의 아이콘이 있는 것을 보실 수 있습니다. 이 아이콘의 경우, Search Result 창에서 순서대로 나열된 리스트들을 차례대로 위쪽 또는 아래쪽으로 해당 위치로 점프하게 해 주는 기능입니다.
2. Ctrl + L 키로 Search Result 창으로 화면전환
만일 다시 Search Result 창으로 돌아가기를 원한다면 Ctrl + L 키를 눌러서 Search Result 창으로 돌아 갈 수 있습니다. 다시 Ctrl + L을 누르면 직전 소스코드 창 화면이 나타납니다.
또한 마우스 4버튼이나 5버튼으로 뒤로가기, 앞으로 가기도 가능하고요.
만일 다른 심볼에 대해서 Ctrl + / 로 Lookup Reference 를 한 번 더 찾는다고 한다면, 아래와 같은 팝업창이 뜰 것입니다.
이 때는 당황하지 않고 키보드 a를 눌러서 append를 해주시면 처음 찾은 내용 다음에 이어서 Search Result 내용이 추가되게 됩니다.
만일 Enter를 눌러서 Replace를 하게 되면, 기존 Search Result 값은 다 사라지고 현재 찾은 내용만 나타날 것입니다.
<원하는 (알고 있는) 심볼의 정의 부분 찾기>
C에서의 함수나 변수를 소스인사이트에서는 심볼이라고 부르고 있는데, 위 search 방법은 심볼의 정의 부분과 사용된 부분에 대해 구분없이 찾았습니다.
그런데 말입니다. 만일 현재 변수나 함수의 정의부분이 궁금해서 찾고자 할 때에는 어떤 다른 방법이 또 있을까요?
1. F8 : 파일 내에서 찾기
2. F7 : 프로젝트 전체 내에서 찾기
본 단축키는 현재 파일 내부에서 정의되어있는 심볼을 찾을 수 있습니다.
가령 원하는 심볼을 커서에 올려놓고 찾을 수도 있겠습니다. 하지만, 이는 Ctrl + 마우스 좌클릭으로 충분히 가능합니다.
이 기능의 궁극적인 목적은 내가 알고 있는 심볼을 바로 찾아들어가서 내용을 보고자 함입니다. 가령 main() 함수 처럼 내가 이미 알고 있거나 이전에 키워드를 알고 있는 심볼을 찾을 때 유용합니다.
F7과 F8의 차이는 전체 프로젝트 내에서 해당 심볼을 찾을 것인지, 현재 파일 내에서만 해당 심볼을 찾을 것인지의 범위 차이가 됩니다.
<F7의 경우>
<F8의 경우>
아래 첫번째 이미지에서 아래 두번째 이미지 처럼 main을 검색해 봄.
현재는 다양한 예제 파일로 인해 main()이 많은 상황이네요. ^^
<기타>
기타로 search 기능은 아니지만 아래 기능도 종종 이용하고 있습니다.
1. F2 키 : 열려 있는 파일을 순서대로 화면 전환..
F2 키의 기능은 뭔가 하면, menu에서 Window를 클릭하면 현재 열려있는 c 파일들의 리스트를 볼 수 있습니다. 이 파일들을 최근 열었던 순서대로 열어주는 역할을 합니다.
이상으로 소스 인사이트에서 검색 기능들에 대해 알아보았습니다.
다음에는 소스 인사이트에서 가능한 신기한 에디터 능력들에 대해서 알아보도록 하겠습니다.
<끝>
'소프트웨어 > 소스인사이트 응용' 카테고리의 다른 글
소스 인사이트 매크로를 이용한 자동 주석(comment) 만들기.. (1) | 2019.01.30 |
---|---|
소스 인사이트의 edit와 view 기능개선(a.k.a. trouble shoot..) (1) | 2019.01.22 |
소스 인사이트의 특별한 에디트 능력들.. (0) | 2019.01.20 |
[tip]소스인사이트 프로젝트 내에서 불필요한 파일 제거하기.. (0) | 2019.01.17 |
소스인사이트 설명 (0) | 2018.12.15 |