{{{#!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