본문 바로가기
Tool&Util/Xcode

snippet 사용법

by 백룡화검 2012. 7. 22.
출처 : http://cafe.naver.com/mcbugi/222515

스니펫 (Snippet) 사용법입니다.
별로 대단한건아닌데.. 정리해두신 분이 없으신듯 하여.. 제가 삽을 떠봅니다. ^^
아예 모르시는 분들을 대상으로 한다 생각하고 정리해봅니다.

스니펫은 자동완성기능? 이라고 보면 될듯 합니다.
코딩하다 보면

if 만 쳐넣어주면

if ( 어쩌구 ) {
저쩌구
}

요게 자동으로 완성이 되어주죠...
코딩하기 쉬우라고 만들어 두었을 것이겠죠..

이걸 직접 만들어서 사용하는겁니다.
예를들어 기능 몇가지를 엮어서 메소드를 만든다거나 할때.
매번 반복적인 코딩을 해야 할때가 많이 있습니다.

또는 기능과 기능 몇가지를 항상 엮어서 사용해야 될때가 있죠..

그럴때 스니펫으로 묶어두면 편합니다.

그래서 직접 만들어서 사용해보도록 하겠습니다.


작업환경 OSX 10.7.4 , Xcode 4.3.2 입니다.

우선은 xcode 화면에서 우측하단에 보면 바디괄호가 버튼인 곳이 있습니다.




그리고 Code Snippet Library 를 누르면 메뉴가 뜨는데 User 를 선택해 줍니다.





제가 임시로 만들어둔 스니펫들인데 아예 안만들어 두신분들은 빈칸일껍니다.
만들어두면 저렇게 클릭했을경우 왼쪽에 디테일한 부분이 뜹니다.





짜~! 그럼 스니펫을 만들어 봅시다.

아래 이미지 보시면 로그 함수가 있습니다.



저기 선택된 부분을 스니펫으로 만들껍니다.
저거랑 똑같이 나오게 하려면 그냥 저부분을 스니펫으로 끌고 가면 됩니다.
그러나 로그니까.. 입력할때마다 다른부분에 넣어야 하고, 텍스트는 달라야 하겠죠..





그래서 아래 선택해둔 부분 처럼 "<#" 하고 "#>" 2개로 앞뒤로 싸줍니다.
이유는 나중에 보여드릴께요..



선택한 코드를 마우스로 찍어다가 아까 열어둔 User 스니펫 창으로 끌어다 놓습니다.
그럼 아래 같이 뜹니다.

아까 <# #> 요거로 싸둔 부분이 회색으로 변했습니다. 괄호는 없어졌구요.. 냅둡니다. 이유는 나중에..
우선 타이틀은 우측에 보면 Notify 라고 써있는 스니펫이 있습니다. 저기 보이는 타이틀입니다.
다음다음 제끼고.. Completion Shortcut 에다가는 불러들일 단축키를 넣어줍니다.
저는 "sn"으로 시작하는 단축키를 주로 사용합니다.
Completion Scopes 는 저 스니펫이 사용될 주된 공간을 의미합니다.
메소드 안에서, 또는 파일 전체적인 곳에서 사용가능하도록 세팅이 됩니다.
주로 만들때 있던 위치를 그대로 반영합니다.




타이틀도 넣었고, 단축키는 snlogText 로 만들었습니다.
나중에 대소문자 구분해서 입력하지 않아도 됩니다. 보기좋게 캣멀 표기해줍니다. 
대소문자 섞어놔도 나중에 자동으로 띄워 줍니다.



다만들었어요.. 끝임당.. ^^?


이제 사용해봐야죠...??

아까 만들었던 위치에서 먼저 설정해둔 단축키 snlogtext 를 칩니다.

snlog 까지만 쳐도 아래 자동으로 띄워 줍니다.
비슷하게 시작하는 스니펫이 있으면 밑에 줄줄이 같이 뜹니다.

단축키 입력하고 엔터~!




엔터를 딱~! 때리면 짜란~!
로그가 떴습니다.

아까 각괄호로 짜둔 부분이 Tab 으로 선택 가능한 상태가 되도록 만들어 줍니다.

방금 스니펫으로 만든것 말고
바로 위에 있는 코드도 복사/붙여넣기 하면 저렇게 됩니다.
copy & paste 많이 해야되는거면 저렇게 해보면 쉽습니다.



그럼 입력되고 Tab 을 누르면 Log Text 를 쳐서 넣을수 있도록 선택이 됩니다.



그냥 그대로 Log Text 를 쓸꺼라서 엔터치고 탭을 눌렀습니다.
그러면 저 end 로 넘어갑니다.

end 를 넣어준것은 원래 필요없는부분인데요..
로그 찍을때마다 콜론마크를 찍기위해 문장끝으로 이동하는 불편함을 덜어주려고 넣었습니다.
로그 찍고, 화살표 누르고, 다시 돌아오고,, 손가는게 영 귀찮더라구여..
짜세도 바뀌어야 되고.. 해서..

입력하고 탭, 백스페이스 ~ 하면 문장 종료.  저는 이게 편하더라그염..

요렇케 입력하고 나면 끝~!
로그를 찍었습니다.


앞으로 스니펫 많이 만들어 볼 생각입니다.
귀차니즘의 낳은 산물이라고 해야하나.... ㅋㅋㅋ

즐 코딩 하셈..


P.S
테스트 해보니..
까페 게시물에서 바로 긁어다가 User Snippet 창에 끌고가도 만들어 집니다..
주~욱 긁어다가 추가하셈..