From 94b05b65efebc19f815f24350bca5473bb28fb46 Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Tue, 20 Sep 2011 01:08:06 +0200 Subject: Split off emacs configs to dotemacs --- .emacs.d/init.el | 503 ------------------------------------------------------- 1 file changed, 503 deletions(-) delete mode 100644 .emacs.d/init.el (limited to '.emacs.d/init.el') 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)) -- cgit v1.2.3-54-g00ecf