코딩을 하다가보면 자주 사용하는 구문이 있습니다.
대표적인 것이 for 루프 구문이죠
for( int i=0 ; i<10 ; i++)
{
}
이런 구문을 입력할 때마다 일일이 손으로 타이핑 하는것보다는
코드 템플릿을 이용해서 간단히 입력하면 아주 편합니다.
또한 자신이 자주 사용하는 템플릿을 등록해 두면 나중에 쓰기 편합니다.
저같은 경우에는 소스를 나누어 주는 split 주석 문과 for루프중에서 j 변수 루프을 템플릿으로 등록해 두고 있습니다.
//------------------------------------------------------
for( int j=0 ; j<10 ; j ++)
{
}
C++빌더6.0에서는 기능은 많지 않았지만 템플릿 만드는것이 텍스트 방식으로 간단했는데..
C++빌더 2007 로 올라가면서 기능은 많이 강력해 졌지만 만들기는 어려워 졌습니다.
어쨌든 기본으로 들어있는 템플릿 소스 코드 보면서 따라하는 방법이 최선인듯 합니다.
우선 템플릿 사용법 부터 차례대로 보시죠
C++Builder 2010 기준입니다.
※ [사용법]
아래 그림과 같이 소스 창에서
CTRL + J 단축키를 누르면 등록된 템플릿 나옵니다.
이 리스트에서 선택해서 [엔터] 치면 소스에 추가됩니다.
빨리 선택할때는 첫글짜를 타이핑하면 거기로 갑니다.
예를 들어 ctrl + j 누르고 f 키를 누르면 for 문 템플릿으로 이동합니다.
※ 새로 만들기
View > Templates 메뉴를 클릭하면 아래와 같은 템플릿 윈도우가 열립니다.
도킹 되어 있다면 오른쪽 아래에 tool palette 위치에 함께 나옵니다.
위 그림에서 + 아이콘들 클릭하면 새로운 템플릿을 등록할 수 있습니다.
가장 중요한것은 위 이미지에서와 같이 language="C" 를 입력 하는 겁니다.
소문자 c로 해도 안되고 꼭 대문자 C로 해야지 CTRL+ J를 누를때 리스트에 나옵니다.
또 중요한 한가지는 처음 만들고 저장 할때에 제대로 대문자 C를 입력하고 저장해야지 잘못 입력했다가 나중에 수정해도 적용이 안되는 문제가 있습니다.
물론 여기에 다른 문자를 입력하면 안됩니다.
원하는 템플릿 내용을 수정하고 저장하면됩니다.
구분선
크레브
//------------------------------------------------------------------
$end$
위에서
split line이라고 입력한 name 속성이 Ctrl + J 누를때 나오는 키워드입니다.
위 이미지에서 새로 추가 했을때 나오는 템플릿에서 < ![CDATA[]] > 는 point 태그를 쓸때만 사용하고
기본적인 내용을 넣을때는 삭제해 주어야 합니다.
$end$ 마지막에 커서가 이동하는 위치 태그 입니다.
※ 저장 폴더
템플릿 코드들은 xml로 되어 있는데 코드를 저장하는 폴더는 두가지가 있습니다.
하나는 C++빌더에 기본으로 있는 템플릿들이 저장되는 폴더
그리고 사용자가 만드는 템플릿이 저장되는 폴더
굳이 알고 있을 필요는 없습니다만..
사용자 템플릿 저장 폴더는 혹시 나중에 백업 받을 일이 있을때는 유용합니다.
※ 템플릿 버그
* 정상
* 비정상
한 탭만큼 커서가 이동된 상태에서 템플릿을 입력하면 내용 자체에는 문제가 없으나 파란 사각형 위치가 이상해집니다.
한 탭씩 오른쪽으로 갈때마다 파란 사각형이 점점 밀립니다.
버그 인것 같은데.. C++빌더 2010 외에는 테스트 해보지 못했습니다.
※ 템플릿 내용 작성
템플릿 내용 작성은 기본으로 들어있는 템플릿 코드를 보고 따라하는것이 가장 편할 것 같습니다.
모든 문법을 다 설명드리기도 힘들고..
간단히 for 루프 템플릿 코드를 올립니다.
보고 참고하세요
텍스트로 올리면 잘 안나와서 이미지로 캡쳐 올립니다.
※ C++빌더6.0에서는
C++빌더 6.0에서는 Tools > Editor Options 메뉴에 있습니다.
문법도 상당히 간단해서 아래와 같습니다.
for (int i=0; i<|; i++)
{
}
단지 | 문자를 이용해서 템플릿 입력후 마지막으로 커서가 갈 위치를 표시해줍니다.
point테크로 엘리먼트를 정의하고 $와 $ 사이에 그 name을 써서 code 테크에 기록하네요
$end$는 미리 정의된 엘리먼트 같은데..
이놈은 코드에서 템플릿입력후 Enter키 치니까 가네요(수정후에 가는 곳인것 같습니다.)
$end$ 같이 미리 정의된 다른 엘리먼트도 있을것 같은데....
....