emacs 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. (require 'package)
  2. (add-to-list 'package-archives '("org" . "http://orgmode.org/elpa/"))
  3. (add-to-list 'package-archives '("melpa" . "http://melpa.org/packages/"))
  4. (add-to-list 'package-archives '("melpa-stable" . "http://stable.melpa.org/packages/"))
  5. (setq package-enable-at-startup nil)
  6. (package-initialize)
  7. (defun ensure-package-installed (&rest packages)
  8. "Assure every package is installed, ask for installation if it’s not.
  9. Return a list of installed packages or nil for every skipped package."
  10. (mapcar
  11. (lambda (package)
  12. (if (package-installed-p package)
  13. nil
  14. (if (y-or-n-p (format "Package %s is missing. Install it? " package))
  15. (package-install package)
  16. package)))
  17. packages))
  18. ;; make sure to have downloaded archive description.
  19. (or (file-exists-p package-user-dir)
  20. (package-refresh-contents))
  21. ;; Activate installed packages
  22. (package-initialize)
  23. ;; Check that all packages are installed
  24. (ensure-package-installed 'iedit
  25. 'magit
  26. 'undo-tree
  27. 'evil
  28. 'evil-leader)
  29. ;; Evil leader is Space
  30. (global-evil-leader-mode)
  31. (evil-leader/set-leader "<SPC>")
  32. ;; Leader keybinds
  33. (evil-leader/set-key
  34. "u" 'undo-tree-visualize)
  35. ;; 'evil-window-move-far-left
  36. ;; Default to evil mode
  37. (require 'evil)
  38. (evil-mode t)
  39. ;; All yes or no prompts are y or n
  40. (defalias 'yes-or-no-p 'y-or-n-p)
  41. ;; Disable file backup
  42. (setq make-backup-files nil)
  43. ;; Save undo history under .emacs.d/undo
  44. (setq undo-tree-auto-save-history t
  45. undo-tree-history-directory-alist
  46. `(("." . ,(concat user-emacs-directory "undo"))))
  47. (unless (file-exists-p (concat user-emacs-directory "undo"))
  48. (make-directory (concat user-emacs-directory "undo")))
  49. ;; TODO:
  50. ;; Go through the tutorials, skim the manuals
  51. ;; learning elisp
  52. ;; Fuzzy
  53. ;; Evil leader mode
  54. ;; Hotkey for undo tree
  55. ;; autocomplete
  56. ;; recent files
  57. ;; magit bindings