2008년 3월 10일 월요일

유용한 SLIME 명령어들

사실 코드를 읽다가 repl로 돌아가야 할 경우가 많은데, 그럴 때마다 ctrl+x b로 버퍼를 전환하는 건 여간 귀찮은 일이 아니다. 그럴 경우에 slime repl로 돌아가려면:
ctrl+c ctrl+z

slime을 종료하고 재시동 해야 할 때가 있다. slime 종료는:
, quit

lisp 코드를 읽다가 특정 리습 심볼에 대한 common lisp hyperspec을 보고 싶다면:
ctrl+c ctrl+d h

프로그램을 읽는데, 함수나 변수의 정의된 부분을 살펴보고 싶다면:
meta+.
(meta는 보통 alt. 단 해당 정의부분이 탑레벨에 로드되어 있어야 한다. 예를 들어 define-test 라는 매크로의 정의가 lisp-unit 이라는 라이브러리에 되어 있다면 해당 매크로의 정의를 보기 위해서는 (asdf:operate asdf:load-op 'lisp-unit)과 같이 해당 라이브러리가 로드되어 있어야 한다.)

정의부를 살펴보고 다시 원래 코드로 되돌아가려면:
meta+,
(meta+. 의 반대라고 할 수 있다.)

함수 하나를 컴파일하려면:
커서가 함수 위에 있을 때 ctrl+c ctrl+c

파일을 로드하려면:
로드하려는 파일의 버퍼에서 ctrl+c ctrl+l

파일을 컴파일하고 로드하려면:
컴파일하려는 파일의 버퍼에서 ctrl+c ctrl+k

repl에서 약간의 오타 때문에 거의 똑같은 표현식을 다시 치는 것은 귀찮은 일이다. 입력했던 표현식들을 거꾸로 탐색하려면:
meta+p
반대는:
meta+n

슬라임 쪽 버퍼에 있을 때는 tab만 눌러도 자동완성이 되지만 코드 쪽 버퍼에 있을 때는 meta+tab 이 자동완성.

함수의 caller들을 보고 싶다면:
ctrl+c <
함수의 callee들을 보고 싶다면:
ctrl+c >

슬라임 명령어는 아니고 Emacs 명령어지만 적어본다.
Undo:
ctrl+_
Redo:
ctrl+x z

댓글 1개:

M.W.Park :

emacs shell쪽의 공통(?) 기능이긴 하지만 M-r 로 검색하는 것도 유용하죠.