summaryrefslogtreecommitdiffstats
path: root/.emacs.d/init.el
diff options
context:
space:
mode:
authorGravatar Tom Willemsen2011-09-20 01:08:06 +0200
committerGravatar Tom Willemsen2011-09-20 01:08:06 +0200
commit94b05b65efebc19f815f24350bca5473bb28fb46 (patch)
tree72d4c973db5566d9445cdc802a3f20f870a7d5f8 /.emacs.d/init.el
parentcd174512ef80597883b6ddf30103a16daee61748 (diff)
downloaddotfiles-94b05b65efebc19f815f24350bca5473bb28fb46.tar.gz
dotfiles-94b05b65efebc19f815f24350bca5473bb28fb46.zip
Split off emacs configs to dotemacs
Diffstat (limited to '.emacs.d/init.el')
-rw-r--r--.emacs.d/init.el503
1 files changed, 0 insertions, 503 deletions
diff --git a/.emacs.d/init.el b/.emacs.d/init.el
deleted file mode 100644
index 95b3d64..0000000
--- a/.emacs.d/init.el
+++ /dev/null
@@ -1,503 +0,0 @@
-;; -*- mode: Emacs-Lisp; -*-
-(let ((default-directory "~/.emacs.d/"))
- (normal-top-level-add-subdirs-to-load-path))
-
-;;-----[ Defun ]---------------------------------------------------------
-(defun ext/what-face (pos)
- "Find out which face the current position uses"
- (interactive "d")
- (let ((face (or (get-char-property (point) 'read-face-name)
- (get-char-property (point) 'face))))
- (if face
- (message "Face: %s" face)
- (message "No face at %d" pos))))
-
-(defun ext/what-major-mode (buffer-or-string)
- "Find out which major-mode is currently used"
- (with-current-buffer buffer-or-string major-mode))
-
-(defun ext/my-comp-finish-function (buf str)
- "Don't show compilation window if everything went ok"
- (if (string-match "exited abnormally" str)
- ;; there were errors
- (message "compilation errors, press C-x ` to visit")
- ;; no errors, make the compilation window go away in 0.5 seconds
- (run-at-time 0.5 nil 'delete-windows-on buf)
- (message "NO COMPILATION ERRORS!")))
-
-(defun ext/pretty-lambdas ()
- (font-lock-add-keywords
- nil `(("(\\(lambda\\>\\)"
- (0 (progn
- (compose-region (match-beginning 1)
- (match-end 1)
- ?λ)))))))
-
-(defun ext/x-urgency-hint (frame arg &optional source)
- (let* ((wm-hints (append (x-window-property
- "WM_HINTS" frame "WM_HINTS"
- (if source
- source
- (string-to-number
- (frame-parameter frame 'outer-window-id)))
- nil t) nil))
- (flags (car wm-hints)))
- (setcar wm-hints
- (if arg
- (logior flags #x00000100)
- (logand flags #xFFFFFEFF)))
- (x-change-window-property "WM_HINTS" wm-hints frame "WM_HINTS" 32 t)))
-
-(defun oni/c-toggle-header-source ()
- "Toggle between a C source and header file"
- (interactive)
- (let ((ext (file-name-extension (buffer-file-name)))
- (noext (file-name-sans-extension (buffer-file-name))))
- (if (string= (substring ext 0 1) "c")
- (find-file (concat noext ".h"))
- (find-file (concat noext ".c")))))
-
-(defun oni/init-show-outline ()
- (interactive)
- (occur ";;-----\\[ .* \\]-+")
- (other-window 1))
-
-(defun oni/replace-occurrences (from to)
- (save-excursion
- (goto-char (point-min))
- (while (search-forward from nil t)
- (replace-match to))))
-
-(defun oni/replace-html-special-chars ()
- (oni/replace-occurrences "é" "é"))
-
-(defun oni/before-save-hook ()
- (if (eq (ext/what-major-mode (current-buffer)) 'html-mode)
- (oni/replace-html-special-chars))
- (if (not (eq (ext/what-major-mode (current-buffer)) 'markdown-mode))
- (delete-trailing-whitespace)))
-
-(defun oni/after-save-hook ()
- (let* ((fname (buffer-file-name))
- (suffix (file-name-extension fname)))
- (if (string-equal suffix "el")
- (byte-compile-file fname))))
-
-;;-----[ Theme ]---------------------------------------------------------
-(require 'naquadah-theme)
-(eval-after-load 'naquadah-theme
- (naquadah-theme-set-faces
- 'naquadah
-
- ;; markdown-mode
- '(markdown-link-face (:inherit 'link))
- '(markdown-header-face-1 (:inherit 'org-level-1))
- '(markdown-header-face-2 (:inherit 'org-level-2))
- '(markdown-header-face-3 (:inherit 'org-level-3))
- '(markdown-header-face-4 (:inherit 'org-level-4))
- '(markdown-header-face-5 (:inherit 'org-level-5))
- '(markdown-header-face-6 (:inherit 'org-level-6))
-
- '(ac-candidate-face (:inherit 'header-line :box nil))
- '(ac-selection-face (:inherit 'hl-line :box nil))))
-
-;;-----[ Autopair ]------------------------------------------------------
-(require 'autopair)
-(autopair-global-mode t) ; automatically add the other delimiter
-(setq autopair-skip-criteria 'always
- autopair-autowrap t
- autopair-blink nil)
-(setq-default autopair-dont-pair '(:string (?\' ?\") :comment (?\')))
-
-;;-----[ Column marker ]-------------------------------------------------
-(require 'column-marker)
-
-(defun set-column-markers (cm1 cm2)
- (column-marker-1 cm1)
- (column-marker-2 cm2))
-
-;;-----[ Prog mode ]-----------------------------------------------------
-(defconst integer-regex-1
- (eval-when-compile
- (concat "\\b\\(0[xX][0-9a-fA-F]+[lL]?\\|[0-9]+\\.?[0-9]*\\([eE][-+]?"
- "[0-9]+\\)?\\([lL]\\|[fF]\\|[dD]\\)?\\)\\b")))
-
-(defconst integer-regex-2
- (eval-when-compile
- (concat "\\b\\(\\.[0-9]+\\([eE][-+]?[0-9]+\\)?\\([lL]\\|[fF]\\|[dD]"
- "\\)?\\)\\b")))
-
-(defun oni/prog-mode-hook ()
- (font-lock-add-keywords
- nil
- `((,integer-regex-1 0 font-lock-constant-face)
- (,integer-regex-2 0 font-lock-constant-face)))
- (ext/pretty-lambdas)
- (set-column-markers 73 81))
-
-(if (>= emacs-major-version 24)
- (add-hook 'prog-mode-hook 'oni/prog-mode-hook)
- (add-hook 'c-mode-common-hook 'oni/prog-mode-hook)
- (add-hook 'go-mode-hook 'oni/prog-mode-hook)
- (add-hook 'emacs-lisp-mode-hook 'oni/prog-mode-hook))
-
-;;-----[ HTML mode ]-----------------------------------------------------
-(defun oni/html-mode-hook ()
- (set-column-markers 73 81)
- (setq fill-column 73))
-
-(eval-after-load "sgml-mode"
- (progn
- (font-lock-add-keywords
- 'html-mode
- '(("{\\(\\*.*\\*\\)}" 1 font-comment-face)
- ("{\\/?\\(extends\\|block\\|foreach\\(else\\)?\\|if\\|else\\)"
- 1 font-lock-builtin-face)
- ("\\$\\(\\(?:\\sw\\|\\s_\\)+\\)\\(?:|\\(\\(?:\\sw\\|\\s_\\)+\\):\\)"
- (1 font-lock-variable-name-face)
- (2 font-lock-function-name-face))
- ("\\$\\(\\(?:\\sw\\|\\s_\\)+\\)"
- 1 font-lock-variable-name-face)
- ("{\\(\\(?:\\sw\\|\\s_\\)+\\).*}"
- 1 font-lock-function-name-face)))))
-
-(add-hook 'html-mode-hook 'oni/html-mode-hook)
-(add-to-list 'auto-mode-alist '("\\.tpl$" . html-mode))
-
-;;-----[ Org mode ]------------------------------------------------------
-(require 'org-crypt)
-(require 'org-publish)
-
-(defun oni/org-mode-hook ()
- (turn-on-flyspell)
- (turn-on-auto-fill))
-
-(setq
- org-tags-exclude-from-inheritance '("crypt")
- org-crypt-key "33E8CC1CC4"
- org-use-fast-todo-selection t
- org-default-notes-file (concat org-directory
- "/notes.org")
- org-outline-path-complete-in-steps t
- org-return-follows-link t
- org-log-into-drawer t
- org-todo-keywords '((sequence "TODO(t)"
- "IN PROGRESS(p)"
- "WAITING(w@/!)"
- "|"
- "DONE(d!/!)"
- "CANCELLED(c@/!)"))
- org-refile-targets '((org-agenda-files :maxlevel . 5)
- (nil :maxlevel . 5))
- org-todo-keyword-faces
- '(("TODO" :foreground "red" :weight bold)
- ("IN PROGRESS" :foreground "yellow" :weight bold)
- ("DONE" :foreground "forest green" :weight bold)
- ("WAITING" :foreground "orange" :weight bold)
- ("CANCELLED" :foreground "orangered" :weight bold)))
-(add-to-list 'auto-mode-alist '("\\.commitmsg$" . org-mode))
-(global-set-key "\C-cl" 'org-store-link)
-(global-set-key "\C-cc" 'org-capture)
-(global-set-key "\C-ca" 'org-agenda)
-(add-hook 'org-mode-hook 'oni/org-mode-hook)
-(org-crypt-use-before-save-magic)
-
-;;-----[ Rainbow delimiters ]--------------------------------------------
-(require 'rainbow-delimiters)
-(setq rainbow-delimiters-max-face-count 8)
-(global-rainbow-delimiters-mode)
-
-;;-----[ Uniquify ]------------------------------------------------------
-(require 'uniquify)
-(setq uniquify-buffer-name-style 'post-forward)
-
-;;-----[ Go mode ]-------------------------------------------------------
-(defun oni/go-mode-hook ()
- (turn-off-auto-fill))
-
-(autoload 'go-mode "go-mode" "Major mode for google go" t)
-(autoload 'gofmt "go-mode" "" t)
-(autoload 'go-fmt-before-save "go-mode" "" t)
-(add-to-list 'auto-mode-alist '("\\.go$" . go-mode))
-(add-hook 'go-mode-hook 'oni/go-mode-hook)
-
-;;-----[ Htmlize ]-------------------------------------------------------
-(require 'htmlize)
-(setq htmlize-output-type 'inline-css)
-
-;;-----[ Git ]-----------------------------------------------------------
-(require 'git)
-
-;;-----[ Markdown mode ]-------------------------------------------------
-(defun oni/markdown-mode-hook ()
- (whitespace-mode 1)
- (turn-on-auto-fill))
-
-(autoload 'markdown-mode "markdown-mode" "Major mode for Markdown" t)
-(setq whitespace-style '(face trailing)) ; For use with markdown mode
-(add-to-list 'auto-mode-alist '("\\.m\\(ark\\)?do?wn$". markdown-mode))
-(add-hook 'markdown-mode-hook 'oni/markdown-mode-hook)
-
-;;-----[ Xmodmap mode ]--------------------------------------------------
-(autoload 'xmodmap-mode "xmodmap-mode" "Major mode for xmodmap" t)
-(add-to-list 'auto-mode-alist
- '("\\.[xX]modmap\\(rc\\)?$" . xmodmap-mode))
-
-;;-----[ Gtags ]---------------------------------------------------------
-;; http://emacs-fu.blogspot.com/2009/01/navigating-through-source-code-using.html
-(defun oni/gtags-create-or-update ()
- "create or update the gnu global tag file"
- (interactive)
- (if (not (= 0 (call-process "global" nil nil nil " -p"))) ; tagfile
- (let ((olddir default-directory) ; doesn't exist?
- (topdir (read-directory-name
- "gtags: top of source tree:" default-directory)))
- (cd topdir)
- (shell-command "gtags && echo 'created tagfile'")
- (cd olddir)) ; restore
- ;; tagfile already exists; update it
- (shell-command "global -u && echo 'updated tagfile'")))
-
-(defun oni/gtags-mode-hook ()
- (local-set-key "\M-," 'gtags-find-tag)
- (local-set-key "\M-." 'gtags-find-rtag))
-
-(autoload 'gtags-mode "gtags" "Minor mode for using gtags" t)
-(add-hook 'gtags-mode-hook 'oni/gtags-mode-hook)
-
-;;-----[ C mode ]--------------------------------------------------------
-(defun oni/c-mode-common-hook ()
- (gtags-mode t)
- (oni/gtags-create-or-update))
-
-(defun oni/c-mode-hook ()
- (local-set-key [f8] 'oni/c-toggle-header-source)
- (local-set-key [f9] 'compile)
- (local-set-key [C-m] 'newline-and-indent)
- (local-set-key [C-return] 'newline))
-
-(add-hook 'c-mode-common-hook 'oni/c-mode-common-hook)
-(add-hook 'c-mode-hook 'oni/c-mode-hook)
-
-;;-----[ PHP mode ]------------------------------------------------------
-(defconst php-outline-regex
- (eval-when-compile
- (concat "\\(function .*(\\|\\(public\\|private\\|protected\\)\\( "
- "static\\)? \\$\\|class \\sw\\)")))
-
-(defun oni/php-show-outline ()
- (interactive)
- (occur php-outline-regex))
-
-(defun oni/php-mode-hook ()
- (c-set-offset 'arglist-intro '+)
- (c-set-offset 'arglist-close '0)
- (local-set-key [f6] 'comment-line)
- (local-set-key [f7] 'oni/php-show-outline)
- (local-set-key [M-S-up] 'flymake-goto-prev-error)
- (local-set-key [M-S-down] 'flymake-goto-next-error)
- (set-column-markers 76 81)
- (flymake-mode 1))
-
-(eval-after-load "php-mode"
- (progn
- ;; Add ! at the beginning of font lock
- (font-lock-add-keywords
- 'php-mode
- '(("\\([!]\\|\\=>\\)" 1 font-lock-operator-face)))
- ;; Add the rest at the end of font lock
- (font-lock-add-keywords
- 'php-mode
- '(("\\(->\\|[|.+=&/%*,:?<>-]\\)" 1 font-lock-operator-face)
- ("\\(;\\)" 1 font-lock-end-statement)) 1)))
-
-(autoload 'php-mode "php-mode" "Major mode for PHP" t)
-(setq-default php-mode-warn-if-mumamo-off nil) ; don't warn me about this
-(setq php-mode-force-pear t)
-(add-to-list 'auto-mode-alist '("\\.php[345]?$" . php-mode))
-(add-hook 'php-mode-hook 'oni/php-mode-hook)
-
-;;-----[ bidi ]----------------------------------------------------------
-(setq-default bidi-display-reordering nil)
-
-;;-----[ Message ]-------------------------------------------------------
-(defun oni/message-mode-hook ()
- (turn-on-auto-fill)
- (turn-on-flyspell)
- (ispell-change-dictionary (read-string "New dictionary: ")))
-
-(add-hook 'message-mode-hook 'oni/message-mode-hook)
-
-;;-----[ Gnus ]----------------------------------------------------------
-(setq gnus-init-file "~/.emacs.d/gnus")
-
-;;-----[ Autosmiley ]----------------------------------------------------
-(require 'autosmiley)
-
-;;-----[ Jabber ]--------------------------------------------------------
-(defvar ext/jabber-activity-jids-count 0)
-
-(defun ext/jabber-urgency-hint ()
- (let ((count (length jabber-activity-jids)))
- (unless (= ext/jabber-activity-jids-count count)
- (if (zerop count)
- (ext/x-urgency-hint (selected-frame) nil)
- (ext/x-urgency-hint (selected-frame) t))
- (setq ext/jabber-activity-jids-count count))))
-
-(defun oni/jabber-chat-mode-hook ()
- (autosmiley-mode)
- (local-set-key [S-return] 'newline)
- (local-set-key [C-return] 'newline))
-
-(when (require 'jabber-autoloads nil 'noerror)
- (setq jabber-account-list
- '(("ryuslash@gmail.com"
- (:network-server . "talk.google.com")
- (:connection-type . ssl))))
- (setq jabber-history-enabled t)
- (setq jabber-use-global-history nil)
- (add-hook 'jabber-chat-mode-hook 'oni/jabber-chat-mode-hook)
- (add-hook 'jabber-activity-update-hook 'ext/jabber-urgency-hint))
-
-;;-----[ X11 ]-----------------------------------------------------------
-(when window-system
- (setq linum-format " %d")
- (global-unset-key "\C-z"))
-
-;;-----[ CLI ]-----------------------------------------------------------
-(when (not window-system)
- (setq linum-format "%d "))
-
-;;-----[ Texinfo ]-------------------------------------------------------
-(add-hook 'texinfo-mode-hook 'turn-on-auto-fill)
-
-;;-----[ Dot ]-----------------------------------------------------------
-(autoload 'graphviz-dot-mode "graphviz-dot-mode" "Major mode for dot" t)
-(add-to-list 'auto-mode-alist '("\\.dot$" . graphviz-dot-mode))
-
-;;-----[ Cmake ]---------------------------------------------------------
-(define-skeleton cmake-project-skeleton
- "A cmake project template file"
- "Name: "
- "cmake_minimum_required(VERSION 2.6)\n"
- "project(" str ")\n"
- "\n"
- "set(" str "_VERSION_MAJOR 0)\n"
- "set(" str "_VERSION_MINOR 0)\n"
- "set(" str "_VERSION_PATCH 0)\n"
- "\n"
- "set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR})\n"
- "add_subdirectory(src)")
-
-(autoload 'cmake-mode "cmake-mode" "Major mode for CMake" t)
-(add-to-list 'auto-mode-alist '("CMakeLists\\.txt$" . cmake-mode))
-(add-to-list 'auto-mode-alist '("\\.cmake$" . cmake-mode))
-
-;;-----[ Rainbow ]-------------------------------------------------------
-(autoload 'rainbow-mode "rainbow-mode" "Minor mode for colors" t)
-
-;;-----[ Git-commit mode ]-----------------------------------------------
-(autoload 'git-commit-mode "git-commit" "" t)
-(add-to-list 'auto-mode-alist '("COMMIT_EDITMSG$" . git-commit-mode))
-(add-hook 'git-commit-mode-hook 'auto-fill-mode)
-
-;;-----[ Ido ]-----------------------------------------------------------
-(ido-mode t)
-(setq ido-save-directory-list-file nil)
-(setq ido-auto-merge-delay-time 2)
-
-;;-----[ Js mode ]-------------------------------------------------------
-(add-to-list 'auto-mode-alist '("\\.js\\(on\\)?$" . js-mode))
-
-;;-----[ CSS mode ]------------------------------------------------------
-(add-to-list 'auto-mode-alist '("\\.css$" . css-mode))
-(add-hook 'css-mode-hook 'rainbow-mode)
-
-;;-----[ ELPA ]----------------------------------------------------------
-(setq package-archives
- '(("ELPA" . "http://tromey.com/elpa/")
- ("gnu" . "http://elpa.gnu.org/packages/")
- ("marmalade" . "http://marmalade-repo.org/packages/")))
-
-;;-----[ Windmove ]------------------------------------------------------
-(windmove-default-keybindings 'meta)
-
-;;-----[ Autocomplete ]--------------------------------------------------
-(when (require 'auto-complete-config nil 'noerror)
- (add-to-list 'ac-dictionary-directories "~/.emacs.d/ac-dict")
- (setq ac-comphist-file "~/.emacs.d/ac-comphist.dat")
- (ac-config-default))
-
-;;-----[ Ide-skel ]------------------------------------------------------
-(require 'ide-skel)
-(global-set-key [f10] 'ide-skel-toggle-left-view-window)
-(global-set-key [f11] 'ide-skel-toggle-bottom-view-window)
-(global-set-key [f12] 'ide-skel-toggle-right-view-window)
-
-;;-----[ Misc ]----------------------------------------------------------
-(defun oni/reload-buffer ()
- (interactive)
- (revert-buffer nil t nil))
-
-(defvar font-lock-operator-face 'font-lock-operator-face)
-(defvar font-lock-end-statement 'font-lock-end-statement)
-
-(setq-default indent-tabs-mode nil)
-(setq-default truncate-lines t)
-(setq-default tab-width 4)
-(setq-default require-final-newline t)
-
-(setq inhibit-startup-message t)
-(setq inhibit-default-init t)
-(setq scroll-conservatively 101)
-(setq browse-url-browser-function 'browse-url-generic)
-(setq browse-url-generic-program (getenv "BROWSER"))
-(setq uniquify-buffer-name-style 'reverse)
-(setq jit-lock-defer-time 0.2)
-(setq mouse-autoselect-window t)
-(setq frame-title-format '(:eval (concat "emacs: " (buffer-name))))
-(setq backup-directory-alist `((".*" . ,temporary-file-directory)))
-(setq auto-save-file-name-transforms
- `((".*" ,temporary-file-directory t)))
-
-(setq default-frame-alist
- (append '((font . "DejaVu Sans Mono:pixelsize=13"))))
-
-(setq initial-frame-alist
- (append '((font . "DejaVu Sans Mono:pixelsize=13"))))
-
-(fset 'yes-or-no-p 'y-or-n-p)
-
-(tool-bar-mode -1)
-(menu-bar-mode -1)
-(line-number-mode -1)
-(global-linum-mode t)
-(column-number-mode t)
-(global-font-lock-mode t)
-(delete-selection-mode t)
-(show-paren-mode t)
-
-(add-to-list 'compilation-finish-functions 'ext/my-comp-finish-function)
-
-(global-set-key "\C-m" 'newline-and-indent)
-(global-set-key (kbd "C-x n r") 'narrow-to-region)
-(global-set-key [f5] 'oni/reload-buffer)
-
-(add-hook 'before-save-hook 'oni/before-save-hook)
-(add-hook 'after-save-hook 'oni/after-save-hook)
-
-(make-face 'font-lock-operator-face)
-(make-face 'font-lock-end-statement)
-(set-face-foreground 'font-lock-operator-face "#EDD400")
-(set-face-foreground 'font-lock-end-statement "#888A85")
-
-;; Custom file
-(setq custom-file "~/.emacs.d/custom.el")
-(if (file-exists-p custom-file)
- (load custom-file))
-
-(defvar home-file "~/wiki.info" "File to open when starting")
-
-(if (file-exists-p home-file)
- (info home-file))