Skip to content

Instantly share code, notes, and snippets.

@klang
Created May 22, 2011 07:47
Show Gist options
  • Save klang/985262 to your computer and use it in GitHub Desktop.
Save klang/985262 to your computer and use it in GitHub Desktop.
Slime-override-mode to fix paredit-(open|close)-(round|square|curly) and move the keys
;; http://github.com/briancarper/dotfiles/raw/master/.emacs
;; {} are not handled correctly by paredit in the repl,
;; but these lines fixes it
(defvar slime-override-map (make-keymap))
(define-minor-mode slime-override-mode
"Fix SLIME REPL keybindings"
nil " SLIME-override" slime-override-map)
(define-key slime-override-map (kbd "<C-return>") 'paredit-newline)
(define-key slime-override-map (kbd "{") 'paredit-open-curly)
(define-key slime-override-map (kbd "}") 'paredit-close-curly)
(define-key slime-override-map [delete] 'paredit-forward-delete)
(define-key slime-override-map [backspace] 'paredit-backward-delete)
;;(define-key slime-override-map "\C-j" 'slime-repl-return)
(add-hook 'slime-repl-mode-hook
(lambda ()
(slime-override-mode t)
(slime-redirect-inferior-output)
(modify-syntax-entry ?\[ "(]")
(modify-syntax-entry ?\] ")[")
(modify-syntax-entry ?\{ "(}")
(modify-syntax-entry ?\} "){")))
(set-language-environment "UTF-8")
(setq slime-net-coding-system 'utf-8-unix)
(add-hook 'slime-connected-hook 'slime-redirect-inferior-output)
(define-key slime-override-map (kbd "æ") 'paredit-open-round)
(define-key slime-override-map (kbd "ø") 'paredit-open-square)
(define-key slime-override-map (kbd "å") 'paredit-open-curly)
(define-key slime-override-map (kbd "Æ") 'paredit-close-round)
(define-key slime-override-map (kbd "Ø") 'paredit-close-square)
(define-key slime-override-map (kbd "Å") 'paredit-close-curly)
(add-hook 'clojure-mode-hook (lambda () (slime-override-mode t)))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment