IOXOZB2VUXVUEINLFBT4SPSJV32X5ZFT5FKSVRAIEXEFQJLG6MHQC
5FLRDDUAB7NCOKJKK57IVQBETGX7JTT7GVKFT46ORSZ7OJ7Q2UFQC
RXCY7LD6ZRIOIKZEYKLMCYPMQPXF4DOEEFBDLVR2B22BXLZJFFBQC
A3TVGLVHSVLMEHLHB3TPBSD3QGNVGX3DIK6BEBDTTHWBNW4ALMRAC
ZIZORUH6UNA67S6DRRGGCTSOCYENTHGODHJ5JP3UUPLIKGYU5UVAC
PZ5HUCRXCTUXIKAFUFDGMVSZVV4MIDZ2EE7OC3TBZTTQ7HZCMUYAC
HGGMS7P6BRIGWP6DZS3KLRXQPRETMB2GUULCQZAED6IYD5ENK2DQC
IOVPOFAVXEQIZ7BCFVVAWFW3RYFXPK2GOILDWA6N6QHQHLAJ4XTAC
77GFHLOOX3JBBHHHSSR7TFOMOFUCIT5P6A7PQQOVNCZULXKMERMAC
ABDQA6HCTOUQXY5IDGDTCDBR5DA2WAHUWHBS5EIRYNUJNQCM6GOQC
XJLV3OIIPQ6V6YHJGFI7RRDYI5MXTXCXSVKPOZFUOGMV4B2DEJSQC
IUA6MCZWWCFQ4EJ4GBWYAPLM4IE7SFB34CGSJJTBVOAFTSL4EDEAC
NLKO2HJ55FV76MQCUCSJBSSZFI4NK6ROLQ323F2RDFDTLU5IFLDQC
DZNNVEMP3EYFGAEFWMBSMPU55VQT7QVAVNNOG473CN3FAT4TTARQC
NWXFEA3LHLS5YE6BUVB2IXMIA6ARTVH5PU3FD4I4M5UCDYMC6INAC
YZB5M5LUC7P6UJQTLIX45W4EDXOT4PUXQ4J5UEELFXWQTW2XTB2QC
(defun op--collect-args (body)
(flet ((walker (body &optional args)
(if (null body)
args
(if (symbolp body)
(when (eql ?\_ (elt (symbol-name body) 0))
(cons body args))
(if (listp body)
(append (op--collect-args (car body))
(op--collect-args (cdr body))
))))))
(sort (walker body)
(lambda (a b)
(< (string-to-number (subseq (symbol-name a) 1))
(string-to-number (subseq (symbol-name b) 1)))))))
(defmacro op (&rest body)
`(lambda ,(op--collect-args body)
,@body))
(defun op--collect-args (body)
(flet ((walker (body &optional args)
(if (null body)
args
(if (symbolp body)
(when (eql ?\_ (elt (symbol-name body) 0))
(cons body args))
(if (listp body)
(append (op--collect-args (car body))
(op--collect-args (cdr body))
))))))
(sort (walker body)
(lambda (a b)
(< (string-to-number (subseq (symbol-name a) 1))
(string-to-number (subseq (symbol-name b) 1)))))))
(defmacro op (&rest body)
`(lambda ,(op--collect-args body)
,@body))
(deftheme el-zenburn
"Created 2018-09-13.")
(custom-theme-set-variables
'el-zenburn
'(ansi-color-faces-vector [default bold shadow italic underline bold bold-italic bold])
'(ansi-color-names-vector ["#3F3F3F" "#CC9393" "#7F9F7F" "#F0DFAF" "#8CD0D3" "#DC8CC3" "#93E0E3" "#DCDCCC"])
'(blink-matching-paren-distance 1024)
'(hl-paren-background-colors nil)
'(hl-paren-colors (quote ("yellow1" "gold1" "gold2" "gold3" "gold4")))
'(initial-frame-alist nil)
'(mac-command-modifier (quote super))
'(mac-option-modifier (quote meta))
'(nrepl-message-colors (quote ("#CC9393" "#DFAF8F" "#F0DFAF" "#7F9F7F" "#BFEBBF" "#93E0E3" "#94BFF3" "#DC8CC3"))))
(custom-theme-set-faces
'el-zenburn
'(default ((t (:inherit nil :stipple nil :background "#3F3F3F" :foreground "#DCDCCC" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight ultra-light :height 131 :width normal :foundry "nil" :family "Source Code Pro"))))
'(fringe ((t (:background "#3f3f3f" :foreground "#DCDCCC"))))
'(header-line ((t (:background "#2B2B2B" :foreground "#F0DFAF" :box nil))))
'(linum ((t (:foreground "gray45" :box nil :underline nil))))
'(mode-line ((t (:background "dark slate gray" :foreground "#8FB28F" :box nil))))
'(mode-line-highlight ((t nil)))
'(mode-line-inactive ((t (:background "slate gray" :foreground "#5F7F5F" :box nil))))
'(region ((t (:inverse-video t))))
'(show-paren-mismatch ((t (:background "#6F6F6F" :foreground "red" :weight bold))))
'(tool-bar ((t (:background "grey75" :foreground "black" :box nil))))
'(variable-pitch ((t (:family "Lato"))))
'(vertical-border ((t (:foreground "slate gray")))))
(provide-theme 'el-zenburn)
(deftheme el-zenburn
"Created 2018-09-13.")
(custom-theme-set-variables
'el-zenburn
'(ansi-color-faces-vector [default bold shadow italic underline bold bold-italic bold])
'(ansi-color-names-vector ["#3F3F3F" "#CC9393" "#7F9F7F" "#F0DFAF" "#8CD0D3" "#DC8CC3" "#93E0E3" "#DCDCCC"])
'(blink-matching-paren-distance 1024)
'(hl-paren-background-colors nil)
'(hl-paren-colors (quote ("yellow1" "gold1" "gold2" "gold3" "gold4")))
'(initial-frame-alist nil)
'(mac-command-modifier (quote super))
'(mac-option-modifier (quote meta))
'(nrepl-message-colors (quote ("#CC9393" "#DFAF8F" "#F0DFAF" "#7F9F7F" "#BFEBBF" "#93E0E3" "#94BFF3" "#DC8CC3"))))
(custom-theme-set-faces
'el-zenburn
'(default ((t (:inherit nil :stipple nil :background "#3F3F3F" :foreground "#DCDCCC" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight ultra-light :height 131 :width normal :foundry "nil" :family "Source Code Pro"))))
'(fringe ((t (:background "#3f3f3f" :foreground "#DCDCCC"))))
'(header-line ((t (:background "#2B2B2B" :foreground "#F0DFAF" :box nil))))
'(linum ((t (:foreground "gray45" :box nil :underline nil))))
'(mode-line ((t (:background "dark slate gray" :foreground "#8FB28F" :box nil))))
'(mode-line-highlight ((t nil)))
'(mode-line-inactive ((t (:background "slate gray" :foreground "#5F7F5F" :box nil))))
'(region ((t (:inverse-video t))))
'(show-paren-mismatch ((t (:background "#6F6F6F" :foreground "red" :weight bold))))
'(tool-bar ((t (:background "grey75" :foreground "black" :box nil))))
'(variable-pitch ((t (:family "Lato"))))
'(vertical-border ((t (:foreground "slate gray")))))
(provide-theme 'el-zenburn)
(defun post-init ()
;;;;; INDENTATION SETUP {{{
(progn
(setq-default indent-tabs-mode nil
tab-width 2)
(defvaralias 'c-basic-offset 'tab-width)
(defvaralias 'sh-basic-offset 'tab-width)
(defvaralias 'js2-basic-offset 'tab-width)
(defvaralias 'sgml-basic-offset 'tab-width)
(defvaralias 'cperl-indent-level 'tab-width))
;;;;; }}}
;; (require 'projectile)
;; (require 'evil-numbers)
(unless (fboundp 'server-running-p)
(require 'server))
(let ((server-name (if fwoar.is-ordinary
server-name
"notes")))
(unless (server-running-p)
(server-start)))
(projectile-mode)
(evil-mode)
;; (paredit-mode)
;;(global-company-mode)
;; (setq linum-format "%5d\u2502")
(global-linum-mode)
(set-exec-path-from-shell-PATH)
;; NOTE: this must be here...
(global-company-mode 1)
(slime-setup))
(defun cold-boot ()
(setq fwoar.is-ordinary (not (string= invocation-name "EmacsNotes")))
(add-hook 'after-init-hook 'post-init)
(when (file-exists-p "/usr/local/bin/gls")
(setq insert-directory-program "/usr/local/bin/gls"))
(setq default-directory "~/emacs-home/")
(make-directory default-directory t)
(setq vc-follow-symlinks t)
(require 'package)
(setq package-archives '(("gnu" . "http://elpa.gnu.org/packages/")
("org" . "http://orgmode.org/elpa/")
("melpa" . "https://melpa.org/packages/")
("melpa-stable" . "http://stable.melpa.org/packages/"))
package-archive-priorities '(("melpa-stable" . 1)
("gnu" . 0)
("melpa" . 2)
("org" . 3)))
(package-initialize)
(when (not (package-installed-p 'use-package))
(package-refresh-contents)
(package-install 'use-package))
(setq browse-url-browser-function
'eww-browse-url)
(require 'use-package))
;;; el-zenburn-theme.el --- A low contrast color theme for Emacs.
;; Copyright (C) 2018- Edward Langley
;; Author: Edward Langley <el@nowhere.example.com>
;; URL: http://nowhere.example.com
;; Package-Version: 20180913.2210
;; Version: 0.1
(deftheme el-zenburn
"Created 2018-09-13.")
(custom-theme-set-variables
'el-zenburn
'(ansi-color-faces-vector [default bold shadow italic underline bold bold-italic bold])
'(ansi-color-names-vector ["#3F3F3F" "#CC9393" "#7F9F7F" "#F0DFAF" "#8CD0D3" "#DC8CC3" "#93E0E3" "#DCDCCC"])
'(blink-matching-paren-distance 1024)
'(hl-paren-background-colors nil)
'(hl-paren-colors (quote ("yellow1" "gold1" "gold2" "gold3" "gold4")))
'(initial-frame-alist nil)
'(mac-command-modifier (quote super))
'(mac-option-modifier (quote meta))
'(nrepl-message-colors (quote ("#CC9393" "#DFAF8F" "#F0DFAF" "#7F9F7F" "#BFEBBF" "#93E0E3" "#94BFF3" "#DC8CC3"))))
(custom-theme-set-faces
'el-zenburn
'(default ((t (:inherit nil :stipple nil :background "#3F3F3F" :foreground "#DCDCCC" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight ultra-light :height 131 :width normal :foundry "nil" :family "Source Code Pro"))))
'(fringe ((t (:background "#3f3f3f" :foreground "#DCDCCC"))))
'(header-line ((t (:background "#2B2B2B" :foreground "#F0DFAF" :box nil))))
'(linum ((t (:foreground "gray45" :box nil :underline nil))))
'(mode-line ((t (:background "dark slate gray" :foreground "#8FB28F" :box nil))))
'(mode-line-highlight ((t nil)))
'(mode-line-inactive ((t (:background "slate gray" :foreground "#5F7F5F" :box nil))))
'(region ((t (:inverse-video t))))
'(show-paren-mismatch ((t (:background "#6F6F6F" :foreground "red" :weight bold))))
'(tool-bar ((t (:background "grey75" :foreground "black" :box nil))))
'(variable-pitch ((t (:family "Lato"))))
'(vertical-border ((t (:foreground "slate gray")))))
(provide-theme 'el-zenburn)
;;;; SLIME SETUP {{{
;; (load (expand-file-name "~/quicklisp/slime-helper.el"))
(add-to-list 'load-path "~/git_repos/3dp/slime/")
(require 'slime)
(use-package slime-company
:ensure t)
(global-set-key (kbd "C-c x") 'slime-export-symbol-at-point)
(when (and (boundp 'common-lisp-hyperspec-root)
(string-prefix-p "/" common-lisp-hyperspec-root))
(setq common-lisp-hyperspec-root
(concat "file://" common-lisp-hyperspec-root)))
;; Replace "sbcl" with the path to your implementation
(setq inferior-lisp-program "~/sbcl/bin/sbcl")
(add-hook 'lisp-mode-hook
'(lambda ()
;;(define-key evil-insert-state-map "^N" 'slime-fuzzy-indent-and-complete-symbol)
;; (unless (string= "*slime-scratch*" (buffer-name))
;; (paredit-mode)
;; (evil-paredit-mode))
(rainbow-delimiters-mode)))
(setq slime-contribs
'(slime-fancy
slime-company
slime-macrostep
slime-trace-dialog
slime-mdot-fu))
(modify-syntax-entry ?- "w" lisp-mode-syntax-table)
(modify-syntax-entry ?* "w" lisp-mode-syntax-table)
(modify-syntax-entry ?+ "w" lisp-mode-syntax-table)
(modify-syntax-entry ?! "w" lisp-mode-syntax-table)
(modify-syntax-entry ?$ "w" lisp-mode-syntax-table)
(modify-syntax-entry ?% "w" lisp-mode-syntax-table)
(modify-syntax-entry ?& "w" lisp-mode-syntax-table)
(modify-syntax-entry ?% "w" lisp-mode-syntax-table)
(modify-syntax-entry ?= "w" lisp-mode-syntax-table)
(modify-syntax-entry ?< "w" lisp-mode-syntax-table)
(modify-syntax-entry ?> "w" lisp-mode-syntax-table)
(modify-syntax-entry 91 "(" lisp-mode-syntax-table)
(modify-syntax-entry 93 ")" lisp-mode-syntax-table)
;;(modify-syntax-entry ?@ "w" lisp-mode-syntax-table)
(modify-syntax-entry ?^ "w" lisp-mode-syntax-table)
(modify-syntax-entry ?_ "w" lisp-mode-syntax-table)
(modify-syntax-entry ?~ "w" lisp-mode-syntax-table)
(modify-syntax-entry ?. "w" lisp-mode-syntax-table)
(setq shr-inhibit-images t
shr-use-fonts nil)
(defun fwoar--clhs-lookup (&rest args)
(let ((browse-url-browser-function 'eww-browse-url))
(hyperspec-lookup (word-at-point))))
(pushnew (list ?h "Check hyperspec" #'fwoar--clhs-lookup)
slime-selector-methods
:key #'car)
(defun fwoar--slime-find-system ()
(let ((systems (directory-files
(locate-dominating-file default-directory
(lambda (n)
(directory-files n nil "^[^.#][^#]*[.]asd$")))
t "^[^.#][^#]*[.]asd$")))
(find-file (if (not (null (cdr systems)))
(helm-comp-read "system:" systems)
(car systems)))))
(pushnew (list ?S "Goto System" #'fwoar--slime-find-system)
slime-selector-methods
:key #'car)
;;;;; }}}
(use-package evil
:ensure t
:config
(advice-add 'evil-delete-marks :after
(lambda (&rest args)
(evil-visual-mark-render)))
(evil-define-key 'normal lisp-mode-map " o" 'slime-selector)
(define-key evil-insert-state-map (kbd "TAB") 'company-indent-or-complete-common)
(evil-mode)
(use-package evil-smartparens
:ensure t
:after smartparens
:config
(evil-smartparens-mode 1)
(progn ;; wrapping
(define-key evil-normal-state-map ",W" 'sp-wrap-round)
(define-key evil-normal-state-map ",w(" 'sp-wrap-round)
(define-key evil-normal-state-map ",w)" 'sp-wrap-round)
(define-key evil-normal-state-map ",w{" 'sp-wrap-curly)
(define-key evil-normal-state-map ",w}" 'sp-wrap-curly)
(define-key evil-normal-state-map ",w[" 'sp-wrap-square)
(define-key evil-normal-state-map ",w]" 'sp-wrap-square))
(progn ;; splicing
(define-key evil-normal-state-map ",S" 'sp-splice-sexp)
(define-key evil-normal-state-map ",A" 'sp-splice-sexp-killing-backward)
(define-key evil-normal-state-map ",D" 'sp-splice-sexp-killing-forward)
(define-key evil-normal-state-map ",F" 'sp-splice-sexp-killing-around))
(progn ;; barf/slurp
(define-key evil-normal-state-map ",," 'sp-backward-barf-sexp)
(define-key evil-normal-state-map ",." 'sp-forward-barf-sexp)
(define-key evil-normal-state-map ",<" 'sp-backward-slurp-sexp)
(define-key evil-normal-state-map ",>" 'sp-forward-slurp-sexp))
(progn ;; misc
(define-key evil-normal-state-map ",~" 'sp-convolute-sexp)
(define-key evil-normal-state-map ",a" 'sp-absorb-sexp)
(define-key evil-normal-state-map ",e" 'sp-emit-sexp)
(define-key evil-normal-state-map ",`" 'sp-clone-sexp)
(define-key evil-normal-state-map ",J" 'sp-join-sexp)
(define-key evil-normal-state-map ",|" 'sp-split-sexp))
(progn ;; narrowing
(define-key evil-normal-state-map " n(" 'sp-narrow-to-sexp)
(define-key evil-normal-state-map " n)" 'sp-narrow-to-sexp)
(define-key evil-normal-state-map " nn" 'narrow-to-defun)
(define-key evil-normal-state-map " nr" 'narrow-to-region)
(define-key evil-normal-state-map " nw" 'widen)))
(progn ;; navigation
(define-key evil-normal-state-map " f" 'helm-projectile)
(define-key evil-normal-state-map " j" 'helm-buffers-list)
(define-key evil-normal-state-map " u" 'undo-tree-visualize))
(progn ;; completion
(define-key evil-normal-state-map (kbd "TAB") 'company-indent-or-complete-common)
(define-key evil-insert-state-map (kbd "TAB") 'company-indent-or-complete-common))
;; (use-package evil-paredit
;; :ensure t
;; :after paredit
;; :config
;; (evil-paredit-mode))
;;(use-package evil-numbers
;; :ensure t
;; :config
;; (global-set-key (kbd "C-c +") 'evil-numbers/inc-at-pt)
;; (global-set-key (kbd "C-c -") 'evil-numbers/dec-at-pt))
(use-package evil-surround
:ensure t
:config
(global-evil-surround-mode))
(use-package evil-leader
:config (evil-leader/set-leader "ß")))
(defun do-init ()
;;;;; INDENTATION SETUP {{{
(progn
(setq-default indent-tabs-mode nil
tab-width 2)
(defvaralias 'c-basic-offset 'tab-width)
(defvaralias 'sh-basic-offset 'tab-width)
(defvaralias 'js2-basic-offset 'tab-width)
(defvaralias 'sgml-basic-offset 'tab-width)
(defvaralias 'cperl-indent-level 'tab-width))
;;;;; }}}
;; (require 'projectile)
;; (require 'evil-numbers)
(unless (fboundp 'server-running-p)
(require 'server))
(let ((server-name (if fwoar.is-ordinary
server-name
"notes")))
(unless (server-running-p)
(server-start)))
(projectile-mode)
(evil-mode)
;; (paredit-mode)
;;(global-company-mode)
;; (setq linum-format "%5d\u2502")
(global-linum-mode)
(set-exec-path-from-shell-PATH)
;; NOTE: this must be here...
(global-company-mode 1)
(slime-setup))
(setq fwoar.is-ordinary (not (string= invocation-name "EmacsNotes")))
(add-hook 'after-init-hook 'do-init)
(when (file-exists-p "/usr/local/bin/gls")
(setq insert-directory-program "/usr/local/bin/gls"))
(setq vc-follow-symlinks t)
(require 'package)
(setq package-archives '(("gnu" . "http://elpa.gnu.org/packages/")
("org" . "http://orgmode.org/elpa/")
("melpa" . "https://melpa.org/packages/")
("melpa-stable" . "http://stable.melpa.org/packages/"))
package-archive-priorities '(("melpa-stable" . 1)
("gnu" . 0)
("melpa" . 2)
("org" . 3)))
(package-initialize)
(when (not (package-installed-p 'use-package))
(package-refresh-contents)
(package-install 'use-package))
(require 'use-package)
(setq browse-url-browser-function
'eww-browse-url)
;;;; SLIME SETUP {{{
;; (load (expand-file-name "~/quicklisp/slime-helper.el"))
(add-to-list 'load-path "~/git_repos/3dp/slime/")
(require 'slime)
(use-package slime-company
:ensure t)
(global-set-key (kbd "C-c x") 'slime-export-symbol-at-point)
(when (and (boundp 'common-lisp-hyperspec-root)
(string-prefix-p "/" common-lisp-hyperspec-root))
(setq common-lisp-hyperspec-root
(concat "file://" common-lisp-hyperspec-root)))
;; Replace "sbcl" with the path to your implementation
(setq inferior-lisp-program "~/sbcl/bin/sbcl")
(add-hook 'lisp-mode-hook
'(lambda ()
;;(define-key evil-insert-state-map "^N" 'slime-fuzzy-indent-and-complete-symbol)
;; (unless (string= "*slime-scratch*" (buffer-name))
;; (paredit-mode)
;; (evil-paredit-mode))
(rainbow-delimiters-mode)))
(load-package-configuration 'slime)
(setq slime-contribs
'(slime-fancy
slime-company
slime-macrostep
slime-trace-dialog
slime-mdot-fu))
(modify-syntax-entry ?- "w" lisp-mode-syntax-table)
(modify-syntax-entry ?* "w" lisp-mode-syntax-table)
(modify-syntax-entry ?+ "w" lisp-mode-syntax-table)
(modify-syntax-entry ?! "w" lisp-mode-syntax-table)
(modify-syntax-entry ?$ "w" lisp-mode-syntax-table)
(modify-syntax-entry ?% "w" lisp-mode-syntax-table)
(modify-syntax-entry ?& "w" lisp-mode-syntax-table)
(modify-syntax-entry ?% "w" lisp-mode-syntax-table)
(modify-syntax-entry ?= "w" lisp-mode-syntax-table)
(modify-syntax-entry ?< "w" lisp-mode-syntax-table)
(modify-syntax-entry ?> "w" lisp-mode-syntax-table)
(modify-syntax-entry 91 "(" lisp-mode-syntax-table)
(modify-syntax-entry 93 ")" lisp-mode-syntax-table)
;;(modify-syntax-entry ?@ "w" lisp-mode-syntax-table)
(modify-syntax-entry ?^ "w" lisp-mode-syntax-table)
(modify-syntax-entry ?_ "w" lisp-mode-syntax-table)
(modify-syntax-entry ?~ "w" lisp-mode-syntax-table)
(modify-syntax-entry ?. "w" lisp-mode-syntax-table)
(setq shr-inhibit-images t
shr-use-fonts nil)
(defun fwoar--clhs-lookup (&rest args)
(let ((browse-url-browser-function 'eww-browse-url))
(hyperspec-lookup (word-at-point))))
(pushnew (list ?h "Check hyperspec" #'fwoar--clhs-lookup)
slime-selector-methods
:key #'car)
(defun fwoar--slime-find-system ()
(let ((systems (directory-files
(locate-dominating-file default-directory
(lambda (n)
(directory-files n nil "^[^.#][^#]*[.]asd$")))
t "^[^.#][^#]*[.]asd$")))
(find-file (if (not (null (cdr systems)))
(helm-comp-read "system:" systems)
(car systems)))))
(pushnew (list ?S "Goto System" #'fwoar--slime-find-system)
slime-selector-methods
:key #'car)
;;;;; }}}
(helm-ls-git)
(helm-css-scss)
;;(ac-js2)
;;(helm-cider :defer 5)
(helm-ag-r)
(helm-ag)
(project-explorer))
(highlight-parentheses)
(magit :defer 2)
(markdown-mode)
(project-explorer)
(rainbow-delimiters)
(scss-mode)
(smartparens :ensure t)
(vue-mode)
(web-mode)
(yaml-mode))
(message (format "s-c-c is: %s" slime-company-completion))
;;; el-zenburn-theme.el --- A low contrast color theme for Emacs.
;; Copyright (C) 2018- Edward Langley
;; Author: Edward Langley <el@nowhere.example.com>
;; URL: http://nowhere.example.com
;; Package-Version: 20180913.2210
;; Version: 0.1
(deftheme el-zenburn
"Created 2018-09-13.")
(custom-theme-set-variables
'el-zenburn
'(ansi-color-faces-vector [default bold shadow italic underline bold bold-italic bold])
'(ansi-color-names-vector ["#3F3F3F" "#CC9393" "#7F9F7F" "#F0DFAF" "#8CD0D3" "#DC8CC3" "#93E0E3" "#DCDCCC"])
'(blink-matching-paren-distance 1024)
'(hl-paren-background-colors nil)
'(hl-paren-colors (quote ("yellow1" "gold1" "gold2" "gold3" "gold4")))
'(initial-frame-alist nil)
'(mac-command-modifier (quote super))
'(mac-option-modifier (quote meta))
'(nrepl-message-colors (quote ("#CC9393" "#DFAF8F" "#F0DFAF" "#7F9F7F" "#BFEBBF" "#93E0E3" "#94BFF3" "#DC8CC3"))))
(custom-theme-set-faces
'el-zenburn
'(default ((t (:inherit nil :stipple nil :background "#3F3F3F" :foreground "#DCDCCC" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight ultra-light :height 131 :width normal :foundry "nil" :family "Source Code Pro"))))
'(fringe ((t (:background "#3f3f3f" :foreground "#DCDCCC"))))
'(header-line ((t (:background "#2B2B2B" :foreground "#F0DFAF" :box nil))))
'(linum ((t (:foreground "gray45" :box nil :underline nil))))
'(mode-line ((t (:background "dark slate gray" :foreground "#8FB28F" :box nil))))
'(mode-line-highlight ((t nil)))
'(mode-line-inactive ((t (:background "slate gray" :foreground "#5F7F5F" :box nil))))
'(region ((t (:inverse-video t))))
'(show-paren-mismatch ((t (:background "#6F6F6F" :foreground "red" :weight bold))))
'(tool-bar ((t (:background "grey75" :foreground "black" :box nil))))
'(variable-pitch ((t (:family "Lato"))))
'(vertical-border ((t (:foreground "slate gray")))))
(provide-theme 'el-zenburn)
;;;; SLIME SETUP {{{
;; (load (expand-file-name "~/quicklisp/slime-helper.el"))
(add-to-list 'load-path "~/git_repos/3dp/slime/")
(require 'slime)
(use-package slime-company
:ensure t)
(global-set-key (kbd "C-c x") 'slime-export-symbol-at-point)
(when (and (boundp 'common-lisp-hyperspec-root)
(string-prefix-p "/" common-lisp-hyperspec-root))
(setq common-lisp-hyperspec-root
(concat "file://" common-lisp-hyperspec-root)))
;; Replace "sbcl" with the path to your implementation
(setq inferior-lisp-program "~/sbcl/bin/sbcl")
(add-hook 'lisp-mode-hook
'(lambda ()
;;(define-key evil-insert-state-map "^N" 'slime-fuzzy-indent-and-complete-symbol)
;; (unless (string= "*slime-scratch*" (buffer-name))
;; (paredit-mode)
;; (evil-paredit-mode))
(rainbow-delimiters-mode)))
(setq slime-contribs
'(slime-fancy
slime-company
slime-macrostep
slime-trace-dialog
slime-mdot-fu))
(modify-syntax-entry ?- "w" lisp-mode-syntax-table)
(modify-syntax-entry ?* "w" lisp-mode-syntax-table)
(modify-syntax-entry ?+ "w" lisp-mode-syntax-table)
(modify-syntax-entry ?! "w" lisp-mode-syntax-table)
(modify-syntax-entry ?$ "w" lisp-mode-syntax-table)
(modify-syntax-entry ?% "w" lisp-mode-syntax-table)
(modify-syntax-entry ?& "w" lisp-mode-syntax-table)
(modify-syntax-entry ?% "w" lisp-mode-syntax-table)
(modify-syntax-entry ?= "w" lisp-mode-syntax-table)
(modify-syntax-entry ?< "w" lisp-mode-syntax-table)
(modify-syntax-entry ?> "w" lisp-mode-syntax-table)
(modify-syntax-entry 91 "(" lisp-mode-syntax-table)
(modify-syntax-entry 93 ")" lisp-mode-syntax-table)
;;(modify-syntax-entry ?@ "w" lisp-mode-syntax-table)
(modify-syntax-entry ?^ "w" lisp-mode-syntax-table)
(modify-syntax-entry ?_ "w" lisp-mode-syntax-table)
(modify-syntax-entry ?~ "w" lisp-mode-syntax-table)
(modify-syntax-entry ?. "w" lisp-mode-syntax-table)
(setq shr-inhibit-images t
shr-use-fonts nil)
(defun fwoar--clhs-lookup (&rest args)
(let ((browse-url-browser-function 'eww-browse-url))
(hyperspec-lookup (word-at-point))))
(pushnew (list ?h "Check hyperspec" #'fwoar--clhs-lookup)
slime-selector-methods
:key #'car)
(defun fwoar--slime-find-system ()
(let ((systems (directory-files
(locate-dominating-file default-directory
(lambda (n)
(directory-files n nil "^[^.#][^#]*[.]asd$")))
t "^[^.#][^#]*[.]asd$")))
(find-file (if (not (null (cdr systems)))
(helm-comp-read "system:" systems)
(car systems)))))
(pushnew (list ?S "Goto System" #'fwoar--slime-find-system)
slime-selector-methods
:key #'car)
;;;;; }}}
(use-package evil
:ensure t
:config
(advice-add 'evil-delete-marks :after
(lambda (&rest args)
(evil-visual-mark-render)))
(evil-define-key 'normal lisp-mode-map " o" 'slime-selector)
(define-key evil-insert-state-map (kbd "TAB") 'company-indent-or-complete-common)
(evil-mode)
(use-package evil-smartparens
:ensure t
:after smartparens
:config
(evil-smartparens-mode 1)
(progn ;; wrapping
(define-key evil-normal-state-map ",W" 'sp-wrap-round)
(define-key evil-normal-state-map ",w(" 'sp-wrap-round)
(define-key evil-normal-state-map ",w)" 'sp-wrap-round)
(define-key evil-normal-state-map ",w{" 'sp-wrap-curly)
(define-key evil-normal-state-map ",w}" 'sp-wrap-curly)
(define-key evil-normal-state-map ",w[" 'sp-wrap-square)
(define-key evil-normal-state-map ",w]" 'sp-wrap-square))
(progn ;; splicing
(define-key evil-normal-state-map ",S" 'sp-splice-sexp)
(define-key evil-normal-state-map ",A" 'sp-splice-sexp-killing-backward)
(define-key evil-normal-state-map ",D" 'sp-splice-sexp-killing-forward)
(define-key evil-normal-state-map ",F" 'sp-splice-sexp-killing-around))
(progn ;; barf/slurp
(define-key evil-normal-state-map ",," 'sp-backward-barf-sexp)
(define-key evil-normal-state-map ",." 'sp-forward-barf-sexp)
(define-key evil-normal-state-map ",<" 'sp-backward-slurp-sexp)
(define-key evil-normal-state-map ",>" 'sp-forward-slurp-sexp))
(progn ;; misc
(define-key evil-normal-state-map ",~" 'sp-convolute-sexp)
(define-key evil-normal-state-map ",a" 'sp-absorb-sexp)
(define-key evil-normal-state-map ",e" 'sp-emit-sexp)
(define-key evil-normal-state-map ",`" 'sp-clone-sexp)
(define-key evil-normal-state-map ",J" 'sp-join-sexp)
(define-key evil-normal-state-map ",|" 'sp-split-sexp))
(progn ;; narrowing
(define-key evil-normal-state-map " n(" 'sp-narrow-to-sexp)
(define-key evil-normal-state-map " n)" 'sp-narrow-to-sexp)
(define-key evil-normal-state-map " nn" 'narrow-to-defun)
(define-key evil-normal-state-map " nr" 'narrow-to-region)
(define-key evil-normal-state-map " nw" 'widen)))
(progn ;; navigation
(define-key evil-normal-state-map " f" 'helm-projectile)
(define-key evil-normal-state-map " j" 'helm-buffers-list)
(define-key evil-normal-state-map " u" 'undo-tree-visualize))
(progn ;; completion
(define-key evil-normal-state-map (kbd "TAB") 'company-indent-or-complete-common)
(define-key evil-insert-state-map (kbd "TAB") 'company-indent-or-complete-common))
;; (use-package evil-paredit
;; :ensure t
;; :after paredit
;; :config
;; (evil-paredit-mode))
;;(use-package evil-numbers
;; :ensure t
;; :config
;; (global-set-key (kbd "C-c +") 'evil-numbers/inc-at-pt)
;; (global-set-key (kbd "C-c -") 'evil-numbers/dec-at-pt))
(use-package evil-surround
:ensure t
:config
(global-evil-surround-mode))
(use-package evil-leader
:config (evil-leader/set-leader "ß")))