emacs에서 C++ 사용하기 2편 사용편의 설정
사용편의를 위해서 괄호 자동완성과 compile-command 자동화를 해 보겠습니다. 먼저
https://github.com/capitaomorte/autopair/blob/master/autopair.el
에 방문하여 autopair.el파일을 site-lisp디렉토리에 저장합니다.
또 앞서 올린 emacs 기본 설정에서 해준 것처럼 .emacs에 다음과 같은 코드를 추가하여 f3으로 컴파일을, f4로 디버거를 실행할 수 있도록 해줍니다.
;;#useful shortcut setting (global-set-key [f3] 'compile) (global-set-key [f4] 'gdb)
하지만 기본 컴파일 커맨드는 'make -k'이므로, 원하는 형태로 프롬프트되도록 .emacs파일에 다음과 같은 내용도 추가해줍니다. 더불어 매크로로 자동으로 autopair.el을 로드하도록 지정해줍니다. 매크로로 지정하는 이유는 c-mode와 c++-mode에 일괄적으로 적용하기 위함입니다.
;;c/cpp settings (require 'autopair) (mapc (lambda (mode) (let ((hook (intern (concat (symbol-name mode) "-mode-hook")))) (add-hook hook (lambda () (autopair-mode +1))) (add-hook hook (lambda () (set (make-local-variable 'compile-command) (let ((file (file-name-nondirectory buffer-file-name))) (format "%s %s -o %s -g" "g++" file (file-name-sans-extension file)))))))) '(c c++))
이제 괄호도 자동완성되고, f3과 엔터를 누르면 해당 소스파일의 위치 폴더에 해당소스파일 이름.exe로 컴파일되고 f4를 누르면 바로 gdb실행이 가능합니다. c는 c++의 하위호환이고, c++을 주로 공부할 것이므로 g++로 컴파일하도록 정해두었지만 gcc로 컴파일하고싶으시면 g++을 gcc로 고치시면 됩니다.
기존에 emacs관련하여 올린 auto-complete 등도 함께 설정하여 이제 emacs에서 c++을 열심히 공부하기만 하면 됩니다.
p.s. 저는 google style guide대로 tap-size 2로 작성할 것이므로 상관없지만(emacs기본설정), linux-style등의 8 tab 혹은 4 tab이 좋으신분들은 'c-basic-offset'과 'c-default-style' 변수를 구글링해보시면 됩니다.