다음 이전 차례

3. 이멕스 모드

이멕스의 모드는 다른 기능과 형태로 되어있는데 필요에 따라 그것들을 실행하거나 끌 수 있다. 이러한 모드는 문서를 작성하거나 여러 가지 언어로 프로그래밍을 한다든지 홈페이지를 만들거나 메일을 보내고 뉴스를 보고 약속을 기록해 두거나 심지어 게임을 할 수 있도록 기능을 제공한다.

이멕스의 모드는 이멕스의 기능을 확장하고 변형 발전해 나갈 수 있는 Lisp 코드로 만들어진 라이브러리이다.

3.1 주 모드와 부 모드

두 가지 기본적인 모드가 가능한데 그것은 주 모드와 부 모드이다. 그 기능상의 차이점은 그 기능을 중단하거나 실행하기 전에는 잘 이해할 수 없으나 일단 시작을 해보자.

한번에 한가지의 주모드를 실행할 수 있으며, 여러 가지 부모드는 동시에 실행할 수 있다. 주모드는 언어나 주어진 문제와 직접적으로 관련되어 있는 반면 부모드는 좀더 많은 작업을 해 나가는데 특정적으로 사용되어지는 것이다.

간단하게 예를 들어보자. 내가 주로 단순한 텍스트 문서만을 작업하는 경우에 많이 사용하는 주모드는 text-mode이다. 이 모드는 README 파일과 같은 것을 편집할 때 사용하기 위해 만들어졌다. 단어와 문단을 구분하고 일반적 방향키가 내가 원하는 대로 움직이도록 되어있다.

만일 내가 인간소모에 관한 글을 쓸 때 그것이 보기 좋게 되기를 원한다. 예를 들어 알맞은 값에서 줄을 바꿔주는 기능이나 등등 여러 가지가 필요하다. auto-fill 부모드를 실행하여 줄바뀜을 실행할 수 있다. 이 모드는 줄의 마지막을 입력했을 때 알아서 실행이 되며, 이 부모드는 다른 여러 가지 주모드와 같이 실행이 될 수 있다. 여기서 ``알아서 실행'' 이라는 것은 text-mode에서 실행하는 경우와 예를 들어 java-mode에서 실행하는 경우와는 다르다. 난 java 코드가 영어의 일반 문장처럼 줄바꿈이 생기는 것은 원하지 않는다. 그러나 java코드의 블록코멘트는 줄바꿈이 일어나길 원한다. 이 auto-fill 모드는 그러한 것들을 충분히 잘 감지하여 작동한다.

여러 가지 이멕스 모드를 만드는 사람들은 주모드와 부모드에서 벌어질 것들을 충분히 잘 이해해야한다.

이멕스 프로그램의 아스키 그림으로 돌아가서 보면 모드라인에 현재 이멕스가 사용하고 있는 모드가 나타나 있다. 위의 경우는 기본모드인 ``Lisp Interaction''모드이다. 이 모드는 여러분이 Lisp 코드를 만들때만 유용하다.(그러나 대부분의 이멕스는 Lisp로 만들어져 있다.)

3.2 프로그래밍 모드

처음부터 이멕스는 프로그래머를 위해 프로그래머에 의해 만들어졌다. 여러분이 생각할 수 있는 대부분의 여러 프로그램에 대해 높은 수준의 모드가 있다. 이러한 것들에 대해 간단히 설명하고자 한다.

대부분의 프로그램모드는 여러 가지 비슷한 특징이 있다. 일반적으로 다음에 있는 기능을 거의 다 가지고 있을 것이다.

게다가 특정언어와 관련되어 있지는 않지만 프로그래밍과 관련되어 있는 여러 가지 부가기능이 있다. 버젼 콘트롤기능, 코드에 자동적으로 설명추가, Makefile만들기, Change Logs 업데이트기능 들이다.

이러한 여러 가지 기능을 함께 잘 사용한다면 일반적인 상용 통합개발환경(IDE)와도 비교해서 뒤질 것이 없다. 게다가 물론 무료다.

