From 1739e3513ea17252ef573f996e75b61d0be84d29 Mon Sep 17 00:00:00 2001 From: Luke Hoersten Date: Sun, 12 Dec 2010 10:43:21 -0600 Subject: Reorganized a ton. Split into 3 main sections: General, Modes, and Requires. --- init.el | 207 +++++++++++++++++++++++++++++++++++----------------------------- 1 file changed, 113 insertions(+), 94 deletions(-) diff --git a/init.el b/init.el index 64520e7..cadc557 100644 --- a/init.el +++ b/init.el @@ -1,68 +1,48 @@ ;; ~/.emacs.d/init.el (~/.emacs) ;; Luke Hoersten -;; general -(add-to-list 'load-path "~/.emacs.d") ; set default emacs load path +;;;; General +(add-to-list 'load-path "~/.emacs.d") ; set default emacs load path (setq-default - ediff-split-window-function 'split-window-horizontally ; diff horizontally - x-select-enable-clipboard t ; paste from X buffer - inhibit-splash-screen t ; disable splash screen - truncate-lines t ; truncate, not wrap, lines - indent-tabs-mode nil ; only uses spaces for indentation - split-width-threshold 181) ; min width to split window horizontially - -(put 'set-goal-column 'disabled nil) ; enable goal column setting -(put 'narrow-to-region 'disabled nil) ; enable hiding + ediff-split-window-function + 'split-window-horizontally ; diff horizontally + x-select-enable-clipboard t ; paste from X buffer + inhibit-splash-screen t ; disable splash screen + truncate-lines t ; truncate, not wrap, lines + indent-tabs-mode nil ; only uses spaces for indentation + split-width-threshold 181) ; min width to split window horizontially + +(put 'set-goal-column 'disabled nil) ; enable goal column setting +(put 'narrow-to-region 'disabled nil) ; enable hiding (put 'narrow-to-page 'disabled nil) -(menu-bar-mode -1) ; remove menu bar -(display-time-mode t) ; show clock -(column-number-mode t) ; show column numbers -(delete-selection-mode t) ; replace highlighted text -(windmove-default-keybindings) ; move between windows with shift-arrow -(ido-mode t) ; file/buffer selector -(setq-default ido-enable-flex-matching t) ; fuzzy matching for ido mode -(add-hook 'text-mode-hook 'flyspell-mode t) ; spellcheck text -(add-hook 'text-mode-hook 'turn-on-auto-fill) ; autofill text - -;; whitespace -(global-whitespace-mode t) ; show whitespace -(add-hook 'before-save-hook 'whitespace-cleanup) ; cleanup whitespace on exit -(setq-default - whitespace-line-column 120 ; column width - whitespace-style ; whitespace to highlight - '(trailing lines-tail empty indentation - space-before-tab space-after-tab)) - -;; coding -(which-func-mode t) ; show current function -(show-paren-mode t) ; show matching paren -(transient-mark-mode t) ; show highlighting -(global-font-lock-mode t) ; syntax highlighting -(setq-default compile-command "scons ") ; compile command -(global-set-key (kbd "C-c c") 'compile) ; compile -(global-set-key (kbd "C-c r") 'recompile) ; recompile -(global-set-key (kbd "C-c C-c") ; comment - 'comment-or-uncomment-region) - -;; line numbers -(mapc - (lambda (x) - (add-hook x 'linum-mode)) - '(text-mode-hook - c-mode-common-hook - python-mode-hook - haskell-mode-hook - emacs-lisp-mode-hook)) - -;; X stuff +(menu-bar-mode -1) ; remove menu bar +(display-time-mode t) ; show clock +(column-number-mode t) ; show column numbers +(delete-selection-mode t) ; replace highlighted text +(windmove-default-keybindings) ; move between windows with shift-arrow +(fset 'yes-or-no-p 'y-or-n-p) ; replace yes/no prompts + +;;; coding +(which-func-mode t) ; show current function +(show-paren-mode t) ; show matching paren +(transient-mark-mode t) ; show highlighting +(global-font-lock-mode t) ; syntax highlighting +(setq-default compile-command "scons ") ; compile command +(global-set-key (kbd "C-c c") 'compile) ; compile +(global-set-key (kbd "C-c r") 'recompile) ; recompile +(global-set-key + (kbd "C-c C-c") + 'comment-or-uncomment-region) ; toggle region comment + +;;; X stuff (if window-system (progn - (tool-bar-mode -1) ; remove tool bar - (scroll-bar-mode -1) ; remove scroll bar - (visual-line-mode t) ; word wrap break on whitespace - (global-hl-line-mode t) + (tool-bar-mode -1) ; remove tool bar + (scroll-bar-mode -1) ; remove scroll bar + (visual-line-mode t) ; word wrap break on whitespace + (global-hl-line-mode t) ; highlight current line ;; twilight theme (require 'color-theme) @@ -70,40 +50,53 @@ (color-theme-twilight) )) -;; terminal -(global-set-key (kbd "C-c s") 'eshell) ; start shell -(add-hook 'eshell-mode-hook '(setenv "TERM" "emacs")) ; enable colors +;;; terminal +(global-set-key (kbd "C-c s") 'eshell) ; start shell +(add-hook 'eshell-mode-hook '(lambda () + (progn + (setenv "PATH" "~/.cabal/bin:$PATH") ; haskell cabal + (setenv "TERM" "emacs")))) ; enable colors -;; OS specific configs +;;; OS specific configs (cond ((string-match "linux" (emacs-version)) (require 'linux)) ((string-match "darwin" (emacs-version)) (require 'darwin)) ) -;;;;;;;;;;;;; includes & requires ;;;;;;;;;;;;; -;; includes -(require 'hoersten-align-with-spaces) ; use only spaces for alignment -(require 'hoersten-pastebin-region) ; send selected text to pastebin -(require 'hoersten-c-style) ; load c specific lisp -(require 'vala-mode) ; vala programming language +;;;; Mode-Specific -;; nav mode -(add-to-list 'load-path "~/.emacs.d/nav") -(require 'nav) +;;; linum-mode - line numbers +(mapc + (lambda (x) + (add-hook x 'linum-mode)) + '(text-mode-hook + c-mode-common-hook + python-mode-hook + haskell-mode-hook + emacs-lisp-mode-hook)) -;; unicode -(require 'pretty-mode) -(global-pretty-mode t) +;;; text-mode +(add-hook 'text-mode-hook 'flyspell-mode t) ; spellcheck text +(add-hook 'text-mode-hook 'turn-on-auto-fill) ; autofill text -;; snippets -(add-to-list 'load-path "~/.emacs.d/yasnippet") -(require 'yasnippet) -(yas/initialize) -(yas/load-directory "~/.emacs.d/yasnippet/snippets") -(setq-default yas/prompt-functions '(yas/ido-prompt yas/dropdown-prompt)) ; use ido for multiple snippets +;;; ido-mode +(ido-mode t) ; file/buffer selector +(setq-default + ido-enable-flex-matching t ; fuzzy matching for ido mode + ido-create-new-buffer 'always ; create new buffer without prompt + ido-everywhere t) ; use ido where possible -;; python mode +;;; whitespace-mode +(global-whitespace-mode t) ; show whitespace +(add-hook 'before-save-hook 'whitespace-cleanup) ; cleanup whitespace on exit +(setq-default + whitespace-line-column 120 ; column width + whitespace-style ; whitespace to highlight + '(trailing lines-tail empty indentation + space-before-tab space-after-tab)) + +;;; python-mode (add-hook 'python-mode-hook (lambda () @@ -112,7 +105,7 @@ python-indent 3 indent-tabs-mode t))) -;; haskell mode +;;; haskell-mode (add-hook 'haskell-mode-hook (lambda () @@ -120,24 +113,14 @@ (haskell-indent-mode t) (capitalized-words-mode t) (haskell-doc-mode t) - (imenu-add-menubar-index t) (setq haskell-font-lock-symbols 'unicode - haskell-indent-offset 3)) - t ;; append instead of prepend else haskell-mode overwrites these settings + haskell-indent-offset 4 + whitespace-line-column 87)) + t ; append instead of prepend else haskell-mode overwrites these settings ) -;; zencoding html -(require 'zencoding-mode) -(add-hook 'sgml-mode-hook 'zencoding-mode) ; Auto-start on any markup modes - -;; unique buffer names with dirs -(require 'uniquify) -(setq - uniquify-buffer-name-style 'post-forward - uniquify-separator ":") - -;; org mode +;;; org-mode (add-hook 'org-mode-hook (lambda () @@ -145,3 +128,39 @@ (local-set-key (kbd "M-S-p") 'org-move-subtree-up) (local-set-key (kbd "M-n") 'org-move-item-down) (local-set-key (kbd "M-S-n") 'org-move-subtree-down))) + + +;;;; Requires + +(require 'hoersten-align-with-spaces) ; use only spaces for alignment +(require 'hoersten-pastebin-region) ; send selected text to pastebin +(require 'hoersten-c-style) ; load c specific lisp +(require 'vala-mode) ; vala programming language + +;;; auto-complete-mode +(add-to-list 'load-path "~/.emacs.d/auto-complete-mode/") +(require 'auto-complete-config) +(add-to-list 'ac-dictionary-directories "~/.emacs.d/auto-complete-mode/ac-dict") +(ac-config-default) +(setq ac-modes (append ac-modes '(haskell-mode))) + +;;; pretty-mode - unicode character replacement +(require 'pretty-mode) +(global-pretty-mode t) + +;;; yasnippets +(add-to-list 'load-path "~/.emacs.d/yasnippet") +(require 'yasnippet) +(yas/initialize) +(yas/load-directory "~/.emacs.d/yasnippet/snippets") +(setq-default yas/prompt-functions '(yas/ido-prompt yas/dropdown-prompt)) ; use ido for multiple snippets + +;;; zencoding-mode - html +(require 'zencoding-mode) +(add-hook 'sgml-mode-hook 'zencoding-mode) ; Auto-start on any markup modes + +;;; unique buffer names with dirs +(require 'uniquify) +(setq + uniquify-buffer-name-style 'post-forward + uniquify-separator ":") -- cgit v1.2.3