 ; (define-key evil-normal-state-map (kbd ",f") 'projectile-find-file)
 ; (define-key evil-normal-state-map (kbd ",,") 'evil-buffer)
 ; (define-key evil-normal-state-map (kbd "q") nil)
-;
-; (define-key evil-insert-state-map (kbd "C-e") nil)
-; (define-key evil-insert-state-map (kbd "C-d") nil)
-; (define-key evil-insert-state-map (kbd "C-k") nil)
-;
-; (define-key evil-motion-state-map (kbd "C-e") nil)
-;
-
-; ;; Switching between windows with C-hjkl
-; (define-key evil-normal-state-map (kbd "C-l") 'evil-window-right)
-; (define-key evil-normal-state-map (kbd "C-h") 'evil-window-left)
-; (define-key evil-normal-state-map (kbd "C-j") 'evil-window-down)
-; (define-key evil-normal-state-map (kbd "C-k") 'evil-window-up)
-; (define-key evil-normal-state-map (kbd "C-x h k") 'describe-key)
-;
-; ;; Insert mode as well
-; (define-key evil-insert-state-map (kbd "C-l") 'evil-window-right)
-; (define-key evil-insert-state-map (kbd "C-a") 'move-beginning-of-line)
-; (define-key evil-insert-state-map (kbd "C-h") 'evil-window-left)
-; (define-key evil-insert-state-map (kbd "C-j") 'evil-window-down)
-; (define-key evil-insert-state-map (kbd "C-k") 'evil-window-up)
-; (define-key evil-insert-state-map (kbd "C-x h k") 'describe-key)
-; (define-key evil-insert-state-map (kbd "C-x C-k C-k") 'kill-line)
-;
+
+;; Make C-e, C-d, C-k behave same as in Emacs when in insert mode.
+(define-key evil-insert-state-map (kbd "C-e") nil)
+(define-key evil-insert-state-map (kbd "C-d") nil)
+(define-key evil-insert-state-map (kbd "C-k") nil)
+
+;; Makes C-e behave same as in Emacs. C-a works out of the box
+(define-key evil-motion-state-map (kbd "C-e") nil)
+
+;; Switching between windows with C-hjkl
+(define-key evil-normal-state-map (kbd "C-l") 'evil-window-right)
+(define-key evil-normal-state-map (kbd "C-h") 'evil-window-left)
+(define-key evil-normal-state-map (kbd "C-j") 'evil-window-down)
+(define-key evil-normal-state-map (kbd "C-k") 'evil-window-up)
+
+(define-key evil-normal-state-map (kbd "C-x h k") 'describe-key)
+(define-key evil-normal-state-map (kbd "C-x h f") 'describe-function)
+(define-key evil-normal-state-map (kbd "C-x h v") 'describe-variable)
+
+(define-key evil-normal-state-map (kbd "C-d") 'scroll-up-command)
+(define-key evil-normal-state-map (kbd "C-u") 'scroll-down-command)
+
+;; Insert mode as well
+(define-key evil-insert-state-map (kbd "C-a") 'move-beginning-of-line)
+
+(define-key evil-insert-state-map (kbd "C-l") 'evil-window-right)
+(define-key evil-insert-state-map (kbd "C-h") 'evil-window-left)
+(define-key evil-insert-state-map (kbd "C-j") 'evil-window-down)
+(define-key evil-insert-state-map (kbd "C-k") 'evil-window-up)
+
+(define-key evil-insert-state-map (kbd "C-x h k") 'describe-key)
+(define-key evil-insert-state-map (kbd "C-x C-k C-k") 'kill-line)
+
 ; (add-to-list 'evil-insert-state-modes 'inferior-haskell-mode)
 
 ; (require 'use-package)

;; TODO - check what this actually does. how does it change the original apropos search?
;(setq apropos-do-all t)

(add-to-list 'load-path "~/.emacs.d/use-package")

(setq backup-directory-alist '(("" . "~/.emacs.d/emacs-backup")))


;  '(shm-use-presentation-mode t)
;  '(truncate-lines t)
;  '(when (not (facep (aref ansi-term-color-vector 0)))))

(custom-set-variables
 ;; custom-set-variables was added by Custom.
 ;; If you edit it by hand, you could mess it up, so be careful.
 ;; Your init file should contain only one such instance.
 ;; If there is more than one, they won't work right.
 '(package-selected-packages (quote (base16-theme which-key use-package evil))))
(custom-set-faces
 ;; custom-set-faces was added by Custom.
 ;; If you edit it by hand, you could mess it up, so be careful.
 ;; Your init file should contain only one such instance.
 ;; If there is more than one, they won't work right.
 )
