EmacsWithGentoo
- Emacs를 Gentoo에서 처음 사용할때
설치
emerge emacs로 설치한다. 버전은 24로 사용. 대략 사용된 USE Flag는 다음과 같다.
root ~ # emerge -pv emacs
These are the packages that would be merged, in order:
Calculating dependencies... done!
[ebuild R ] app-editors/emacs-24.2:24 USE="X alsa dbus gconf gif gnutls gpm gtk gzip-el imagemagick jpeg m17n-lib motif png sound svg tiff toolkit-scroll-bars xft
xpm -Xaw3d (-aqua) -athena -games -gsettings -gtk3 -hesiod -kerberos -libxml2 -livecd -pax_kernel (-selinux) -source -wide-int" 0 kB
Total: 1 package (1 reinstall), Size of downloads: 0 kB
* IMPORTANT: 2 news items need reading for repository 'gentoo'.
* Use eselect news to read news items.
지금의 use flag는 gtk2를 대상으로 설치하게 된다. 본인은 gnome2기때문에 gtk3가 싫다. (2013년2월17일기준)
테마세팅
emacs는 기본적으로 ~/.emacs 를 설정파일로 사용한다. resource는 ~/.emacs.d/ 안에 넣게된다.
일단 아래의 사이트에서 아래의 파일을 받는다
받아서 아래의 디렉토리에 넣는다.
~/.emacs.d/theme/
아.. 쉽다.. 일단 테마파일은 설치했고 이제부터 설치한 테마파일을 설정 해야할차례가 됐음.
~/.emacs파일에 아래의 내용을 넣고 이맥스를 다시 시작해주도록한다.
(add-to-list 'custom-theme-load-path "~/.emacs.d/theme")
(load-theme 'tomorrow-night-bright t)
(setq custom-file "~/.emacs.d/custom.el")
(load custom-file 'noerror)
(put 'upcase-region 'disabled nil)
emacs의 기본 바탕이 검은색으로 바뀐다. 아 좋다.
폰트설정
폰트의 설치
대다수의 gentoo에서 사용하는 나눔고딕코딩은 사실 emacs에서 조금의 문제가 있다. 그래서 license덕분에 나눔고딕코딩을 emacs에서 사용할 수 있도록 수정한 무난코딩이라는게 있다.
감사하게도 관련된 이빌드를 올려주신분이 있으니... 이 URL을 참고하도록 한다.
http://www.gentoo.or.kr/tips/406545
받아서 ebuild파일로 만들어 설치를 하도록한다. 문제는.... 저 ebuild가 완벽한게 아니라서 설치 디렉토리가 /로 잡힌다...
설치된 ttf파일을 /usr/share/fonts/TTF 정도로 넣어주도록 한다. 물론 fc-cache를 해주는것도 잊지 말도록 한다.
아까의 ~/.emacs 파일을 열어서 아래의 라인을 추가해주도록 한다
(set-fontset-font "fontset-default" '(#x1100 . #xffdc) '("무난코딩" . "iso10646-1"))
emacs를 재시작한다. 여기까지하면 다음정도의 화면을 볼 수 있다.
간단한팁 몇가지
emacs에 현재 작성한 lisp코드를 바로 emacs에 적용하는법
- C-x b scratch 로 새로운 버퍼를 연다
- lisp코드를 작성한다
- M-x eval-buffer 로 현재 열려있는 버퍼의 lisp코드를 emacs에 적용시킨다
- 사실......... 실패하면 emacs 재시작........
emacs에서 buffer란?
emacs는 파일을 열면 실제 파일을 편집하는게 아니라 메모리상에 buffer를 잡아서 편집을 다 하고 save를 하면 그때 파일에 저장한다
C-x b 는 새로운 버퍼를 생성하는 단축키. 고로 버퍼를 저장하는경우는 C-x C-s로 Save를 하는게 제일 좋다.
emacs의 elisp 명령행모드
M-x ielm 으로 하면 elisp의 명령행모드를 사용할 수 있다.
emacs의 shell호출
M-x eshell 을 누르면 shell이 나온다. 물론 ctrl-d 또는 exit를 누르면 emacs로 돌아올 수 있다.
emacs의 daemon mode
- emacs --daemon 으로 daemon mode로 실행
- emacsclient -c 로 daemon mode의 emacs를 호출해서 사용
emacs에서 buffer관련 단축키
- C-x 0 없애고 싶은 버퍼에서 이 단축키를 누르면 현재 버퍼가 죽는다
- C-x 1 남겨두고싶은 버퍼에서 이 단축키를 누르면 다른 버퍼가 죽는다
- C-x 2 (vertical) 화면 split
- C-x 3 (horizotal) 화면 split
- C-x 5 2 프레임 하나 더 띄우고 싶은경우
emacs에서 mode를 전환하기
- M-x mode_name 하면 mode가 바뀐다
- M-x sql-mode는 sqlmode, M-x c-mode는 C언어 mode
emacs에서 주석을 처리하는 단축키
- mode에 따라서 주석 처리시 삽입되는 문자가 바뀜
- sql mode는 -- 문자열
- c mode는 // 문자열
emacs 에서 검색을 하려고 할때
- C-s 순방향검색
- C-r 역방향검색
- grep같은 async 방식은 M-x list-matching-lines
- M-x grep / find-grep / find-grep-dired 등도 있음
- 고급검색은 https://kldp.org/node/61514 주소를 참고
emacs 에서 영역을 선택 하려고 할때
gtkemacs(xemacs)에서는 별로 쓸모가 없지만 사실 terminal 에서 사용하는경우에는 꽤나 필요하다. 복사를위한 영역등을 선택하는 key 를 설명한다.
C-SPC 다음에
- C-n 혹은 C-p로 라인단위
- C-f/b는 글자단위
- M-f/b는 단어단위
- M-a/e는 문장단위
- M-}/{는 단락단위
emacs 의 c-mode
emacs 의 c-mode 에서 c 소스를 comile 하려고할때의 단축키
- M-x compile RET
해당되는 C 소스에 compile 관련 option 을 넣어놓으려 할때는. 소스코드의 맨 아래부분에 아래같은 부분을 넣어주면 된다.
// Local Variables:
// Compile Command: gcc blah blah -o blah
// End:
그외 emacs단축키
- C-x C-c emacs종료(몇년동안 익지않은 단축키)
- C-x C-f 현재 버퍼로 파일열기
- C-x C-s 현재 버퍼를 저장하기
- M-l 커서기준 현재단어 소문자
- M-u 커서기준 현재단어 대문자
참고자료
Programming in the Emacs
- 신성국님이 KLDP 10주년 컨퍼런스에서 발표하신내용
- 자료는 http://www.cinsk.org/articles/ <- 이 주소에서 찾으면 된다.
- 물론 자료원본은 저자에게 확인받고 올리는것.
- File:Emacs-devel.odp 이 파일을 다운로드받으면 된다