Gentoo emacs smalltalkmode

From 흡혈양파의 인터넷工房
Jump to navigation Jump to search

gentoo, emacs 에서 smalltalk-mode 사용하기

gnu smalltalk의 설치

emacs 에서 smalltalk mode를 사용하는데 가장 좋은 방법은 gnu-smalltalk 을 설치하는것입니다.

다음의 USE Flag를 이용해서 gnu smalltalk 을 설치하도록 합니다.

localhost # USE="gtk readline tk emacs" emerge gnu-smalltalk


문서를 작성할때의 gnu-smalltalk 의 버전은 3.2.4 입니다.


emacs를 위한 smalltalk-mode 의 세팅

gnu smalltalk 에서 emacs를 위해 어떤 파일들이 설치되었는지를 먼저 알아보아야 합니다.

다음의 명령을 통해서 어떤 파일들이 설치되었는지 알아보도록 하겠습니다.


localhost # epm -ql gnu-smalltalk | grep emacs
/usr/share/emacs/site-lisp/site-gentoo.d/50gnu-smalltalk-gentoo.el
/usr/share/emacs/site-lisp/gnu-smalltalk/smalltalk-mode.elc
/usr/share/emacs/site-lisp/gnu-smalltalk/smalltalk-mode-init.elc
/usr/share/emacs/site-lisp/gnu-smalltalk/gst-mode.elc
/usr/share/emacs/site-lisp/gnu-smalltalk/smalltalk-mode.el
/usr/share/emacs/site-lisp/gnu-smalltalk/smalltalk-mode-init.el
/usr/share/emacs/site-lisp/gnu-smalltalk/gst-mode.el
/usr/share/emacs/site-lisp/smalltalk-mode.elc
/usr/share/emacs/site-lisp/gst-mode.elc
/usr/share/emacs/site-lisp/smalltalk-mode.el
/usr/share/emacs/site-lisp/gst-mode.el
/usr/share/emacs/site-lisp/site-start.d/smalltalk-mode-init.elc
/usr/share/emacs/site-lisp/site-start.d/smalltalk-mode-init.el


다른파일들은 딱히 신경쓸 필요가 없습니다만.... 일단 site-lisp 과 site-lisp/gnu-smalltalk 안에 같은 파일이 있다는것에 주의할 필요가 있습니다. 이것때문에 emacs 에서 나중에 경고를 확인할 수 있는거죠.


일단 아래의 4개 파일을 지워야 합니다.

  • /usr/share/emacs/site-lisp/smalltalk-mode.elc
  • /usr/share/emacs/site-lisp/gst-mode.elc
  • /usr/share/emacs/site-lisp/smalltalk-mode.el
  • /usr/share/emacs/site-lisp/gst-mode.el


그리고 /usr/share/emacs/site-lisp/gnu-smalltalk/ 디렉토리로 이동해서 smalltalk-mode.el 파일에 아래의 patch 내용을 적용하도록 합니다.

--- smalltalk-mode.el.orig      2013-07-06 12:33:18.111318525 +0900
+++ smalltalk-mode.el   2013-07-16 21:45:33.272194343 +0900
@@ -1049,9 +1049,10 @@
                     (throw 'archive-mode (cdr mode-assoc))))))
       auto-mode-alist)

-(push "\\.star\\'" inhibit-first-line-modes-regexps)
+(when (boundp 'inhibit-first-line-modes-regexps)
+  (push "\\.star\\'" inhibit-first-line-modes-regexps))

 (push '("\\.st\\'" . smalltalk-mode) auto-mode-alist)

 (provide 'smalltalk-mode)
-(autoload 'gst "/usr/local/share/emacs/site-lisp/gst-mode.elc" "" t)
+(autoload 'gst "/usr/share/emacs/site-lisp/gnu-smalltalk/gst-mode.elc" "" t)


이제 patch 의 내용을 적용했다면 emacs 에서 smalltalk-mode.el 파일을 읽어들인다음 M-x byte-compile-file 명령을 통해서 해당파일을 elc로 recompile을 해줘야합니다. 이제는 emacs의 세팅을 조절할때입니다.


emacs의 smalltalk-mode 세팅 및 사용

~/.emacs 파일에 아래의 내용을 넣어준다음 emacs 를 재시작합니다

(require 'smalltalk-mode)


이후 M-x smalltalk-mode 를 이용해서 아래쪽에 smalltalk 이라는 문자가 표시되면 smalltalk-mode 의 사용은 성공입니다.


다만 문법강조외에는.. 크게 기대하지 않는게 좋은거같기는 합니다....