Unix/Linux/Mac,  컴퓨터와 인터넷

[Utility] Emacs 키 바인딩

[ CnUnix ] in KIDS
글 쓴 이(By): tomas (토마스)
날 짜 (Date): 2000년 10월 6일 금요일 오후 06시 43분 02초
제 목(Title): emacs에서…

안녕하세요.

emacs 를 사용해 볼려고 하는데 어려움이 많습니다. alt키를 meta키로 바꾸는법과… tags파일을 읽은 후… 원하는 tag로 이동은 했는데… 다시 이전으로 이동하는 법이 궁금합니다. 매뉴얼에는 C-u – M-.라고 나왔는데… 어떻게 누르라는건지 모르겠네요..

[ CnUnix ] in KIDS
글 쓴 이(By): terzeron (microkid)
날 짜 (Date): 2000년 10월 6일 금요일 오후 10시 31분 24초
제 목(Title): Re: emacs에서…

1. xmodmap을 이용하셔야 합니다. Windows계열이면 당연 Alt가 Meta가 되지만 유닉스에서는 딴 방법이 없다고 합니다. modmap으로 mod1을 clear하고 mod1에 Alt나 Alt_L을 add하시면 될 겁니다. emacs는 mod1을 M-으로 인식합니다. default가 mod1 = Meta키 이기 때문에 Meta를 누르면 M-이 되는 거죠.

xmodmap -e "clear mod1"
xmodmap -e "add mod1 = Alt_L"

이 내용은 그 빠방한 Emacs 매뉴얼에도 안 나와 있답니다.

2. M-*
가끔은 C-x b도 쓸만합니다. 근데 이건 태그가 같은 파일에 있으면 삽질하게 됩니다. 태그 쪽 명령들은 이맥스의 초기 버전들과 호환이 잘 안 되는군요. 저는 GNU Emacs 20.7을 쓰는데, 옛날 태그 명령들이 안 먹혀요. -_-;

3. Emacs 세상을 만들기 위해서는 정말 제대로 된 한글 매뉴얼이 필요하다는 것을 절실히 깨닫고 있습니다. bison-mode 패키지가 필요해서 어제, 오늘 삽질했는데, 여전히 괜찮은 환경을 사용할 수가 없군요. 어떤 모드에서든 indent-region을 주면 emacs가 CPU를 다 잡아먹는 미친 짓을 한답니다. 누구 좀 아시는 분 계시면 조언 좀 부탁드리겠습니다. 그리고 부트업 시에 너무 오래 걸리는데 이것도 어케 빨리 띄우는 방법 없을까요?

[ CnUnix ] in KIDS
글 쓴 이(By): tomas (토마스)
날 짜 (Date): 2000년 10월 7일 토요일 오전 10시 13분 50초
제 목(Title): Re: emacs에서…

답변 감사합니다..

그런데 X-Windows를 사용 못하는 관계로.. xmodmap라는 명령어가 안먹는군요….

[ CnUnix ] in KIDS
글 쓴 이(By): terzeron (microkid)
날 짜 (Date): 2000년 10월 7일 토요일 오후 06시 16분 02초
제 목(Title): Re: emacs에서…

terminal을 쓰시나 보죠? 그럼 어쩔 수 없이 Meta 대신 ESC를 사용하셔야겠군요. 근데 어떤 환경이길래 Alt는 있고 Meta는 없습니까? 윈도우즈는 Alt가 자동으로 Meta가 된다고 하던데요…

[ CnUnix ] in KIDS
글 쓴 이(By): swhan (차카게살자)
날 짜 (Date): 2000년 10월 8일 일요일 오후 01시 31분 14초
제 목(Title): Re: emacs에서…

1. indent-region시에 시스템 특히 emacs가 거의 먹통이 되는 것은 어쩔수 없어 보입니다.

2. emacs가 뜨는데 오래 걸리는 것 역시 어쩔 수 없어 보입니다. 포기하세요. ^^;

3. emacs버젼을 낮추면 좀 빨라질까도 생각을 해보지만.. 최신 버젼의 기능을 포기하기는 싫으니까요.

3. 쩝 저는 이것땜시 개발장비들을 다 NFS로 export시키고는 emacs는 제 PC에서.. 실행합니다. 개발장비에서 Memory랑 CPU를 Emacs가 먹어버리면 거의 죽음이거든요. 이 상황이 편한게.. 가끔 개발장비가 down되더라도 수정하려고 open한 파일들을 날리는 경우가 없으니까요. Unix가 뭔 다운 걱정이냐 그러실지 모르지만… priority를 좀 높여놓은게 하나 삐꾸가 나면.. down보다 더 심각한 상황이 벌어지기도 합니다. (돌려놓은 프로그램 외에 모든 TCP접속이 중단되면서.. ㅃL꾸난 프로그램은 잘 서비스를 하난데 shell하나 실행할 수 없게되는 황당한 사태가 발생. T.T )

4. 하튼.. 전 이런 이유로 PC를 좀 쓸만한거로 하나 장만했습니다. 거기에 Linux/졸라리스를 깔고 쓰고요.

PS. 망헐! emacs! 근데..편하긴 정말 편하네그려. =.=

[ CnUnix ] in KIDS
글 쓴 이(By): dalgong (달공아저씨)
날 짜 (Date): 2000년 10월 8일 일요일 오후 08시 58분 50초
제 목(Title): Re: emacs에서…

indent-region는 느리죠. indent-sexp와 같은 계열을 쓰면 조금 낳죠.

emacs가 뜰때 오래 걸리는 것은 약간씩 조절 가능합니다. (require …)나 (load …)혹은 (load-library …)등을 (autoload …)로 대체하면 그나마 조금 빨라집니다. 어쨌거나, 저 같은 경우는 advice많이 쓰고, 함수 redefine을 많이 하기 때문에, 느려지는건 어쩔 수 없더군요. 하지만, 몇일에 한번 뿐인데 그 정도는 감수할만 하지 않나요? 사실 C code부분에서 조금 뜯어 고치고, lisp startup부분에 많이 쓰는것들 보내면 조금 빨라지긴 합니다만, 일주일에 한두번 보낼 1~2초 때문에 새버젼 나올때 마다 그 닭질 하기는 좀 그렇죠?

결정적으로 emacs가 느린 이유는 emacs-lisp이 후져서 그렇습니다. 이게 왕 무식하게 interpret하기 때문에 빨라지는데는 한계가 있는데다, mule이랑 붙으면서 40%정도 느려졌고 뭐 등등 해서 지금도 장난이 아니지만, 다음 버젼인 GNU Emacs 21.1가 느린거 비하면 지금 꺼는 세발에 피죠 ㅠ_ㅠ (쩝. 이런 슬픈 소식을 전해야하나.. ) 일단 아직까지 개발하고 있는 단계라 tuning을 어느정도 하겠지만, 지금으로써는 상상을 초월합니다. 대부분이 X에서 느려진건데 몇가지 문제점과 덧붙여서 알려드리면, 지금 상태라면 X에서 한글 폰트로 굴림체같은 폰트는 안올라옵니다. emacs lisp에서 강제로 닭질로 올리도록 시켜도 올렸다고 구라치고 민초폰트같은거 그냥 올립니다. 그리고, frame을 새로 띄우면 한 5초 정도 기다려야 합니다. (PIII 500에 128M x 3에서) 때문에, console에서 special-dispaly-buffer-names같은거 설정해서 쓰시던분들 다 바꿔야 합니다.

속도 문제가 관한한 단기적인 해결책은 없습니다. emacs lisp을 진짜 common lisp으로 바꿔 치는 것을 생각할 수 있는데, RMS가 여기에 반대 guile을 올릴꺼라고 하고 있고, 현재 프로젝트가 진행중입니다. 그렇게 되면 상황이 얼마나 낳아질지에 대해서는 잘 모르겠네요. 일던 코드들 다 translate해야하는데, 뭐 그것도 작업을 하고 있지만, 얼마나 빠르게 될지는 잘 모르겠네요. 차라리, 19.34b에 한글 patch한 hanemacs에다가 최신 버젼에 올라간 기능들을 덧붙이는게 더 낳겠다는 생각이 들때도 많습니다.

그래도 한번 띄우고 나면 쓰는데 있어서는 그렇게 느리다고 느껴지지 않는 데, indent-region같은 일은 좀 조심해서 하시면 나름대로 잘 쓸 수 있지 않나요?? 아직 까지는 @_@