C/C++/Java

C나 C++, Java는 거의 비슷한 문장을 가지기 때문에 하나의 이멕스 모드가 위의 세 가지 언어를 한꺼번에 다룰 수 있다. 이러한 모드는 이미 잘 만들어져 있기 때문에 이멕스와 기본적으로 배포가 된다. 이 모드는 cc-modeCC Mode로 알려져 있다.

좀더 자세한 내용이나 새로운 버젼을 받기 위해서는 http://www.python.org/emacs/로 가보기 바란다.

Perl

이멕스에서 Perl 코드를 편집하기 위해서는 실제 두 가지 모드가 제공이 된다. 첫 번째 것은 perl-mode이고 두 번째 것은 cperl-mode이다. 왜 이렇게 두가지 모드가 있는지는 정확히 알 수 없지만 이멕스에서 Perl 코드를 편집하기 위해서는 perl-mode가 기본 모드니다. 그러나 이 모드는 cperl-mode보다 약간 기능이 적으며 Perl의 몇 가지 뛰어난 언어의 구조를 인식하는데 약간의 문제가 있다.

개인적으로는 cperl-mode를 사용하고 있으며 추천한다. 왜냐면 이 모드는 현재 꽤 활발하게 유지되고 있으며 지금까지 내가 원하던 모든 기능이 들어 있다. 마지막 판은 ftp://ftp.math.ohio-state.edu/pub/users/ilya/emacs에 있다.

그렇지만 내가 한 말에 치중하지 말고 두 가지를 다 사용해 보고 여러분에게 가장 마음에 드는 것을 고르기 바란다.

Python

Python도 또한 이멕스 모드가 있다.(현재 가장 많이 사용하는 스크립트 언어) 지금까지는 이멕스와 같이 배포되지는 않지만 XEmacs와는 배포가 된다. 그렇지만 두 가지 에디터에서 잘 작동을 한다.

여러분은 공식 파이썬 홉페이지 http://www.python.org/emacs/python-mode/에서 python-mode를 얻을 수도 있다.

다른 것들

프로그래머에 도움이 되는 다른 편집모드들이 있는데 다음과 같은 것이다.

그리고 이 문서의 마지막 부분에 더 많은 모드와 추가설치 내용들이 있다.

3.3 Authoring

재미있는 이멕스 모드는 단순히 코드만을 쓰는 사람들을 위한 것은 아니다. 다른 종류의 문서를 작성하는 사람들도 이멕스모드를 이용할 수 있다.

철자검색 (ispell mode)

여러 종류의 문서를 작성하는 사람들도 한번씩은 철자검색이 필요하다. 여러분이 GNU ispell를 설치하였다면 M-x ispell를 이용해서 현재 버퍼의 철자를 검색할 수 있다. 만일 ispell이 알 수 없는 단어를 찾는 경우 교체를 할 수 있는 단어들의 리스트를 보여주면서 여러분이 그중 하나를 선택할 수 있게 해 준다. 이 프로그램은 여러분들이 사용하는 다른 상용 프로그램의 철자 검색프로그램과 동일하다.

HTML (html-helper mode)

여러분들이 가끔 HTML파일을 작성하는 경우 html-helper-mode를 사용해 보기 바란다. http://www.santafe.edu/~nelson/tools/에서 관련된 문서와 다른 것들을 포함해서 구할 수 있다.

이름이 보여주듯이 html-helper-mode는 고전적 스타일로 손으로 HTML코드를 사용하는 사람들을 도와주도록 만들어졌다.

TeX (tex-mode)

TeX을 이용해서 문서를 작성하는 경우 이멕스는 역슬래쉬나 중괄호 기호 등과 다른 여러 문자에 색과 강조기능을 더해준다.

사실 더 이상 TeX을 직접 사용하지는 않지만 예전에 사용할 때 이 모드를 이용하면 TeX 소스 파일을 좀더 쉽게 읽을 수 있었다.

