(keymap-global-set "C-S-K" #'kill-whole-line)
(keymap-global-set "C-w" #'re/kill-bword-or-region)
(keymap-global-set "C-u" (lambda ()
- (interactive)
- (kill-line 0))) ; kill-line backwards
+ (interactive)
+ (kill-line 0))) ; kill-line backwards
(keymap-set key-translation-map "C-h" "<DEL>") ; Prefer F1 for help
(keymap-global-set "C-o" #'re/open-line-below)
(keymap-global-set "M-o" #'re/open-line-above)
(keymap-global-set "M-j" (lambda ()
- (interactive)
- (join-line 0))) ; join-line other way
+ (interactive)
+ (join-line 0))) ; join-line other way
(keymap-global-set "C-z" #'zap-up-to-char)
(keymap-global-set "C-c s" #'sort-lines)
(keymap-global-set "M-;" #'re/comment-dwim)
;; (E)Lisp
(keymap-global-set "C-M-z" #'eval-region)
(keymap-global-set "C-M-S-q" (lambda ()
- (interactive)
- (indent-pp-sexp t)))
+ (interactive)
+ (indent-pp-sexp t)))
;; IELM
(keymap-global-set "C-c i" #'ielm)
(add-hook 'ielm-mode-hook
- (lambda ()
- (keymap-set inferior-emacs-lisp-mode-map "C-l" #'comint-clear-buffer)
- (keymap-set inferior-emacs-lisp-mode-map ")" (re/send-on-close-paren #'ielm-send-input))))
+ (lambda ()
+ (keymap-set inferior-emacs-lisp-mode-map "C-l" #'comint-clear-buffer)
+ (keymap-set inferior-emacs-lisp-mode-map ")" (re/send-on-close-paren #'ielm-send-input))
+ (keymap-set inferior-emacs-lisp-mode-map "]" #'re/insert-all-parens)))
;; Eshell
(keymap-global-set "C-c e" #'eshell)
(add-hook 'eshell-mode-hook
- (lambda ()
- (keymap-set eshell-mode-map ")" (re/send-on-close-paren #'eshell-send-input))
- (keymap-set eshell-mode-map "C-d" #'eshell-quit-or-delete-char)))
+ (lambda ()
+ (keymap-set eshell-mode-map "C-d" #'eshell-quit-or-delete-char)
+ (keymap-set eshell-mode-map ")" (re/send-on-close-paren #'eshell-send-input))
+ (keymap-set eshell-mode-map "]" #'re/insert-all-parens)))
;; SLIME REPL
(add-hook 'slime-repl-mode-hook
- (lambda ()
- (keymap-set slime-repl-mode-map ")" (re/send-on-close-paren #'slime-repl-return))))
+ (lambda ()
+ (keymap-set slime-repl-mode-map ")" (re/send-on-close-paren #'slime-repl-return))
+ (keymap-set slime-repl-mode-map "]" #'re/insert-all-parens)))
;; Org Starters
(keymap-global-set "C-c l" #'org-store-link)
(insert-char 41)
(when (= 0 (car (syntax-ppss)))
(call-interactively ,executor))))
+
+(defun re/insert-all-parens ()
+ "Inserts all the parens needed to balance a sexp.
+If multiple parens are needed at the end to balance a sexp, insert them.
+Bind this to ']' for the interlisp experience."
+ (interactive)
+ (while (>0 (car (syntax-ppss)))
+ (insert-char 41)))
+
;; Eshell
(defun eshell-quit-or-delete-char (arg)
"Delete char if at one, quit eshell if on empty prompt.
(make-directory (file-name-directory path) t)
(setq-local comint-input-ring-file-name path))
(setq-local comint-input-ring-size 10000
- comint-input-ignoredups t)
+ comint-input-ignoredups t)
(comint-read-input-ring))
(defun re/ielm-write-history (&rest _args)