[ CnUnix ] in KIDS
글 쓴 이(By): swhan (차카게살자)
날 짜 (Date): 2000년 10월 8일 일요일 오후 10시 49분 32초
제 목(Title): Re: emacs에서…

쩝.. 상황을 보아하니…. 제 PC가 또 upgrade되어야한다는 결론에 도달하는군요.

Hanemacs는 처음 나왔을때야 아주 고맙게 썼습니다만.. 요즘엔 영 못쓰겠다는 생각이 들더군요. 음.. 예전에 text-mode emacs는 어떻게 썼는지 몰겠네. 냠~

[ CnUnix ] in KIDS
글 쓴 이(By): terzeron (microkid)
날 짜 (Date): 2000년 10월 9일 월요일 오전 10시 33분 00초
제 목(Title): Re: emacs에서…

더 느려진다니… T.T 어쨌거나 autoload에 대한 조언 감사합니다.

근데 XEmacs랑 GNU Emacs는 도대체 어떻게 되는 거죠? 일단 인터페이스는 다른데 내부는 같은 코드를 공유하는 게 있나요? 두 버전이 전혀 다른 행보를 보여주고 있어서 Emacs 사용자로서 좀 답답한 생각이 듭니다.

XEmacs는 21.x버전에 이미 진입해있는데(뭐가 그리 많이 바뀌었는지) 그래도 Solaris에서 한글 입력기 쓰기가 불편해서
XEmacs를 쓰지 못하고 있습니다. 나중에 리눅스를 쓰게 되면 좀 생각해봐야죠.

이 글 읽으시는 분들 중에는 XEmacs를 잘(문제없이) 쓰시는 분 계신지 궁금하군요. 고수들께서는 XEmacs랑 한글이 궁합이
잘 안 맞아서 안 쓰는 게 좋다고 하더군요.

[ CnUnix ] in KIDS
글 쓴 이(By): swhan (차카게살자)
날 짜 (Date): 2000년 10월 9일 월요일 오전 11시 32분 35초
제 목(Title): Re: emacs에서…

emacs쓰세요. ^^; 고수는 아니지만 저도 emacs로 바꿨습니다.

저도 바로 작년 이맘때까지 Xemacs를 썼었는데..버젼이 올라가면서 한글 쓰기가 참 괴롭게 되더군요. 기타 자잘한 기능도 emacs가 더 매력이 있구요. xemacs의 편이도 vs emacs하면 emacs에 1표 던지겠습니다. 기본 configuration이 거의 GUI로 해결되는 Xemacs에 비해서 emacs는 좀 난해한 면이 있지만.. .emacs를 한 번 구성한 다음에는 훨 편합니다. 한글 입력이나 이용(서치등)에 대해서도 예전의 hanemacs만큼은 됩니다. 뭐 font-lock-mode에서 default color가 xemacs보다 보기 편하다는 장점도있구요. ^^;

[ CnUnix ] in KIDS
글 쓴 이(By): dalgong (달공아저씨)
날 짜 (Date): 2000년 10월 10일 화요일 오전 12시 09분 08초
제 목(Title): Re: emacs에서…

먼저 hanemacs가 제공하던 자소단위 isearch기능은 emacs에서는 아직까지 없고, 앞으로도 현재 구조로는 지원가능성이 거의 희박합니다.(quail을 다 뜯어 고쳐야 지원이 가능하겠죠)

xemacs랑 emacs의 코드는 내부적으로 상당히 다릅니다. xemacs쪽에서 많은 부분을 완전히 새롭게 re-implement한 경우가 많습니다. (예: charset관련 코드 Ben Wing이 한번 쫙 갈아 엎었죠. 후에 여러문제로 다국어 지원에서 많은 부분들을 손봐야 하는데, 그냥 둔채로 둔게 많습니다. 덕분에 xemacs-mule은 xemacs-jp입니다 -_-;;)

