다음 이전 차례

1. Emacs 소개

GNU Emacs는 오늘날, UNIX 세계에서 가장 널리 사용되는 text 에디터중의 하나이다. 그것은 별로 이쁘지도 않고, 새로운 것도 아니다. 그럼에도 불구하고 많은 사람들이 이 에디터를 좋아하는 이유는 그것이 매우 유용한 tool이라고 생각하기 때문일 것이다. 유용한 기능을 발견할 때마다, 전에 다루던 에디터들에서 만나보지 못한 개념들을 만날 때마다, 필자는 이 에디터의 help문이 아직 모두 영어로 씌여져 있다는 데 대해 한탄을 느낀다. `이 help문들이 한글로 되어 있었거나 영어를 한글 읽듯이 읽을 만한 능력이 나에게 있었다면 진작에 알았을 텐데... 이 help문들이 한글화 되어 진다면 전국의 영어에 거부감을 느끼는 많은 UNIX 사용자들, 프로그래머들, 에디터 사용자, 개발자들, 등등등 에게 한줄기 빛이 될텐데...'

Emacs의 강점은 무엇보다도, 그 유연성과 확장성에 있다고 할 수 있다. 만일 그렇지 않더라도 그렇게 말할 수 있다. 필자는 여러분이 Emacs에 대해 알아갈수록 놀라움을 느끼게 되리라 생각한다.

1.1 화일과 버퍼(buffers)의 이해

(여기서의 버퍼는 우리가 버퍼하면 떠오르는 것 하고 다르다는 사람이 있었다.) 에디터들은 실질적인 화일을 편집하지는 않는다. 대신 화일의 내용을 임시 버퍼에 넣고 그것을 편집한다. 기억하라. 버퍼는 화일과 아주 비슷하게 보일지라도 단지 화일의 복사본만을 보관하는 임시 작업영역일 뿐이다.

화일처럼, 버퍼도 이름을 가지고 있다. 버퍼의 이름은 일반적으로 편집하고 있는 화일의 이름과 같다. 여기에는 몇가지 예외가 있다. 그러나 여기서 중요한 것은 버퍼는 화일의 복제라는 점이다. 버퍼를 수정하고 그 수정이 마음에 들면 화일에 저장할 수 있다. 만일 수정이 마음에 들지 않는다면 화일을 저장하지 않고 Emacs 를 빠져나올 수 있다.

1.2 모드

Emacs 는 다양한 편집모드를 가지고 있다. 이것이 의미하는 것은 하고자 하는 작업에 따라 알맞게 행동한다는 것이다. Emacs는 여러가지 다른작업에 따라 달리 행동하는 에디터가 된다. 모드는 주모드(majar modes)와 부모드(minor modes)가 있다. 버퍼는 한번에 한가지 주모드에 속할 수 있다.

        모드                            기능

Fundamantal mode                일반적인 모드, 특별한 것은 없다. 
Text mode                       글을 입력할 때.
Indented text mode              만입이 있는 글 입력.
Picture mode                    간단한 선 그림을 그릴 때.
C mode                          C 프로그램을 작성할 때.
FORTRAN mode                    FORTRAN 프로그램을 작성할 때.
Emacs LISP mode                 Emacs LISP 함수를 만들 때.
LISP mode                       LISP 프로그램을 작성할 때.
LISP interaction mode           LISP 표현들을 검토하고 작성할 때.
nroff mode                      nroff용 화일을 구성할 때.
TeX mode                        TeX용 화일을 구성할 때.
LaTeX mode      

부모드는 Emacs의 행동에 특별한 양상을 추가한다.

        모드                            기능
Abbrev mode                     약자의 사용을 가능하게 해준다.
Fill mode                       word wrap을 가능하게 해준다.
Overwrite mode                  글자를 삽입하는대신 수정한다.
Auto-save mode                  화일을 지정된 만큼 자주 자동저장한다.
...

만일, 특별한 목적을 위한 모드가 필요하다면, 여러분은 그 모드를 프로그램할 수 있다. (Emacs가 행동하는 방식을 조정할 수 있다.) 만일, 그 모드를 필요로하는 사람이 많다면, 벌써 누군가 멋지게 만들어 놓은 것을 구할 수 있을지도 모른다. (일례로 필자는 c++-mode를 구해서 쓰고 있다.)


다음 이전 차례