  'auto-complete
  'evil
  'exec-path-from-shell
- 'guide-key
+ 'flycheck
  'helm
  'helm-ag
  'helm-projectile
  'projectile
+ 'which-key
  'color-theme-solarized
  'material-theme
  'sublime-themes

;; Toggle evil-mode on/off
(global-set-key (kbd "C-x e") 'evil-mode)

;; Use helm-M-x in place of regular M-x
(global-set-key (kbd "M-x") 'helm-M-x)

;; Utilities
;;

;; Grab shell commands because osx
(when (memq window-system '(mac ns))
  (exec-path-from-shell-initialize))

;; Use VIM keybindings!
(require 'evil)
(evil-mode t)

;; Use projectile with helm instead of ido
(require 'helm-projectile)
(projectile-global-mode)
(helm-projectile-on)

;; Use helm globally
(require 'helm-config)
(helm-mode 1)

;; Use which-key and force mini-buffer on the right
(require 'which-key)
(which-key-mode t)
(which-key-setup-side-window-right)

;; Turn on auto-complete
(require 'auto-complete-config)
(ac-config-default)

;; Enable python linting/IDE features
;; - Requires Jedi Flake8 from pip
(elpy-enable)

;; Disable auto-complete.el on elpy-mode because it conflicts
;;  with flycheck. Set up flycheck instead of flymake
(add-hook 'elpy-mode-hook (lambda () (auto-complete-mode -1)))
(when (require 'flycheck nil t)
  (setq elpy-modules (delq 'elpy-module-flymake elpy-modules))
  (add-hook 'elpy-mode-hook 'flycheck-mode))

;;
;; User Environment Settings
