.emacs

;; Common Lisp Hyper Spec
(require 'hyperspec)
(setq common-lisp-hyperspec-root
      (concat "file://" (expand-file-name "/usr/share/doc/hyperspec/"))
      common-lisp-hyperspec-symbol-table
      (expand-file-name "/usr/share/doc/hyperspec/Data/Map_Sym.txt"))

;; SLIME/SBCL
(require 'slime)
(add-hook 'inferior-lisp-mode-hook (lambda () (inferior-slime-mode t)))
(setq slime-net-coding-system 'utf-8-unix)
(setq inferior-lisp-program "sbcl")
(add-hook 'lisp-mode-hook
          (lambda ()
            (slime-mode t)
            (show-paren-mode)
            (global-set-key "\C-cH" 'hyperspec-lookup)))
(slime-setup '(slime-fuzzy slime-banner slime-asdf slime-autodoc))

(add-hook 'slime-mode-hook
          (lambda ()
            (set-variable lisp-indent-function 'common-lisp-indent-function)
            (slime-define-key "\r" 'newline-and-indent)
            (slime-define-key [tab] 'slime-indent-and-complete-symbol)
            (slime-define-key "\C-cdp" 'add-print-statement)
            (slime-define-key "\C-cdr" 'remove-print-statement)))

;; mark mode
(transient-mark-mode t)