From d2e30e18a367cfc6be02a6a5b926da621a960c37 Mon Sep 17 00:00:00 2001
From: Aaron LI <aaronly.me@gmail.com>
Date: Wed, 24 Feb 2016 23:26:19 +0800
Subject: _emacs.d/personal/50-evil.el: add more custom keybindings

---
 _emacs.d/personal/50-evil.el | 34 +++++++++++++++++++++++++++++++++-
 1 file changed, 33 insertions(+), 1 deletion(-)

diff --git a/_emacs.d/personal/50-evil.el b/_emacs.d/personal/50-evil.el
index 503efc8..860fbbf 100644
--- a/_emacs.d/personal/50-evil.el
+++ b/_emacs.d/personal/50-evil.el
@@ -4,7 +4,8 @@
 ;; vim: set ts=8 sw=2 tw=0 fenc=utf-8 ft=lisp:
 ;;
 ;; Credit:
-;; [1] http://stackoverflow.com/a/10166400
+;; [1] https://github.com/redguardtoo/emacs.d - lisp/init-evil.el
+;; [2] http://stackoverflow.com/a/10166400
 ;;
 ;; Aaron LI
 ;; 2016-02-21
@@ -23,12 +24,43 @@
 (define-key minibuffer-local-isearch-map [escape] 'minibuffer-keyboard-quit)
 (global-set-key [escape] 'keyboard-quit)
 
+;; Prefer Emacs way after pressing ":" in evil-mode
+(define-key evil-ex-completion-map (kbd "C-a") 'move-beginning-of-line)
+(define-key evil-ex-completion-map (kbd "C-b") 'backward-char)
+(define-key evil-ex-completion-map (kbd "M-p") 'previous-complete-history-element)
+(define-key evil-ex-completion-map (kbd "M-n") 'next-complete-history-element)
+
+;; Evil keybindings for `org-mode'
+;; As a general RULE, mode specific evil leader keys started with
+;; uppercased character or 'g' or special character except "=" and "-"
+(evil-declare-key 'normal org-mode-map
+  "gh" 'outline-up-heading
+  "gl" 'outline-next-visible-heading
+  "S"  'org-store-link
+  "A"  'org-agenda
+  "H"  'org-beginning-of-line  ; smarter behaviour on headlines etc.
+  "L"  'org-end-of-line  ; smarter behaviour on headlines etc.
+  "$"  'org-end-of-line  ; smarter behaviour on headlines etc.
+  "^"  'org-beginning-of-line  ; ditto
+  "<"  'org-metaleft  ; out-dent
+  ">"  'org-metaright  ; indent
+  (kbd "TAB") 'org-cycle)
+
 ;; evil-leader
 ;; https://github.com/cofi/evil-leader
 (prelude-require-package 'evil-leader)
 (require 'evil-leader)
 (global-evil-leader-mode)
 (evil-leader/set-leader ",")
+(evil-leader/set-key
+  ;; {{{ only usable in GUI
+  "=" 'increase-default-font-height
+  "-" 'decrease-default-font-height
+  ;; }}}
+  "bf" 'buffer-menu
+  "mu" 'mu4e
+  "rm" 'remember
+)
 
 ;; evil-matchit: jump between matched tags in Emacs
 ;; https://github.com/redguardtoo/evil-matchit
-- 
cgit v1.2.2