 
 (setq package-list '(packed
                      auto-package-update
+                     bind-key
                      auto-compile
                      diminish
                      exec-path-from-shell

(setq company-idle-delay nil)  ;; 0.1)
(when *windows*
  (delete 'company-clang company-backends))
(define-key company-active-map (kbd "\C-n") 'company-select-next)
(define-key company-active-map (kbd "\C-p") 'company-select-previous)
(define-key company-active-map (kbd "\C-d") 'company-show-doc-buffer)
(define-key company-active-map (kbd "M-.") 'company-show-location)

(require 'dumb-jump)
(setq dumb-jump-selector 'helm
      dumb-jump-prefer-searcher 'ag)    ;; because https://github.com/jacktasia/dumb-jump/issues/129

(require 'flymake)
(defvar flymake-mode-map (make-sparse-keymap))
(define-key flymake-mode-map (kbd "C-M-n") 'flymake-goto-next-error)
(define-key flymake-mode-map (kbd "C-M-p") 'flymake-goto-prev-error)

(or (assoc 'flymake-mode minor-mode-map-alist)
    (setq minor-mode-map-alist

        :keymap helm-buffer-map
        :truncate-lines helm-buffers-truncate-lines))

(bind-keys ([remap list-buffers] . my-helm-projectile-buffers-list)
           ("M-x" . helm-M-x)
           ("C-x b" . my-helm-projectile-buffers-list)
           ("C-h a" . helm-apropos)
           ("C-x C-f" . helm-find-files)
           ("M-y" . helm-show-kill-ring)
           ("C-c h" . helm-command-prefix)
           ("C-c <SPC>" . helm-all-mark-rings)
           ("C-c C-r" . helm-resume))

(require 'helpful)
(bind-keys ("C-h f" . helpful-function)
           ("C-h v" . helpful-variable)
           ("C-h F" . helpful-command)
           ("C-h M" . helpful-macro))

(require 'smart-hungry-delete)
(bind-keys ("<backspace>" . smart-hungry-delete-backward-char)
           ("C-d" . smart-hungry-delete-forward-char))

(require 'shackle)
(setq shackle-rules
