-
이맥스의 파일 변수 사용하기Programmer/Emacs 2013. 7. 15. 10:31
이맥스에서 컴파일은 대부분 'M-x compile'을 사용한다. 이 명령을 치면, 별다른 설정이 없으면, 기본 명령어 "make -f"가 이맥스 미니 퍼버에 보인다. 대다수의 C/C++ 프로젝트는 Makefile을 사용함으로 그냥 엔터를 누르자. 컴파일 과정과 결과는 '*compilation*' 버퍼에서 보여준다. 컴파일 관련 오류도 같이 출력한다. 이 오류 메시지를 선택하면 그것과 연결되는 소스로 바로 갈 수 있다. 1
한편 기본 컴파일 명령어를 사용하지 않는 상황을 생각해보자. 간단한 실험용으로 코드를 작성하는 상황이다. 실험용 코드를 담은 파일을 'test.c'라는 하자. 이맥스에서 위에서 언급한대로 컴파일을 해보자. 그러면, 미니 버퍼에 "make -f"라는 명령어가 보이지만, 실험용 코드라서 Makefile이 없기때문에 절대로 컴파일이 되지 않는다. 그렇다고 몇줄 되지 않는 코드 때문에 Makefile을 만들기는 귀찮다. 미니 버퍼의 기본 컴파일 명령어를 지우고, "gcc -Wall -g -o test test.c"라고 입력한 뒤에 엔터를 누른다. 위 예에서 언급한 파일을 종종 수정하고 빌드해야 한다면, 기본 컴파일 명령을 지우고 다시 입력하는 번거로운 과정을 매번 수행해햐한다. 무척 귀찮은 상황이다.
이럴 때는 파일과 연관된 이맥스 변수를 할당하는 이맥스 파일 변수를 사용한다. 이맥스 파일 변수는 열린 파일에 대해서만 적용되는 변수이다. 위에 예를 이어가자면, 파일 변수 중에 컴파일 명령어를 수정해주면 된다. 예를 들어, test.c 파일이라면 아래와 같이 내용을 파일의 끝에 아래의 내용을 추가한다.
/* * Local Variables: * compile-command: "gcc -Wall -g -o test test.c" * End: */
또는 파일의 첫줄에 아래 내용을 삽입한다.
/* -*- compile-command: "gcc -Wall -g -o test test.c" -*- */
또 다른 예를 들어보자. 잠깐 다른 회사의 파일을 하나 수정해줘야 한다고 가정하자. 우리 회사의 코딩 규약을 사용하지 않는 코드이다. 이와 같은 경우 이맥스 파일 변수로 타 회사의 코딩 규약을 사용하면 편리하다.
/* * Local Variables: * mode: c * c-file-style: "BSD" * End: */
한 줄로 표현하면 다음과 같다.
/* -*- mode: c; c-file-style: "BSD"; -*- */
비슷한 개념으로 디렉토리 변수라는 개념도 있다. 자세한 것은 참고 링크에서 확인한다.
참고 링크:
- File Variables : http://www.gnu.org/software/emacs/manual/html_node/emacs/Specifying-File-Variables.html#Specifying-File-Variables
- Directory Variables :http://www.gnu.org/software/emacs/manual/html_node/emacs/Directory-Variables.html
- 현대의 IDE에서는 일반적이지만, 이맥스는 오래전부터 이런 기능을 제공했다. 심지어 터미널 환경에서도 사용이 가능하다. [본문으로]
'Programmer > Emacs' 카테고리의 다른 글
CentOS 6 emacs-24.5 64bits RPM (0) 2015.05.28 윈도우에서 magit을 제대로 사용하는 방법 (0) 2015.03.28 psvn으로 커밋하면 E000022 에러 발생하는 문제를 해결하기 (0) 2015.02.04 dired에서 한글 깨지는 현상을 해결하는 방법 (0) 2014.12.22 slime을 깔끔하게 종료하는 방법 (0) 2013.05.20 댓글