데비안(Debian) lenny에서 emacs-snapshot으로 Gtkmm(C++) 프로그래밍...그리고 잡설.....

points
emacs로 간단한 Gtkmm 프로그래밍을 하기 위해
좀 더 넓은 의미로는 emacs로 클래스멤버 자동완성(인텔리센스)기능을 사용하며 C++ 프로그래밍을 하기 위해
엄청난 역경(?)을 극복해야 했기에 기쁨의 스샷을...
(근데 지금보니 별거 아니라는 느낌이.....^^;)
GUI툴에 익숙한 저로서는 emacs가 어려워서 설치만 해보고 사용안하다가
독한(?)마음을 먹고 한 번 사용해 보기로 하였습니다.
우선 데비안 저장소에 emacs가 있습니다만 "뭥미 햏"같은 한글 입력이 안되고 xft폰트 사용도 안되고
뭔가 2% 부족하다 생각했는데 검색하다 아래 사이트를 발견 하였습니다.
http://www.emacswiki.org/cgi-bin/wiki/XftGnuEmacs
http://www.emacswiki.org/cgi-bin/wiki/EmacsCvsAndDebian
아마도 데비안용으로 emacs-snapshot이라 불리우는 최신 버전을 찾으시는 분은
위의 사이트가 찾으시는 것이 맞을 것입니다.
암튼 제가 좋아하는 Gtkmm으로 간단한 예제 프로그램을 작성하는데 많은 삽질이 필요했습니다.
그래서 저같은 분들을 위해 절차를 남깁니다. (데비안 lenny 기준)
1)소스리스트 추가
위 사이트를 참고해서 소스리스트를 추가하고 저장소키를 등록합니다.
간편한 방법으로 아래 파일을 압축해제후 /etc/apt/sources.list.d/ 에 복사하고
- emacs-snapshot-etch.list.tar.gz - emacs-snapshot을 위한 etch, lenny 저장소를 따로 분리한 파일
- emacs-snapshot-sid.list.tar.gz - emacs-snapshot을 위한 sid 저장소를 따로 분리한 파일
루트 터미널에서 저장소키를 등록하고
# wget -q http://orebokech.com/Romain_Francoise.pgp -O- | apt-key add -저장소 업데이트를 하세요.
2)emacs-snapshot 설치
일단 기존 저장소에서 설치된 cedet,ecb이 있다면 제거합니다.
(저 같은 경우 emacs-snapshot 설치시 cedet,ecb때문에 의존성 문제가 생겨서 제거후 나중에 수동설치 하였고
특히 C++ 프로그래밍 하신다면 cedet는 cvs 버전을 설치해야 될 것입니다.)
그리고 나서 시냅틱,apt-get등을 이용해서 emacs-snapshot 설치
3)emacs-goodies-el(기존 저장소에 있는 것임) 패키지 설치
highlight-current-line,shell-command,folding-mode,tabbar-mode,bar-cursor-mode 등등 유용한 것 많아서 설치
4)doxymacs(기존 저장소에 있는 것임) 패키지 설치
5)psvn 설치
psvn은 subversion을 저장소에서 설치하면 설치됨
6).emacs 파일 설정
저같은 경우
~/.emacs 파일에는 emacs 자체(customize-browse, customize-group 등을 이용해서)에서 설정한 것만 들어가고
~/.emacs.d/_manual-setting_.el 에 매뉴얼 설정을 하여 따로 분리 하였습니다.
궁금하신분은 첨부파일(emacs-setting.tar.gz) 참고하세요.
(customize-browse에서 제가 못 찾는 것인지... 암튼 안나타나는 것이 있었습니다.
그런 것은 customize-group을 이용하거나 수동설정을 하였습니다.)
7)cedet 설치
저같은 경우 cvs 버전을 설치하였습니다.
1.0pre4 버전에서는 C++ namespace를 쓸 경우 자식클래스에서 부모클래스 멤버가 자동완성에 안나타납니다.
그리고 자동완성이 너무 느렸습니다.
cvs -d:pserver:anonymous@cedet.cvs.sourceforge.net:/cvsroot/cedet login
암호 물어보면 엔터
cvs -z3 -d:pserver:anonymous@cedet.cvs.sourceforge.net:/cvsroot/cedet co -P cedet~/.emacs.d/cedet-cvs 로 옮김
~/.emacs.d/cedet-cvs 에서
$ find . -name Makefile -exec touch {} \;
$ makemake를 하니
"you can use touch to update the Makefile time stamp." 메세지가 계속나와서
위에 있는 명령어로 ~/.emacs.d/cedet-cvs 하위 폴더에 있는 모든 Makefile을 touch(?)해주고
make 명령 실행한 것임
그리고 cedet 기능을 emacs 시작 할 때 불러들여야 하는데
저 같은 경우 "~/.emacs.d/cedet-cvs.el" 파일에 관련 설정을 집어넣고
(load "~/.emacs.d/cedet-cvs") 이런식으로 .emacs 설정파일(_manual-setting_.el)에 포함시켰습니다.
또한 semantic 자동완성에 필요한 헤더파일 경로 설정도 분리해서
(load "~/.emacs.d/semantic-add-system-include") 이렇게 포함시켰습니다.
참고:
처음 설치 후 바로 자동완성을 시도했는데 아래 메세지가 나오면 X서버 재시작(Ctrl+Alt+Backspace) 해보세요.
Wrong type argument: syntax-table-p,nil컴파일 단계에서 계속 에러가 나면 아래처럼 해보세요.
$ find . -name Makefile -exec touch {} \;
$ make clean-autoloads
$ make clean
$ make8)ecb 설치
저같은 경우 customize-browse 에서 테마 적용시 문제가 생겨서 Latest CVS-shapshot 버전을 설치 하였고
snapshot 버전도 ecb-deactivate 하고 테마를 적용해야 됩니다.
~/.emacs.d/ecb-snap/ 에 압축풀어서 복사
~/.emacs.d/ecb-snap/Makefile 파일에서
CEDET=c:/Programme/emacs-21/site-lisp/package-development/cedet
이렇게
CEDET=~/.emacs.d/cedet-cvs수정후 make 명령 실행
그리고 ecb 기능을 emacs 시작 할 때 불러들이기 위해
"~/.emacs.d/ecb-snap.el" 파일에 관련 설정을 집어넣고
(load "~/.emacs.d/ecb-snap") 이런식으로 .emacs 설정파일(_manual-setting_.el)에 포함시켰습니다.
참고:
emacs-goodies-el 패키지의 folding-mode와 충돌하며 아래와 같은 메세지가 나옵니다.
ad-handle-definition: `goto-line' got redefined
또는
ad-Orig-goto-line: Variable binding depth exceeds max-specpdl-size(require 'ecb-autoloads)대신 (require 'ecb)을 사용하시거나 folding-mode 비활성화 시키세요.
9) yasnippet 설치
http://code.google.com/p/yasnippet/
위의 cedet,ecb 처럼 설치
10) javascript-mode, expand-member-functions 설치
http://www.emacswiki.org/cgi-bin/wiki/JavaScriptMode
http://www.brgeight.se/downloads/emacs/javascript.el
http://wiki.kldp.org/wiki.php/EmacsExpandMemberFunctions
http://www.emacswiki.org/cgi-bin/wiki/ExpandMemberFunctions
11) emacs 자체(내장) 한글 입력기 한/영 전환을 Shift+Space 로 사용하기
~/.Xresources 에
Emacs.useXIM: off추가후 X서버 재시작(Ctrl+Alt+Backspace)
(그런데 Emacs.useXIM와 Emacs.UseXIM 설정의 차이점을 모르겠습니다...^^;)
이렇게 하시면 emacs 내에서는 기본 한글 입력기(나비)가 불능이 됩니다.
그래서 emacs 자체 한글 입력기 한/영 전환을 Shift+Space 로 할 수 있고
(기본 한글 입력기(나비)가 Shift+Space 를 가로채지 않습니다.)
다른 프로그램들은 기본 한글 입력기(나비)를 한영키는 물론 Shift+Space 도 그대로 쓸수 있습니다.
간편한 방법으로 아래 파일을 압축해제후 홈(~/)에 넣으세요.
emacs-Xresources.tar.gz
(기존 ~/.Xresources 파일이 있으시면 덮어쓰지 않도록 주의하세요. 아마도 대부분 없을 것으로 생각됩니다.)
12) Gtkmm(C++) 예제작성하며 테스트 해보기
마지막으로 적응의 문제일수도 있으나 아직 emacs는...어렵다는 느낌입니다.
그리고 원하는 설정을 얻기까지 너무 힘들었습니다. (제 성격이 까다로운 것일 수도 있습니다만...^^;)
암튼 확실한 결론을 내기까지는 좀 더 사용해봐야 할 듯 싶습니다.
| 첨부 파일 | 파일 크기 |
|---|---|
| emacs-snapshot-etch.list_.tar.gz | 282 bytes |
| emacs-snapshot-sid.list_.tar.gz | 282 bytes |
| emacs-gtkmm.png | 41.17 KB |
| emacs-Xresources.tar.gz | 203 bytes |
| emacs-setting.tar.gz | 101.02 KB |


points
이런분들 때문에
이런분들 때문에 이맥스 포기했다가 또 버닝하게 되네요~
고맙습니다.흑흑흑...