              '("melpa" . "http://melpa.milkbox.net/packages/") t)
 (package-initialize)
 
-;;  (package-install 'bind-key))
-(require 'bind-key)
+(if (not (package-installed-p 'use-package))
+    (progn
+      (package-refresh-contents)
+      (package-install 'use-package)))
+(require 'use-package)
+
+(use-package bind-key
+  :ensure bind-key)
 
 ;; From http://pages.sachachua.com/.emacs.d/Sacha.html#sec-1-7-3
 ;; Transpose stuff with M-t

(setq-default indent-tabs-mode nil)

;; Automatically closes brackets.
(unless (fboundp 'smartparens-mode)
  (package-install 'smartparens))
(require 'smartparens)
(smartparens-global-mode)
(show-smartparens-global-mode +1)
(electric-indent-mode)

;; Partially use path in buffer name.
(require 'uniquify)
(setq uniquify-buffer-name-style 'forward)

;; Get rid of splash screens.

(semantic-mode 1)

(global-set-key (kbd "C-c h o") 'helm-occur)
(define-key helm-map (kbd "<tab>") 'helm-execute-persistent-action) ; rebihnd tab to do persistent action
(define-key helm-map (kbd "C-i") 'helm-execute-persistent-action) ; make TAB works in terminal
(define-key helm-map (kbd "C-z")  'helm-select-action) ; list actions using C-z
