보다 나은 방법은 커서가 심볼 위에 있을 때 ctrl+c ctrl+d h 를 입력하는 것이다(slime이 실행되어 있는 상태여야 한다). 그러면 해당 심볼에 해당하는 Hyperspec 웹 페이지가 뜨게 된다. 하지만 웹 페이지를 띄우는 방법은 느리고, Emacs를 벗어나야 한다는 게 불편하다. 그래서 Emacs 내에서 Hyperspec을 보는 방법을 적어보려고 한다.
Reference:
http://www.foldr.org/~michaelw/log/programming/lisp/dpans-texinfo-edition
http://www.phys.au.dk/~harder/dpans.html
1. Texinfo가 필요하다. 최신 버전을 다운로드 받아서 설치한다. 설치는 내려받은 소스의 압축을 푼 폴더에서 다음과 같이 입력하면 된다.
./configure
make
sudo make install
그런데 소스 폴더에 있는 INSTALL 파일을 읽어보면 위와 같은 일반적인 설치 과정만으로는 texinfo.tex 와 *.tex 파일들은 설치되지 않으니 추가적인 설치 명령이 필요하다고 하는데, 파일에서 말하는 TEXMF라는 게 무엇인지 모르겠다. 일단 위와 같은 일반적인 설치만으로도 목적을 달성하는 데는 별 문제가 없었으니 넘어가자.
2. dpans2texi-1.03.tar.gz를 다운 받아 압축을 푼 후 압축이 풀린 디렉토리에서 다음과 같이 입력한다.
./configure
wget ftp://parcftp.xerox.com/pub/cl/dpANS3/*
wget ftp://parcftp.xerox.com/pub/cl/dpANS3R/*
make
sudo make install
만일 wget이 없다면 설치하도록 하자. 소스 파일을 다운로드해서 압축을 푼 후 디렉토리에서 다음과 같이 입력하면 된다.
./configure
make
sudo make install
3. .emacs 파일(emacs startup file)에 다음과 같이 추가한다.
(require 'info-look)
(info-lookup-add-help
:mode 'lisp-mode
:regexp "[^][()'\" \t\n]+"
:ignore-case t
:doc-spec '(("(ansicl)Symbol Index" nil nil nil)))
이제 리습 코드의 심볼 위에 커서가 있을 때 ctrl+h S 를 입력하고 엔터를 치면 해당 심볼에 대한 레퍼런스가 바로 뜰 것이다.(글의 시작 부분에 링크한 Reference에는 ctrl+h ctrl+i 라고 써 있지만 최근 버전의 Emacs에서 키 바인딩이 바뀌면서 기존 단축키가 먹지 않는다. ctrl+h 대문자S 를 눌러야 한다.) 그리고 ctrl+h i 를 눌러서 info 페이지로 들어가면 Programming 카테고리에 ANSI Common Lisp이 생긴 것을 볼 수 있다.
다른 방법을 소개하고 있는 페이지들도 링크해본다.
http://www.newartisans.com/blog_files/hyperspec.info.for.emacs.php
http://bc.tech.coop/blog/031002.html
http://lemonodor.com/archives/2002/02/living_in_emacs.html