diff --git a/init.example.el b/init.example.el index 7fa0476d0..e9b718ea9 100644 --- a/init.example.el +++ b/init.example.el @@ -138,5 +138,6 @@ ;; the defaults module. It contains a Spacemacs-inspired keybinding ;; scheme and additional ex commands for evil-mode. Use it as a reference ;; for your own. - :private default) + :private + (default +bindings +snippets +evil-commands)) diff --git a/modules/private/default/config.el b/modules/private/default/config.el index ad2454c00..b6d59293f 100644 --- a/modules/private/default/config.el +++ b/modules/private/default/config.el @@ -1,13 +1,15 @@ ;;; private/default/config.el -*- lexical-binding: t; -*- -(load! +bindings) +(if (featurep! +bindings) (load! +bindings)) ;; ;; Plugins ;; -(def-package! emacs-snippets :after yasnippet) +(def-package! emacs-snippets + :if (featurep! +snippets) + :after yasnippet) ;; @@ -22,63 +24,65 @@ (when (featurep 'evil) - (load! +evil-commands) + (when (featurep! +evil-commands) + (load! +evil-commands)) - ;; Makes ; and , the universal repeat-keys in evil-mode - (defmacro do-repeat! (command next-func prev-func) - "Repeat motions with ;/," - (let ((fn-sym (intern (format "+evil*repeat-%s" command)))) - `(progn - (defun ,fn-sym (&rest _) - (define-key evil-motion-state-map (kbd ";") ',next-func) - (define-key evil-motion-state-map (kbd ",") ',prev-func)) - (advice-add #',command :before #',fn-sym)))) + (when (featurep! +bindings) + ;; Makes ; and , the universal repeat-keys in evil-mode + (defmacro do-repeat! (command next-func prev-func) + "Repeat motions with ;/," + (let ((fn-sym (intern (format "+evil*repeat-%s" command)))) + `(progn + (defun ,fn-sym (&rest _) + (define-key evil-motion-state-map (kbd ";") ',next-func) + (define-key evil-motion-state-map (kbd ",") ',prev-func)) + (advice-add #',command :before #',fn-sym)))) - ;; n/N - (do-repeat! evil-ex-search-next evil-ex-search-next evil-ex-search-previous) - (do-repeat! evil-ex-search-previous evil-ex-search-next evil-ex-search-previous) - (do-repeat! evil-ex-search-forward evil-ex-search-next evil-ex-search-previous) - (do-repeat! evil-ex-search-backward evil-ex-search-next evil-ex-search-previous) + ;; n/N + (do-repeat! evil-ex-search-next evil-ex-search-next evil-ex-search-previous) + (do-repeat! evil-ex-search-previous evil-ex-search-next evil-ex-search-previous) + (do-repeat! evil-ex-search-forward evil-ex-search-next evil-ex-search-previous) + (do-repeat! evil-ex-search-backward evil-ex-search-next evil-ex-search-previous) - ;; f/F/t/T/s/S - (after! evil-snipe - (setq evil-snipe-repeat-keys nil - evil-snipe-override-evil-repeat-keys nil) ; causes problems with remapped ; + ;; f/F/t/T/s/S + (after! evil-snipe + (setq evil-snipe-repeat-keys nil + evil-snipe-override-evil-repeat-keys nil) ; causes problems with remapped ; - (do-repeat! evil-snipe-f evil-snipe-repeat evil-snipe-repeat-reverse) - (do-repeat! evil-snipe-F evil-snipe-repeat evil-snipe-repeat-reverse) - (do-repeat! evil-snipe-t evil-snipe-repeat evil-snipe-repeat-reverse) - (do-repeat! evil-snipe-T evil-snipe-repeat evil-snipe-repeat-reverse) - (do-repeat! evil-snipe-s evil-snipe-repeat evil-snipe-repeat-reverse) - (do-repeat! evil-snipe-S evil-snipe-repeat evil-snipe-repeat-reverse) - (do-repeat! evil-snipe-x evil-snipe-repeat evil-snipe-repeat-reverse) - (do-repeat! evil-snipe-X evil-snipe-repeat evil-snipe-repeat-reverse)) + (do-repeat! evil-snipe-f evil-snipe-repeat evil-snipe-repeat-reverse) + (do-repeat! evil-snipe-F evil-snipe-repeat evil-snipe-repeat-reverse) + (do-repeat! evil-snipe-t evil-snipe-repeat evil-snipe-repeat-reverse) + (do-repeat! evil-snipe-T evil-snipe-repeat evil-snipe-repeat-reverse) + (do-repeat! evil-snipe-s evil-snipe-repeat evil-snipe-repeat-reverse) + (do-repeat! evil-snipe-S evil-snipe-repeat evil-snipe-repeat-reverse) + (do-repeat! evil-snipe-x evil-snipe-repeat evil-snipe-repeat-reverse) + (do-repeat! evil-snipe-X evil-snipe-repeat evil-snipe-repeat-reverse)) - ;; */# - (after! evil-visualstar - (do-repeat! evil-visualstar/begin-search-forward - evil-ex-search-next evil-ex-search-previous) - (do-repeat! evil-visualstar/begin-search-backward - evil-ex-search-previous evil-ex-search-next)) + ;; */# + (after! evil-visualstar + (do-repeat! evil-visualstar/begin-search-forward + evil-ex-search-next evil-ex-search-previous) + (do-repeat! evil-visualstar/begin-search-backward + evil-ex-search-previous evil-ex-search-next)) - ;; lazy-load `evil-easymotion' - (map! :m "gs" #'+default/easymotion) - (defun +default/easymotion () - (interactive) - (let ((prefix (this-command-keys))) - (evilem-default-keybindings prefix) - (map! :map evilem-map - "n" (evilem-create #'evil-ex-search-next) - "N" (evilem-create #'evil-ex-search-previous) - "s" (evilem-create #'evil-snipe-repeat - :pre-hook (save-excursion (call-interactively #'evil-snipe-s)) - :bind ((evil-snipe-scope 'buffer) - (evil-snipe-enable-highlight) - (evil-snipe-enable-incremental-highlight))) - "S" (evilem-create #'evil-snipe-repeat-reverse - :pre-hook (save-excursion (call-interactively #'evil-snipe-s)) - :bind ((evil-snipe-scope 'buffer) - (evil-snipe-enable-highlight) - (evil-snipe-enable-incremental-highlight)))) - (set-transient-map evilem-map) - (which-key-reload-key-sequence prefix)))) + ;; lazy-load `evil-easymotion' + (map! :m "gs" #'+default/easymotion) + (defun +default/easymotion () + (interactive) + (let ((prefix (this-command-keys))) + (evilem-default-keybindings prefix) + (map! :map evilem-map + "n" (evilem-create #'evil-ex-search-next) + "N" (evilem-create #'evil-ex-search-previous) + "s" (evilem-create #'evil-snipe-repeat + :pre-hook (save-excursion (call-interactively #'evil-snipe-s)) + :bind ((evil-snipe-scope 'buffer) + (evil-snipe-enable-highlight) + (evil-snipe-enable-incremental-highlight))) + "S" (evilem-create #'evil-snipe-repeat-reverse + :pre-hook (save-excursion (call-interactively #'evil-snipe-s)) + :bind ((evil-snipe-scope 'buffer) + (evil-snipe-enable-highlight) + (evil-snipe-enable-incremental-highlight)))) + (set-transient-map evilem-map) + (which-key-reload-key-sequence prefix)))))