From 15d8264356d0e02a98f388b66020fd1fdae93a16 Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Sun, 5 Dec 2010 12:41:38 +0100 Subject: Added emacs config --- emacs | 314 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 314 insertions(+) create mode 100644 emacs (limited to 'emacs') diff --git a/emacs b/emacs new file mode 100644 index 0000000..ec2dc6a --- /dev/null +++ b/emacs @@ -0,0 +1,314 @@ +;; -*- mode: Emacs-Lisp; mode: whitespace -*- +(add-to-list 'load-path "~/.emacs.d") + +;; Requires +(require 'paren) +(require 'uniquify) +(require 'autopair) +(require 'color-theme) +(require 'flymake) +(require 'org-install) +(require 'zenburn) +(require 'lua-mode) +(require 'tabbar) +(require 'minimap) +(require 'manage-org) + +;; Auto complete +(require 'auto-complete-config) +(add-to-list 'ac-dictionary-directories "~/.emacs.d//ac-dict") +(ac-config-default) + +;; Autoloads +(autoload 'vala-mode + "vala-mode.elc" "A Major mode for editing Vala files" t) +(autoload 'csharp-mode + "csharp-mode.elc" "A Major mode for editing C# files" t) +(autoload 'javascript-mode + "javascript.elc" "A Major mode for editing JavaScript files" t) +(autoload 'sqlplus-mode + "sqlplus,elc" "A Major mode for communicating with Oracle" t) +(autoload 'batch-mode + "batch-mode.elc" "A Major mode for editing Batch files" t) +(autoload 'rainbow-mode + "rainbow-mode.elc" "A Minor mode for showing colors inline" t) + +;; Functions +(require 'functions) + +;; Platform specifics +(if (eq system-type 'gnu/linux) ; if we're running linux + (set-frame-font "-xos4-terminus-medium-*-*-*-14-*-*-*-*-*-*-*")) + +;; Variables +(setq + inhibit-startup-message t ; don't show welcom screen + require-final-newline t ; always append a newline to a file, if + ; it doesn't have one + font-lock-maximum-decoration t ; denotes my interest in maximum + ; possible fontification + uniquify-buffer-name-style 'reverse ; reverse uniquify file names + backup-directory-alist `((".*" . ,temporary-file-directory)) + ; backup file location + auto-save-file-name-transforms `((".*" ,temporary-file-directory t)) + ; autosave file location + whitespace-line-column 80 ; change color after the 80th column + whitespace-style '(tabs trailing lines-tail) + inhibit-default-init t) + +(setq org-todo-keywords (quote ((sequence "TODO(t)" + "NEXT(n)" + "|" "Done(d!/!)") + (sequence "WAITING(w@/!)" + "SOMEDAY(s!)" + "|" "CANCELLED(c@/!)") + (sequence "QUOTE(q!)" + "QUOTED(Q!)" + "|" "APPROVED(A@)" + "EXPIRED(E@)" + "REJECTED(R@)") + (sequence "OPEN(O)" + "|" "CLOSED(C)")) )) +(setq org-todo-keyword-faces + (quote (("TODO" :foreground "red" :weight bold) + ("NEXT" :foreground "blue" :weight bold) + ("DONE" :foreground "forest green" :weight bold) + ("WAITING" :foreground "yellow" :weight bold) + ("SOMEDAY" :foreground "goldenrod" :weight bold) + ("CANCELLED" :foreground "orangered" :weight bold) + ("QUOTE" :foreground "hotpink" :weight bold) + ("QUOTED" :foreground "indianred1" :weight bold) + ("APPROVED" :foreground "forest green" :weight bold) + ("EXPIRED" :foreground "olivedrab1" :weight bold) + ("REJECTED" :foreground "olivedrab" :weight bold) + ("OPEN" :foreground "magenta" :weight bold) + ("CLOSED" :foreground "forest green" :weight bold)))) +(setq org-use-fast-todo-selection t) +(setq org-todo-state-tags-triggers + (quote (("CANCELLED" + ("CANCELLED" . t)) + ("WAITING" + ("WAITING" . t)) + ("SOMEDAY" + ("WAITING" . t)) + (done + ("WAITING")) + ("TODO" + ("WAITING") + ("CANCELLED")) + ("NEXT" + ("WAITING")) + ("DONE" + ("WAITING") + ("CANCELED"))))) +(setq org-default-notes-file "~/prj/org/refile.org") +(setq org-capture-templates + (quote (("t" "todo" entry (file "~/prj/org/refile.org") "* TODO %? +%U +%a" :clock-in t :clock-resume t) + ("n" "note" entry (file "~/prj/org/refile.org") "* %? +%U +%a +:CLOCK: +:END:" :clock-in t :clock-resume t)))) +(setq org-completion-use-ido t) ; Use IDO for target completion +(setq org-refile-targets + (quote ((org-agenda-files :maxlevel . 5) (nil :maxlevel . 5)))) + ; Targets include this file and any file + ; and any file contributing to the + ; agenda - up to 5 levels deep +(setq org-refile-use-outline-path (quote file)) + ; Targets start with the file name - + ; allows creating level 1 tasks +(setq org-outline-path-complete-in-steps t) + ; Targets complete in steps so we start + ; with filename, TAB shows the next + ; level of targets etc +(setq org-refile-allow-creating-parent-nodes (quote confirm)) + ; Allow refile to create parent tasks + ; with confirmation +(setq org-agenda-custom-commands + (quote + (("w" "Tasks waiting on something" + tags "WAITING/!" + ((org-use-tag-inheritance nil) + (org-agenda-todo-ignore-scheduled nil) + (org-agenda-todo-ignore-deadlines nil) + (org-agenda-todo-ignore-with-date nil) + (org-agenda-overriding-header "Waiting Tasks"))) + ("r" "Refile New Notes and Tasks" + tags "LEVEL=1+REFILE" + ((org-agenda-todo-ignore-with-date nil) + (org-agenda-todo-ignore-deadlines nil) + (org-agenda-todo-ignore-scheduled nil) + (org-agenda-overriding-header "Tasks to Refile"))) + ("N" "Notes" + tags "NOTE" + ((org-agenda-overriding-header "Notes"))) + ("n" "Next" + tags-todo "-WAITING-CANCELLED/!NEXT" + ((org-agenda-overriding-heaer "Next Tasks"))) + ("p" "Projects" + tags-todo "LEVEL=2-REFILE|LEVEL=1+REFILE/!-DONE-CANCELLED" + (;(org-agenda-skip-function 'bh/skip-non-projects) + (org-agenda-overriding-header "Projects"))) + ("o" "other (Non-Project) tasks" + tags-todo "LEVEL=2-REFILE|LEVEL=1+REFILE/!-DONE-CANCELLED" + (;(org-agenda-skip-function 'bh/skip-projects) + (org-agenda-overriding-header "Other Non-Project Tasks"))) + ("A" "Tasks to be Archived" + tags "LEVEL=2-REFILE/DONE|CANCELLED" + ((org-agenda-overriding-header "Tasks to Archive"))) + ("h" "Habits" + tags "STYLE=\"habit\"" + ((org-agenda-todo-ignore-with-date nil) + (org-agenda-todo-ignore-scheduled nil) + (org-agenda-todo-ignore-deadlines nil) + (org-agenda-overriding-header "Habits"))) + ("#" "Stuck Projects" + tags-todo "LEVEL=2-REFILE|LEVEL=1+REFILE/!-DONE-CANCELLED" + ((org-agenda-skip-function 'bh/skip-non-stuck-projects) + (org-agenda-overriding-header "Stuck Projects"))) + ("c" "Select default clocking task" + tags "LEVEL=2-REFILE" + ((org-agenda-skip-function + '(org-agenda-skip-subree-if 'notregexp "^\\*\\* Organization")) + (org-agenda-overriding-header + "Set default clocking task with C-u C-u I")))))) +(setq-default indent-tabs-mode nil) ; spaces, no tabs + +(fset 'yes-or-no-p 'y-or-n-p) ; switch yes or no answers to y or n + ; answers + +;; Mode settings +( tool-bar-mode -1) ; no toolbar +( menu-bar-mode -1) ; no menu +( line-number-mode -1) ; don't show line numbers in splitter +( global-linum-mode t) ; show line numbers in gutter +( column-number-mode t) ; show column numbers in splitter +(global-font-lock-mode t) ; show syntax highlighting +( show-paren-mode t) ; show matching parens +( autopair-global-mode ) ; enable autopair mode +(delete-selection-mode t) ; delete selection upon typing +(global-auto-complete-mode -1) ; don't enable autocomplete for + ; everything + +;; Keybindings +(global-set-key "\C-m" 'newline-and-indent) ; Automatically indent on newline +;;; Org Mode +(global-set-key "\C-cl" 'org-store-link ) +(global-set-key "\C-ca" 'org-agenda ) +(global-set-key "\C-cb" 'org-iswitchb ) +(global-set-key (kbd "") 'org-agenda ) +;(global-set-key (kbd "") 'bh/org-todo ) +;(global-set-key (kbd "") 'bh/widen ) +(global-set-key (kbd "") 'set-truncate-lines ) +(global-set-key (kbd "") 'org-cycle-agenda-files ) +;(global-set-key (kbd " b") 'bbdb ) +(global-set-key (kbd " c") 'calendar ) +(global-set-key (kbd " f") 'boxquote-insert-file ) +;(global-set-key (kbd " g") 'gnus ) +(global-set-key (kbd " h") 'bh/hide-other ) +;(global-set-key (kbd " i") 'bh/org-info ) +;(global-set-key (kbd " I") 'bh/clock-in ) +;(global-set-key (kbd " O") 'bh/clock-out ) +(global-set-key (kbd " r") 'boxquote-region ) +(global-set-key (kbd " s") 'bh/go-to-scratch ) +;(global-set-key (kbd " t") 'bh/insert-inactive-timestamp) +(global-set-key (kbd " u") 'bh/untabify ) +(global-set-key (kbd " v") 'visible-mode ) +;(global-set-key (kbd " SPC") 'bh/clock-in-last-task ) +(global-set-key (kbd "C-") 'previous-buffer ) +(global-set-key (kbd "C-x n r") 'narrow-to-region ) +(global-set-key (kbd "C-") 'next-buffer ) +(global-set-key (kbd "") 'org-clock-goto ) +(global-set-key (kbd "C-") 'org-clock-in ) +(global-set-key (kbd "C-s-") 'bh/save-then-publish ) +(global-set-key (kbd "M-") 'org-resolve-clocks ) +(global-set-key (kbd "C-M-r") 'org-capture ) +(global-set-key (kbd "M-") 'bh/killframe ) +(global-set-key [C-next] 'tabbar-forward ) +(global-set-key [C-prior] 'tabbar-backward ) +(global-set-key [C-tab] 'hs-toggle-hiding ) + +;; File associations +(add-to-list 'auto-mode-alist '("\\.vala$" . vala-mode)) +(add-to-list 'auto-mode-alist '("\\.vapi$" . vala-mode)) +(add-to-list 'auto-mode-alist '("\\.cs$" . csharp-mode)) +(add-to-list 'auto-mode-alist '("\\.bat$" . batch-mode)) + +(add-to-list 'file-coding-system-alist '("\\.vala$" . utf-8)) +(add-to-list 'file-coding-system-alist '("\\.vapi$" . utf-8)) + +(add-to-list 'compilation-finish-functions 'my-comp-finish-function) + +;; Color theme +;;(require 'color-theme-weirdness) +(color-theme-zenburn) + +;; Hooks +(add-hook 'find-file-hook 'flymake-find-file-hook) +(add-hook 'find-file-hook + (lambda () + (whitespace-mode t))) +(add-hook 'after-save-hook + (lambda () + (setq fname (buffer-file-name)) + (setq suffix (file-name-extension fname)) + + (if (string-equal suffix "el") + (byte-compile-file fname)))) +;;; C +(add-hook 'c-mode-hook + (lambda () + (whitespace-mode t) + (hs-minor-mode t))) +;;; CSS +(add-hook 'css-mode-hook + (lambda () + (rainbow-mode))) +;;; Emacs Lisp +(add-hook 'emacs-lisp-mode-hook + (lambda () + (whitespace-mode t) + (auto-complete-mode t))) +;;; Interactive Lisp +(add-hook 'lisp-interaction-mode-hook + (lambda () + (whitespace-mode t) + (auto-complete-mode t))) +;;; Org +(add-hook 'org-mode-hook + (lambda () + (flyspell-mode 1) + (auto-fill-mode 1) + (message "org-mode started"))) + +(defvar org-loaded nil) +(add-hook 'org-agenda-mode-hook + (lambda () + (if (not org-loaded) + (progn + (add-hook 'kill-emacs-hook + (lambda () + (save-org-files) + (push-org-files))) + (get-org-files) + (setq org-loaded t))))) +(if (not (file-exists-p "~/prj/org")) + (clone-org-files)) + +(custom-set-variables + ;; custom-set-variables was added by Custom. + ;; If you edit it by hand, you could mess it up, so be careful. + ;; Your init file should contain only one such instance. + ;; If there is more than one, they won't work right. + '(org-agenda-files (quote ("~/prj/org/iactor.org" "~/prj/org/peitsman.org" "~/prj/org/tgn.org" "~/Documents/iACTOR/tasks.org" "~/prj/org/seiko.org" "~/prj/org/projects.org" "~/prj/org/refile.org" "~/prj/org/aethon.org"))) + '(tabbar-mode t nil (tabbar))) +(custom-set-faces + ;; custom-set-faces was added by Custom. + ;; If you edit it by hand, you could mess it up, so be careful. + ;; Your init file should contain only one such instance. + ;; If there is more than one, they won't work right. + '(tabbar-selected ((t (:inherit tabbar-default :background "#1E2320" :foreground "#F0DFAF")))) + '(tabbar-unselected ((nil (:background "#3F3F3F" :foreground "#DCDCCC"))))) -- cgit v1.2.3-54-g00ecf