SGML (sgml-mode)

지금 여러분이 읽고 있는 이문서는 SGML로 작성되었다. sgml-mode는 SGML문서의 모든 기본적인 요소를 제공해 준다. 예를 들어 validation, highlighting, forward-tag, backward-tag 등이 있다. 이것은 이멕스의 기본인 한 부분이다.

3.4 다른 모드들

물론 이멕스를 사용하기 편하게 하는 다른 모드들이 있는데 여기서는 그 가운데 자주 사용되는 몇 가지를 소개한다.

Version Control (vc mode)

vc 모드는 자주 사용되는 버전 제어 백엔드인 RCS, SCCS, CVS 등과 함께 파일의 포함과 제외나 판수를 관리를 쉽게 해준다. 이멕스의 기본적인 것중에 하나며 이멕스 문서에 이것에 대한 것을 찾을 수 있다.

Shell Mode

왜 간단한 몇 가지 쉘명령어를 사용하기 위해서 X윈도우나 가상 콘솔을 사용하는가..? 이멕스에서 번거로운 것을 해서 그 문제로부터 여러분들을 구하라. :-)

M-x shell명령어는 이멕스 버퍼에 쉘을 작동시킨다. 여러분이 쉘 상에서 사용하는 명령어를 실행시킬 수 있지만 vipine과 같이 풀 스크린에서 작동하는 프로그램은 실행시킬 수 없다. 왜냐면 이멕스가 화면 뒤에서 여러분의 실제 쉘과 연결을 해서 실행시키기 때문이다..

이것 또한 이멕스의 기본적인 부분이고 이멕스 문서에서 찾을 수 있다.

Telnet and FTP

텔넷이나 FTP를 사용하기 위해 다른 X 윈도우나 가상콘솔을 사용해야만 하는가 ? 이멕스에서 이것들을 직접 실행하라.

텔넷이나 ftp를 사용하기 위해서는 M-x telnetM-x ftp를 입력하라. 자세한 내용은 이멕스 문서를 보기 바란다.

Man

매뉴얼 페이지를 읽으려고 X 윈도우나 가상콘솔을 이용해야하는가 ? 이것 또한 이멕스에서 사용할 수 있다.

이멕스 내의 쉘을 실행시켜 메뉴얼 페이지를 읽을 수 있다. M-x man를 입력해서 사용할 수 있다. 자세한 것은 문서를 보기 바란다.

Ange-FTP

ange-ftp문서에서 인용하였다.

이 팩키지는 이멕스 내에서 간단하고 명확하게 파일 및 디렉토리에 접근하는 것을 용이하게 해준다. 일반적인 파일을 다루는 루틴을 FTP와 함께 사용할 수 있도록 확장하였다.

위의 말은 다른 컴퓨터에 있는 파일을 마치 여러분의 컴퓨터에 있는 것처럼 사용할 수 있게 해준다는 의미다. 그러므로 여러분이 다른 컴퓨터에 있는 파일을 편집할 경우 간단히 이멕스가 그 파일을 열라고 명령을 내리면 된다. 물론 약간 다른 경로를 사용한다. 파일을 다루는 모든 명령어는 기록이 되며 파일을 복구 할 수도 있다. 그리고 C-x C-s를 입력해 저장을 하면, ange-ftp는 파일의 저장과 쓰기를 다른 컴퓨터에 해 준다.

약간 다른 디렉토리 문법은 다음과 같다. 파일이름이 ``myfile''이고 디렉토리가 ``user''이며 컴퓨터가 ``my.host.org''라면 파일을 (C-x f)를 이용해서 다음과 같이 열수 있다.

/user@my.host.org:~user/myfile

이것 또한 이멕스의 기본 팩키지이고 이멕스 문서에서 내용을 찾을 수 있다.

Etienne Grossmann ( etienne@anonimo.isr.ist.utl.pt)에게 위의 예제에 대한 감사의 말을 전한다.


다음 이전 차례