summaryrefslogtreecommitdiffstats
path: root/emacs/init.el
diff options
context:
space:
mode:
Diffstat (limited to 'emacs/init.el')
-rw-r--r--emacs/init.el89
1 files changed, 70 insertions, 19 deletions
diff --git a/emacs/init.el b/emacs/init.el
index a39751d..89c4792 100644
--- a/emacs/init.el
+++ b/emacs/init.el
@@ -1,3 +1,4 @@
+;;;; Turn off useless visual components
;;; Turn the menu, scroll-bar and tool-bar off quickly, emacs startup
;;; isn't as jittery.
(menu-bar-mode -1)
@@ -52,14 +53,22 @@ package.el is loaded anyway."
;;; look at.
(setq compilation-scroll-output t)
-;;; Enable the excellent `paredit-mode' for any lisp-like languages.
-(add-hook 'clojure-mode-hook 'paredit-mode)
-(add-hook 'emacs-lisp-mode-hook 'paredit-mode)
-(add-hook 'lisp-mode-hook 'paredit-mode)
-(add-hook 'sawfish-mode-hook 'paredit-mode)
-(add-hook 'scheme-mode-hook 'paredit-mode)
-
-;;; Enable Flycheck for some modes.
+;;;; Hooks
+;;;;; Enable `auto-fill-mode' for some text-heavy modes.
+
+(add-hook 'prog-mode-hook 'auto-fill-mode)
+(add-hook 'text-mode-hook 'auto-fill-mode)
+
+;;;;; Enable `eldoc-mode' for some nice programming modes.
+
+(add-hook 'emacs-lisp-mode-hook 'eldoc-mode)
+
+;;;;; Enable `fill-column-indicator' for most programming modes.
+
+(add-hook 'html-mode-hook 'fci-mode)
+(add-hook 'prog-mode-hook 'fci-mode)
+
+;;;;; Enable `flycheck-mode' for supported modes.
(add-hook 'css-mode-hook 'flycheck-mode)
(add-hook 'emacs-lisp-mode-hook 'flycheck-mode)
@@ -73,7 +82,56 @@ package.el is loaded anyway."
(add-hook 'ruby-mode-hook 'flycheck-mode)
(add-hook 'rust-mode-hook 'flycheck-mode)
(add-hook 'sh-mode-hook 'flycheck-mode)
+
+;;;;; Enable `flyspell-mode' for some text modes.
+
+(add-hook 'text-mode-hook 'flyspell-mode)
+
+;;;;; Enable `paredit-mode' for any lisp-like languages.
+;;; Since all of these modes care heavily about their parentheses it
+;;; is very easy to edit them as syntax trees, rather than unrelated
+;;; bits of text. I also helps keep parens balanced.
+
+(add-hook 'clojure-mode-hook 'paredit-mode)
+(add-hook 'emacs-lisp-mode-hook 'paredit-mode)
+(add-hook 'lisp-mode-hook 'paredit-mode)
+(add-hook 'sawfish-mode-hook 'paredit-mode)
+(add-hook 'scheme-mode-hook 'paredit-mode)
+
+;;;;; Enable `rainbow-delimiters-mode' for programming modes.
+
+(add-hook 'prog-mode-hook 'rainbow-delimiters-mode)
+
+;;;;; Enable `rainbow-mode' for some colorful modes.
+
+(add-hook 'css-mode-hook 'rainbow-mode)
+
+;;;;; Enable `slime-js-minor-mode' for `js2-mode'.
+
+(add-hook 'js2-mode-hook 'slime-js-minor-mode)
+
+;;;;; Enable `smartparens-mode' for some non-lisp modes.
+
+(add-hook 'html-mode-hook 'smartparens-mode)
+(add-hook 'python-mode-hook 'smartparens-mode)
+
+;;;;; Enable `visual-line-mode' for some text modes.
+
+(add-hook 'jabber-chat-mode-hook 'visual-line-mode)
+
+;;;;; Enable `whitespace-mode' for some whitespace-caring modes.
+
+(add-hook 'markdown-mode-hook 'whitespace-mode)
+(add-hook 'python-mode-hook 'whitespace-mode)
+
+;;;;; Enable `yas-minor-mode' for some heavy-duty modes.
+
+(add-hook 'html-mode-hook 'yas-minor-mode)
+(add-hook 'org-mode-hook 'yas-minor-mode)
+(add-hook 'prog-mode-hook 'yas-minor-mode)
+
+;;;; Rest
;;; Remove the pylint and pyflakes checkers from the flycheck
;;; configuration so the flake8 checker remains.
(eval-after-load "flycheck"
@@ -368,7 +426,6 @@ Also change directories to current working directory."
(brace-list-open . +)
(topmost-intro-cont first c-lineup-topmost-intro-cont
c-lineup-gnu-DEFUN-intro-cont)))
-(setq comment-auto-fill-only-comments t)
(setq custom-file "~/.emacs.d/custom.el")
(setq custom-theme-directory "~/.emacs.d/themes")
(setq default-frame-alist
@@ -448,12 +505,9 @@ Also change directories to current working directory."
(add-hook 'css-mode-hook 'oni:css-mode-func)
(add-hook 'diary-display-hook 'oni:diary-display-func)
(add-hook 'emacs-startup-hook 'oni:emacs-startup-func)
-(add-hook 'emacs-lisp-mode-hook 'oni:emacs-lisp-mode-func)
(add-hook 'go-mode-hook 'oni:go-mode-func)
(add-hook 'gtags-mode-hook 'oni:gtags-mode-func)
(add-hook 'haskell-mode-hook 'oni:haskell-mode-func)
-(add-hook 'html-mode-hook 'oni:html-mode-func)
-(add-hook 'jabber-chat-mode-hook 'oni:jabber-chat-mode-func)
(add-hook 'jabber-roster-mode-hook 'oni:jabber-roster-mode-func)
(add-hook 'java-mode-hook 'oni:java-mode-func)
(add-hook 'js-mode-hook 'oni:js-mode-func)
@@ -461,14 +515,10 @@ Also change directories to current working directory."
(add-hook 'lua-mode-hook 'oni:lua-mode-func)
(add-hook 'magit-log-edit-mode-hook 'oni:magit-log-edit-mode-func)
(add-hook 'markdown-mode-hook 'oni:markdown-mode-func)
-(add-hook 'message-mode-hook 'oni:message-mode-func)
-(add-hook 'org-mode-hook 'oni:org-mode-func)
(add-hook 'php-mode-hook 'oni:php-mode-func)
(add-hook 'prog-mode-hook 'oni:prog-mode-func)
(add-hook 'python-mode-hook 'oni:python-mode-func)
-(add-hook 'rst-mode-hook 'oni:rst-mode-func)
(add-hook 'term-mode-hook 'oni:term-mode-func)
-(add-hook 'texinfo-mode-hook 'oni:texinfo-mode-func)
(add-hook 'write-file-hooks 'oni:write-file-func)
(add-hook 'yas-minor-mode-hook 'oni:yas-minor-mode-func)
@@ -585,9 +635,6 @@ Also change directories to current working directory."
(setq eltuki-blog-dir "~/documents/blog")
(setq sp-cancel-autoskip-on-backward-movement nil)
-
-(add-hook 'python-mode-hook 'smartparens-mode)
-(add-hook 'html-mode-hook 'smartparens-mode)
(defun oni:scroll-down-or-prev-page (arg)
"Either scroll down or go to the previous page.
@@ -640,3 +687,7 @@ Depending on the value of `buffer-narrowed-p'."
;;; Finally, load any `customize' settings and slime.
(load custom-file)
(load (expand-file-name "~/quicklisp/slime-helper.el"))
+
+;; Local Variables:
+;; outline-regexp: ";;;;+"
+;; End: