이맥스

위키백과, 우리 모두의 백과사전.
이동: 둘러보기, 검색
이맥스
Emacs logo
GNU Emacs 23.1.1.png
GNU 이맥스 23.1.1 - X 상의 앤티에일리어싱 글꼴 기능이 제공된 첫 버전
원저자 리처드 스톨만
개발자 GNU 프로젝트
발표일 1976년
프로그래밍 언어 C, 이맥스 리스프
운영 체제 크로스 플랫폼, GNU
언어 영어
종류 문서 편집기
라이선스 GNU GPLv3
웹사이트 www.gnu.org/software/emacs

이맥스(Emacs)는 사용자가 많은 부분을 설정할 수 있는 고성능 문서 편집기이다. 특히 프로그래머들이 많이 쓴다. 이맥스는 단순한 편집기를 넘어서는 텍스트 처리를 위한 포괄적인 통합환경, 또는 응용 프로그램 실행 환경이라고 할 수 있다. 이맥스는 매우 오랜 역사를 갖고 있고, 바탕부터 새롭게 짜는 개선을 거쳐, 많은 친족을 낳으며 현재에 이르고 있다. 현재의 GNU 이맥스의 개발은 유닉스 환경(과 VMS)을 주된 대상으로 하고 있지만, 마이크로소프트 윈도 등 다양한 환경에서도 이용할 수 있다.

역사[편집]

이맥스는 처음에 리처드 스톨만TECO의 매크로로서 개발했다. 이맥스는 Editor MACroS의 약자이다.

나중에 제임스 고슬링고슬링 이맥스로 개선하였고, 이 때에 리스프(Mocklisp 이라 부른다) 언어에 의한 환경설정 기능 및 에디터 자신의 기능을 확장할 수 있는 기능이 포함되었다.

현재 주로 사용되는 것은 자유 소프트웨어 재단리처드 스톨만이 바닥부터 다시 작성한 GNU 이맥스라 불리는 이맥스다. GNU 이맥스도 이맥스 리스프라고 하는 리스프에 기반을 두는 환경 설정 언어를 가지고 있다.

이맥스와 계열 편집기[편집]

이맥스 계열의 편집기들을 복수형으로 Emacsen이라 부른다. Emacsen이 확실한 정의가 있는 것은 아니지만, GNU 이맥스를 중심으로 한 주된 변형에는 다음과 같은 것들이 있다: NEmacs, Epoch, Nepoch, Mule, FSF 이맥스 (GNU 이맥스), XEmacs, Lucid Emacs, Meadow, NTEmacs.

조작법[편집]

이맥스의 기본 키 조작은 키보드의 배치와는 그다지 상관 없이 기능의 이름에 따른 키 조작 명령을 갖는 것이 특징이다. 예를 들면, 커서의 상하 좌우 이동은 각각 C-p, C-n, C-b, C-f 에 할당하고 있으며(여기에서 C-? 은 이맥스에서 쓰는 키 조작의 표기법으로, Ctrl 키를 누르면서 다른 키를 동시에 누른 것을 나타낸다), 각각 Previous, Next, Back, Forward 라는 영어단어의 머릿글자를 딴 것이다. 또한, 이맥스는 Vi에는 있는 편집 모드, 명령 모드, 비주얼 모드 등의 모드도 없다.

이러한 키 조작은 기본적으로 앞에 언급한 이맥스 리스프를 사용하여 전부 설정이 가능하다. vi-mode와 viper-mode와 같이 이맥스에서 vi 의 조작을 흉내낼 수 있는 모드도 몇 개 있다.

GUI 환경[편집]

이맥스 실행 화면

이맥스는 원래 텍스트 단말기에서 쓰도록 설계하여 만들었지만 적어도 GNU 이맥스 버전 18은 X 윈도 시스템 응용 프로그램으로 컴파일할 수 있다. 그러나, 실제의 작동은 xterm 같은 터미널 에뮬레이터 안에서 작동하는 것이었다.

Epoch은 GNU 이맥스 버전 18을 기반으로 하여 마우스를 사용하는 X 윈도 시스템의 다중 윈도 기능에 대응시킨 것이다. Lucid Emacs는 이맥스 버전 19를 기본으로 해 고도의 GUI에 대응시킨 것으로서 Lucid 사가 개발하였다. GNU 이맥스도 서서히 GUI에 대응해 갔지만, 그 개발 속도가 너무나도 느리다는 불만을 가진 팀이 Lucid Emacs를 기본으로 하여 XEmacs 프로젝트를 시작하였다. (덧붙여, 유래가 분명치 않은 라이선스의 GNU 이맥스의 코드가 존재하고 있던 것도 둘이 분리된 이유의 하나이다) XEmacs와 구분하기 위해 원래의 GNU 이맥스를 FSF 이맥스라고 부르기도 한다. 이것은 XEmacs도 GPL을 따르므로 GNU 이맥스로 부를 수 있기 때문이다.

이맥스 버전 21, XEmacs 는 그래픽 기능이 강화되었고, 버퍼 안에 다양한 크기나 스타일의 글꼴을 함께 쓸 수 있다.

응용 프로그램 실행 환경으로서의 이맥스[편집]

