(require 'package) (add-to-list 'package-archives '("melpa" . "http://melpa.milkbox.net/packages/")) (add-to-list 'package-archives '("marmalade" . "http://marmalade-repo.org/packages/")) (package-initialize) (unless (file-exists-p "~/.emacs.d/elpa/archives/melpa") (package-refresh-contents)) (defun packages-install (packages) (mapcar (lambda (package) (when (not (package-installed-p package)) (package-install package))) packages) (delete-other-windows)) ;; Install extensions if they're missing (defun init--install-packages () (packages-install '(ace-jump-mode auctex better-defaults company company-inf-ruby centered-cursor-mode dired-details dired+ erc-hl-nicks expand-region fill-column-indicator fullscreen-mode god-mode geiser guide-key haskell-mode helm hungry-delete ido-ubiquitous ido-vertical-mode idomenu inf-ruby info+ js2-mode magit markdown-mode multiple-cursors nyan-mode page-break-lines paredit paren-face perspective projectile puppet-mode rich-minority ruby-block ruby-mode sicp scss-mode shell-switcher skewer-mode smart-mode-line smex sublime-themes tagedit undo-tree visual-regexp-steroids znc))) (condition-case nil (init--install-packages) (error (package-refresh-contents) (init--install-packages)))