org-agenda-window-setup 'current-window
org-link-file-path-type 'absolute
org-startup-folded t
- org-startup-indented t)
+ org-startup-indented t
+ org-fontify-done-headline nil
+ org-fontify-todo-headline nil
+ org-goto-interface 'outline-path-completion
+ org-outline-path-complete-in-steps nil
+ org-goto-max-level 9)
#+END_SRC
*** Bindings
(keymap-set eshell-mode-map ")" 'eshell-send-on-close-paren)
(keymap-set eshell-mode-map "C-d" 'eshell-quit-or-delete-char)))
#+END_SRC
+** ielm configuration
+I wanted something more like a standard lisp REPL in emacs. Found =ielm=.
+*** Send on Close-Paren
+I wanted something like what the Genera environment has, where putting in a final close-paren will send the command, without having to hit enter.
+
+#+BEGIN_SRC emacs-lisp
+(defun ielm-send-on-close-paren ()
+ "Makes ielm act somewhat like genera.
+Makes a closing paren execute the sexp."
+ (interactive)
+ (insert-char ?\))
+ (when (= 0 (car (syntax-ppss)))
+ (ielm-send-input)))
+#+END_SRC
+*** Persistent command history
+**** Read History
+#+BEGIN_SRC emacs-lisp
+(defun g-ielm-init-history ()
+ "Stolen from https://n16f.net/blog/making-ielm-more-comfortable."
+ (let ((path (expand-file-name "ielm/history" user-emacs-directory)))
+ (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-read-input-ring))
+(add-hook 'ielm-mode-hook 'g-ielm-init-history)
+#+END_SRC
+**** Write History
+#+BEGIN_SRC emacs-lisp
+(defun g-ielm-write-history (&rest _args)
+ "Stolen from https://n16f.net/blog/making-ielm-more-comfortable."
+ (with-file-modes #o600
+ (comint-write-input-ring)))
+
+(advice-add 'ielm-send-input :after 'g-ielm-write-history)
+#+END_SRC
+*** Bindings
+#+BEGIN_SRC emacs-lisp
+(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 ")" 'ielm-send-on-close-paren)))
+#+END_SRC
** Defuns and Bindings
I have quite a few math and work-related defuns, and fewer editing ones. Inversely, I have more editing related bindings than work-related ones. This makes sense, considering my usage patterns.