xemacs는 각 부분에 abstraction을 써서, 아랫부분을 주어진 api로만 access할 수 있게 되어 있습니다. 때문에, 많은 장점이 있습니다. 실제로 xemacs가 emacs보다 빠른 경우도 많죠. emacs쪽의 생각은 그런 부분들 까지 api를 나눠서 이전 코드들과의 호환이 깨지는 경우도 생기고 뭐 등등의 이유로 해서 안하는 쪽으로 가는것 같습니다. (심지어 지금 toolbar지원에서도 list구조를 그냥 씁니다.@_@)

이 아저씨들 싸운 얘기(Lucid라는 lisp compiler, C/C++ IDE, Debugger, Profiler등을 만들던 회사가 수십억씩(맞나?)늘 쳐넣어 가면서 망한 사연과 밀접한 관련이 있습니다. 많이 들어보신 Worse is Better를 탄생시킨 사건의 발단이 된 회삽니다.)들은 www.jwz.org에 가시면 emacs schism인가 하는 걸로 오간 편지가 잘 요약되어 있습니다. 제 개인적인 생각에는 개발방법은 xemacs쪽이 더 낳은데, emacs가 더 잘 튜닝이 되어 있다는 겁니다. RMS, Jamie Zawinski, Ben Wing, Jim Blandy 등등 역대 emacs/xemacs개발에 주도적인 역할을 한 사람들의 생생한 증언이 있습니다.

여하튼, xemacs를 사용하시는 분들은 http://emacs.kldp.org에서 xemacs용으로 한글 설정 해둔게 있습니다. 그걸 한번 써보세요. Gnus 5.8.x를 쓰면 xemacs랑 emacs랑 임의로 왔다갔다 해도 data가 깨지는 엽기적인 일은 안 일어납니다. 단 bbdb같은
mule charset에 대한 고려를 전혀~ 하지 않는 elisp package들은 구제불능입니다. 저도 최근에 결국 포기하고 bbdb를 안쓰기로 결정했습니다.

여하튼, 다른 xemacs사용자 분들이 한글 사용하는 불편을 줄일 수 있도록 많이들 참여를 해주세요.

[ CnUnix ] in KIDS
글 쓴 이(By): swhan (foobar)
날 짜 (Date): 2000년 10월 10일 화요일 오전 08시 26분 15초
제 목(Title): Re: emacs에서…

우왓!!! 정말 간만에 보는 내용 꽉꽉밟아넣은 알찬 글이군요. ^___________^

건 그렇고.. hanemacs에서 한글 서치는 자소까지는 모르겠습니다만. 초성/중성/종성의 조합이 끝난 글자의 경우 서치는 초성/중성만 갖고 했더랬습니다. 그게 incremental search에서 자소 조합과정에 생기는 문제가 제일 적다니? 제가 최종버젼까진 안써봐서 몰겠고…96년버젼(버젼 이름도 기억이 안나는군요)까지는 그랬거든요. 하튼 이게 편하긴 편하더군요. ^^;

emacs에서는 한 글자의 조합이 완전히 끝나야 서치를 시작하기 때문에.. incremental search입장에서는 좀 불편하긴 하지여. 하지만 완성된 글자로 한글 서치가 된다는 사실 하나만으로 전 상당히 기뻤습니다. ^_^

[ CnUnix ] in KIDS
글 쓴 이(By): terzeron (microkid)
날 짜 (Date): 2000년 10월 10일 화요일 오후 03시 43분 34초
제 목(Title): Re: emacs에서…

와우! 정말 많은 것을 알고 계시는군요. 누군가 dalgong님의 전화와 네트웍을 도청하고 매 시각 위치를 추적하고 있는 것은 아닌지 주의하시길… 😉

emacs.kldp.org는 전에 emacs 한글 설정 때문에 뒤적거려 보았는데 사실 거창한 이름에 비해서 게시물의 수나 링크는 다소 빈약합니다. 뭐, 도움이 될 만한 일을 하고 싶어도 바쁘기도 하거니와 능력도 부족하여서…

http://oopsla.snu.ac.kr/~jmjeong/emacs/
혹시 관심있으신 분들은 여기도 한 번 가보세요.

몇몇 리눅스 배포판에 들어간 emacs의 한글 설정 파일을 만드신 정재목님의 emacs 게시판입니다. 일반 사용자가 마주치는 사소한 문제들에 대해서 친절한 답변을 해주실 겁니다.

답글 남기기