;; add melpa repo (require 'package) (add-to-list 'package-archives '("melpa" . "http://melpa.org/packages/") t) (package-initialize) (defun require-package (package &optional min-version no-refresh) "Install given PACKAGE, optionally requiring MIN-VERSION. If NO-REFRESH is non-nil, the available package lists will not be re-downloaded in order to locate PACKAGE." (if (package-installed-p package min-version) t (if (or (assoc package package-archive-contents) no-refresh) (package-install package) (progn (package-refresh-contents) (require-package package min-version t))))) (defun require-packages (packages) "Install a list of PACKAGES." (mapcar (lambda (package) (require-package package)) packages)) ;; install missing packages automatically (setq use-package-always-ensure t) ;; install use-package and diminish (require-packages '(use-package diminish)) ;; speed up loading of use-package and dependencies (eval-when-compile (require 'use-package)) (require 'diminish) (require 'bind-key) (provide 'init-package)