이맥스 리스프는 커스터마이즈 언어에 그치지 않고, 완벽한 프로그래밍 언어이기도 하다. 이맥스 기능의 대부분은 이맥스 리스프로 쓰여 있다. 다시 말해, 이맥스의 구조는 이맥스 리스프의 실행 기능(과 기본적인 편집 기능)을 갖고 있는 이맥스 리스프 인터프리터를 중심으로, 리스프로 쓰여진 많은 코드에 의하고 실현되고 있다. 이를테면, 이맥스는 많은 프로그래밍 언어에 맞는 편집 상태가 있어, 자동으로 들여쓰기를 하고, 예약어나 주석을 다른 색으로 보여 주거나, 적당히 입력을 보완해 주는 기능이 있고, 이러한 기능은 전부 이맥스 리스프로 쓰여 있다.

이와 같은 편집 기능에 그치지 않고, 이맥스 리스프는 TCP/IP 통신이나 외부 프로세스의 시동, 파일 입출력 등의 기능을 가지고 있어서, 에디터에 포함된 기능이라고 할 수 없을 만큼 막강한 기능도 많이 이맥스 리스프로 기술되어 있다. 이런 기능들을 이용하여, 독립 응용 프로그램이라고도 할 만한 프로그램이 쓰여 왔다. 이를테면, 그러한 응용 프로그램으로는 메일러 Mew, mh-e, Wanderlust, 뉴스·메일 리더 Gnus, 웹 브라우저 Emacs W3, irc 채팅 클라이언트 에뮬레이터 (M-x terminal-emulator), 자바 통합 개발 환경(JDEE) 등이 있다. 이맥스는 이러한 응용 프로그램을 구동하는 실행 환경이라고 할 수 있다.

이맥스의 문제점[편집]

이 문단의 내용출처가 분명하지 않습니다. 지금 바로 이 문단을 편집하여, 참고하신 문헌이나 신뢰할 수 있는 출처를 주석 등으로 표기해 주세요. 검증되지 않은 내용은 삭제될 수도 있습니다. 내용에 대한 의견이 있으시다면 토론 문서에서 나누어 주세요.

이맥스의 결점의 하나는, 기능이 너무 많아 대응하는 리스프 코드를 불러 오는 데에 긴 시간이 걸리는 점이다(기본 리스프 함수군은 실행 이진 파일로 미리 불러와서 편입되지만). 하드웨어 용량과 속도가 커져서 빨리 시동할 수도 있지만, 실제로는 XEmacs, Meadow2 와 같은 고급 버전이 차례대로 나오기 때문에 시동 시간은 짧아지지 않는다. 다만, 이맥스는 내부 셸에서 다양한 기능을 실행시킬 수 있기 때문에, 이맥스를 일단 구동시켜 놓고 일체 종료하지 않는 방법이 가능하다. 실제로 많은 이맥스 사용자들이 이맥스를 한번 구동하면 종료하지 않기 때문에 시동 시간이 긴 것은 문제가 되지 않는다고 주장하는 사람[누가?]도 있다.

두 번째 문제는 인터페이스가 통합되어 있는 만큼, 초보자가 처음 사용하기 힘들다는 점이다. 다양한 모드들을 동일한 인터페이스로 통합한 것은 기존 사용자에게는 큰 장점일 수 있지만 처음 사용자에게는 낯설다. 예를 들어, 이맥스 메일러에서 검색은 일반 텍스트 문서에서 검색하는 것과 비슷한 방식과 단축키를 이용하지만, 초보자에게는 아웃룩 익스프레스와 같은 메일 클라이언트의 “대문자 소문자 구별”, “날짜 범위 지정” 등의 설정 예정표를 사용한 검색보다 어렵다. 또한, 이맥스의 설정 항목은 GUI로 설정할 수 있는 항목도 있고 M-x customize와 같은 설정표도 제공하고 있지만, 설정표가 편집기 안으로 들어가 버리는 인터페이스는 기존 사용자에게는 장점이지만 초보자들에게 익숙하지 않을 수 있다. 이맥스의 설정은 일반적인 GUI 응용 프로그램들의 설정표와 비교하면 직관적이지 않아 어렵고, 심지어는 설정 파일을 직접 편집하지 않으면 설정할 수 없는 항목도 많다. 게다가 이 설정 파일은 이맥스 리스프 코드 그 자체인 것이다. 설정을 위해서 프로그래밍 언어인 이맥스 리스프를 습득하지 않으면 안되는 상황은 에디터만을 사용하고 싶은 사용자에게 성가신 일이다. 또한, 과거의 이맥스는 화살표 키를 사용하지 않아서 초보자에게 당황스러운 점이 많았다. 그렇지만 화살표 키를 기본으로 사용할 수 있게 되고, Vi처럼 모드가 구분되지 않아서 메모장과 비슷하게 사용할 수 있다는 점에서 이제는 큰 문제가 되지 않을 수도 있다.

세 번째로, 편집기와 리스프 개발 환경이 통합되어 있고 개발이 쉽기 때문에 비슷한 기능이 난립하기 쉽다. 특히 메일러에서는 “내 메일러”식의 변형이 난립하고 있고, 이맥스 매니아가 아닌 사람에 있어서는 어느 것을 사용하는 것이 좋을지 쉽게 알기가 힘들다.

이와 같은 문제가 있지만, 특히 리스프를 아는 프로그래머에 있어서는 인기가 많은 에디터이다.

종교 전쟁[편집]

이맥스와 Vi (계열)는 모두 유닉스 환경에서 인기 있는 편집기이고, 둘 다 열광적인 사용자가 있다. 양측 사이엔 마치 종교 전쟁이라고도 할 수 있는 경쟁이 전개되어 왔다.

바깥 고리[편집]