;; Common Lisp style indentation. (load "cl-indent") (setq lisp-indent-function (function common-lisp-indent-function)) (add-to-list 'load-path "~/src/slime/") (setq inferior-lisp-program "/usr/bin/sbcl") (require 'slime) (slime-setup '(slime-fancy slime-asdf)) (global-set-key "\C-cs" 'slime-selector) (setq common-lisp-hyperspec-root "/usr/share/doc/hyperspec/") (setq common-lisp-hyperspec-symbol-table (concat common-lisp-hyperspec-root "Data/Map_Sym.txt")) (defmacro defslime-start (name lisp) `(defun ,name () (interactive) (slime-start :program ,lisp))) (defslime-start sbcl "/usr/bin/sbcl") (defslime-start cmucl "/usr/bin/cmucl") (defslime-start clisp "/usr/bin/clisp") ;; Use paredit-mode for lisp. (require 'paredit) (add-hook 'lisp-mode-hook '(lambda () (paredit-mode 1))) ;; Fix return for SLIME. (define-key paredit-mode-map (kbd "RET") nil) (define-key lisp-mode-shared-map (kbd "RET") 'paredit-newline) ;; I much prefer this behavior. (define-key paredit-mode-map (kbd ")") 'paredit-close-parenthesis) (define-key paredit-mode-map (kbd "M-)") 'paredit-close-parenthesis-and-newline) (provide 'pmg-lisp)