;; (require 'chicken) ;; (require 'slime) (require 'slime-autoloads) (global-set-key (kbd " s") 'slime) (with-eval-after-load 'slime (slime-setup) (setq inferior-lisp-program "/usr/bin/sbcl") (cp-set-keys :keymap slime-mode-map :bindings `((,(kbd "M-n") next-line) (,(kbd "M-p") previous-line)))) (defun set-cl-repl-keys () (if (or (cp-buffer-name-match-p "^\*inferior-lisp\*\\(<[0-9]*>\\)?") (eq major-mode 'lisp-mode)) (local-set-key (kbd "TAB") 'completion-at-point))) (add-hook 'slime-connected-hook 'set-cl-repl-keys) (add-hook 'comint-mode-hook 'set-cl-repl-keys) (add-hook 'lisp-mode-hook 'set-cl-repl-keys) (setq scheme-program-name "csi -:c") (setq comint-prompt-read-only t) (add-to-list 'auto-mode-alist '("\\.scm\\'" . geiser-mode)) ;; (require 'geiser) (autoload 'geiser-mode "geiser-mode" "geiser-mode." t) (with-eval-after-load 'geiser-mode (cp-set-keys :unset t :keymap geiser-mode-map :bindings `((,(kbd "C-."))))) (autoload 'byte-recompile-file "bytecomp" "byte-recompile-file" t) (defun cp-byte-recompile-el-buffer () "Run byte-recompile-file on current buffer if current buffer is an Emacs Lisp file." (if (equal major-mode 'emacs-lisp-mode) (byte-compile-file (buffer-name)))) (add-hook 'after-save-hook 'cp-byte-recompile-el-buffer)