From c20637296efa77bbe72387b94a930b00e6d64405 Mon Sep 17 00:00:00 2001 From: Somelauw Date: Fri, 5 May 2017 14:30:27 +0200 Subject: Make argument to evil-org-set-key-theme optional If called with no arguments, evil-org-key-theme is used --- README.org | 7 ++++++- evil-org.el | 40 ++++++++++++++++++++++------------------ 2 files changed, 28 insertions(+), 19 deletions(-) diff --git a/README.org b/README.org index 8758e18..349d9b1 100644 --- a/README.org +++ b/README.org @@ -52,7 +52,12 @@ This is an extended and actively maintained version of https://github.com/edwtjo (add-to-list 'load-path "~/.emacs.d/plugins/evil-org") (require 'evil-org) (add-hook 'org-mode-hook 'evil-org-mode) - (setq evil-org-key-theme '(navigation insert textobjects additional)) + (evil-org-set-key-theme '(navigation insert textobjects additional)) + #+END_SRC + + Or you can customize =evil-org-key-theme= and replace the last line by: + #+BEGIN_SRC emacs-lisp + (evil-org-set-key-theme) #+END_SRC For a more elaborate setup, take a look at [[file:doc/example_config.el][this example]]. diff --git a/evil-org.el b/evil-org.el index 0496ecc..a22920b 100644 --- a/evil-org.el +++ b/evil-org.el @@ -7,7 +7,7 @@ ;; Git-Repository: git://github.com/Somelauw/evil-org.git ;; Created: 2012-06-14 ;; Forked-since: 2017-02-12 -;; Version: 0.6.1 +;; Version: 0.6.2 ;; Package-Requires: ((emacs "24.4") (evil "0") (org "8.0.0")) ;; Keywords: evil vim-emulation org-mode key-bindings presets @@ -68,7 +68,9 @@ (evil-disable-insert-state-bindings)) '(textobjects navigation additional) '(textobjects navigation insert additional)) - "Which key themes to enable." + "Which key themes to enable. +If you use this variable, you should call `evil-org-set-key-theme' with zero +arguments." :group 'evil-org :type '(set (const navigation) (const textobjects) @@ -565,22 +567,24 @@ If a prefix argument is given, links are opened in incognito mode." "o" 'evil-org-recompute-clocks)) ;;;###autoload -(defun evil-org-set-key-theme (theme) - "Select what key THEMEs to enable." - (setq evil-org-mode-map (make-sparse-keymap)) - (evil-org--populate-base-bindings) - (when (memq 'navigation theme) (evil-org--populate-navigation-bindings)) - (when (memq 'insert theme) (evil-org--populate-insert-bindings)) - (when (memq 'textobjects theme) (evil-org--populate-textobjects-bindings)) - (when (memq 'rsi theme) (evil-org--populate-rsi-bindings)) - (when (memq 'additional theme) (evil-org--populate-additional-bindings)) - (when (memq 'shift theme) (evil-org--populate-shift-bindings)) - (when (memq 'todo theme) (evil-org--populate-todo-bindings)) - (when (memq 'heading theme) (evil-org--populate-heading-bindings)) - (when (memq 'leader theme) (evil-org--populate-leader-bindings)) - (setcdr - (assq 'evil-org-mode minor-mode-map-alist) - evil-org-mode-map)) +(defun evil-org-set-key-theme (&optional theme) + "Select what keythemes to enable. +Optional argument THEME list of themes. See evil-org-keytheme for a list of values." + (let ((theme (or theme evil-org-key-theme))) + (setq evil-org-mode-map (make-sparse-keymap)) + (evil-org--populate-base-bindings) + (when (memq 'navigation theme) (evil-org--populate-navigation-bindings)) + (when (memq 'insert theme) (evil-org--populate-insert-bindings)) + (when (memq 'textobjects theme) (evil-org--populate-textobjects-bindings)) + (when (memq 'rsi theme) (evil-org--populate-rsi-bindings)) + (when (memq 'additional theme) (evil-org--populate-additional-bindings)) + (when (memq 'shift theme) (evil-org--populate-shift-bindings)) + (when (memq 'todo theme) (evil-org--populate-todo-bindings)) + (when (memq 'heading theme) (evil-org--populate-heading-bindings)) + (when (memq 'leader theme) (evil-org--populate-leader-bindings)) + (setcdr + (assq 'evil-org-mode minor-mode-map-alist) + evil-org-mode-map))) ;;; vim-like confirm/abort for capture and src ;;; Taken from mwillsey (Max Willsey) on https://github.com/syl20bnr/spacemacs/pull/7400 -- cgit v1.0