{{{#!html 헤더파일의 클래스 멤버함수 소스파일에 편하게 추가하기
}}} [[TableOfContents]] === 다운로드 === attachment:EmacsExpandMemberFunctions/expand-member-functions.tar.gz [http://www.emacswiki.org/cgi-bin/wiki/ExpandMemberFunctions 여기]가 원래 페이지 이나 페이지 내부에 있는 관련 링크가 깨져 있습니다.[[br]] 그래서 [http://github.com/sigma/dotfiles/tree/e8f24cc2dec97ce90a1ade6e39b672a68b194f36/ChangeLog 여기]에서 {{{ExpandMemberFunctions}}} 기능을 하는 파일만 추출했습니다. === 설치방법 === 위 파일 다운로드후 적당한 곳에 압축해제 후 .emacs 설정파일에 아래 내용 추가 {{{ (add-to-list 'load-path "/설치한곳/expand-member-functions") (autoload 'expand-member-functions "member-functions" "Expand C++ member function declarations" t) (add-hook 'c++-mode-hook (lambda () (local-set-key "\C-cm" 'expand-member-functions))) }}} === 간단한 사용법 === 간단한 코드를 입력후 (test.h 라 가정) {{{ class Test { public: void PrintTest1(); void PrintTest2(); }; }}} {{{ M-x expand-member-functions or C-c m (위 설치 방법대로 했고 c++-mode 일 경우) }}} (헤더파일 확장자가 h 인경우 c-mode 인 경우가 있습니다.) 미니버퍼에 아래 나오면 엔터 {{{ Header file: test.h }}} 미니버퍼에 아래 나오면 적당히 입력후 엔터 {{{ Implementation file: test.cc }}} 그런후 버퍼를 찾아보시면 아래처럼 test.cc 가 만들어져 있을 것입니다. 꼭 C-x C-s 하셔서 저장하시기 바랍니다. {{{ void Test::PrintTest1() { } void Test::PrintTest2() { } }}} === 참고 === namespace를 쓸 경우 잘 작동이 안됩니다. === 약간 수정된 버전 === attachment:EmacsExpandMemberFunctions/expand-member-functions-rev1.tar.gz 생성되는 코드 스타일을 아래에서 {{{ void Test::PrintTest1() { } void Test::PrintTest2() { } }}} 이렇게 {{{ void Test::PrintTest1() { } void Test::PrintTest2() { } }}} 바꾸고 확장자 "h"외에 hh,hpp,hxx도 인식하게 만듦 [[br]] (!) [wiki:primewizard] - 20080809