   (require 'use-package))
 (require 'diminish)
 
-
-;;; Evil-mode Configuration
-(use-package evil
-  :ensure t
-  :init
-  (setq evil-want-C-u-scroll t
-        evil-want-keybinding nil)
-  :config
-
-  (evil-define-command av/evil-retab (start end)
-    "Emacs implementation of the `:retab' ex command in Vim"
-    (interactive "<r>")
-    (if indent-tabs-mode
-        (tabify start end)
-      (untabify start end)))
-
-  (evil-ex-define-cmd "ret[ab]"    'av/evil-retab)
-  (evil-ex-define-cmd "ter[minal]" 'ansi-term)
-
-  (use-package evil-collection
-    :ensure t
-    :init (evil-collection-init))
-
-  (evil-define-operator av/evil-commentary (beg end)
-    "Emacs implementation of `vim-commentary'"
-    :move-point nil
-    (interactive "<r>")
-    (comment-or-uncomment-region beg end))
-
-  (evil-define-key 'normal 'global "gc" 'av/evil-commentary)
-
-  (use-package evil-lion
-    :ensure t
-    :config (evil-lion-mode))
-
-  (evil-mode 1))
+;;; TODO add undo-tree
 
 (use-package which-key
   :ensure t
   :diminish which-key-mode
   :config (which-key-mode 1))
-
-(use-package general
-  :ensure t
-  :after which-key
-  :config
-  (general-evil-setup t)
-
-  (general-create-definer leader
-    :prefix "SPC"
-    :states '(normal visual))
-
-  (general-create-definer local-leader
-    :prefix "SPC m"
-    :states '(normal visual))
-
-  (leader "m" '(:ignore t :which-key "major-mode"))
-
-  (general-define-key
-    :prefix "SPC SPC"
-    :states '(normal visual)
-    "" 'execute-extended-command)
-
-  ;; File
-  (leader
-    "f" '(:ignore t :which-key "file")
-    "ff" 'find-file
-    "ft" 'dired
-    "fc" '((lambda () (interactive) (find-file (concat user-emacs-directory "init.el"))) :which-key "edit-config"))
-
-  ;; Emacs Lisp
-  (local-leader
-    :keymaps '(emacs-lisp-mode-map lisp-interaction-mode-map)
-    "e" '(:ignore t :which-key "eval")
-    "eb" 'eval-buffer
-    "ed" 'eval-defun
-    "ee" 'eval-expression
-    "es" 'eval-last-sexp
-    "ep" 'eval-print-last-sexp
-    "er" 'eval-region))
 
 (use-package ivy
   :ensure t

 ;; If there is more than one, they won't work right.
 '(package-selected-packages
   (quote
    (general which-key magit restclient spacemacs-theme rainbow-delimiters ledger-mode ivy markdown-mode evil-lion evil-collection evil diminish use-package))))
(custom-set-faces
 ;; custom-set-faces was added by Custom.
 ;; If you edit it by hand, you could mess it up, so be careful.

(use-package org
  :ensure t
  :defer t
  :hook (org-mode . org-indent-mode))
  ;; TODO set org directory for org-agenda

(use-package restclient
  :ensure t
  :mode ("\\.restclient\\'" . restclient-mode))

(use-package magit :ensure t :defer t)

(use-package ledger-mode
  :ensure t
  :defer t)
  ;; FIXME `ledger-mode-clean-buffer' should sort in reverse order

(use-package rainbow-delimiters
  :ensure t
