summaryrefslogtreecommitdiff
path: root/.config/emacs/init.el
diff options
context:
space:
mode:
Diffstat (limited to '.config/emacs/init.el')
-rw-r--r--.config/emacs/init.el180
1 files changed, 180 insertions, 0 deletions
diff --git a/.config/emacs/init.el b/.config/emacs/init.el
new file mode 100644
index 0000000..3cd2ea3
--- /dev/null
+++ b/.config/emacs/init.el
@@ -0,0 +1,180 @@
+;; Preliminary settings ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+(set-face-attribute 'default nil :height 80)
+(setq notify-method 'notify-via-libnotify)
+(add-to-list 'load-path "~/.emacs.d/")
+(add-to-list 'load-path "~/.emacs.d/el-get/el-get")
+(setq custom-file "~/.emacs.d/custom.el")
+
+; derived from ELPA installation
+; http://tromey.com/elpa/install.html
+(defun eval-url (url)
+ (let ((buffer (url-retrieve-synchronously url)))
+ (save-excursion
+ (set-buffer buffer)
+ (goto-char (point-min))
+ (re-search-forward "^$" nil 'move)
+ (eval-region (point) (point-max))
+ (kill-buffer (current-buffer)))))
+
+ ;; ELPA stuff ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+(unless (require 'package nil t)
+ (eval-url "http://tromey.com/elpa/package-install.el"))
+
+(setq package-archives '(("ELPA" . "http://tromey.com/elpa/")
+ ("marmalade" . "http://marmalade-repo.org/packages/")
+ ("gnu" . "http://elpa.gnu.org/packages/")))
+
+;; el-get stuff ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+(setq el-get-install-branch "master") ;; live life on the edge
+(unless (require 'el-get nil t)
+ (eval-url "https://github.com/dimitri/el-get/raw/master/el-get-install.el"))
+
+(setq el-get-sources '(
+ (:name nxhtml
+ :type http
+ :url "http://ourcomments.org/Emacs/DL/elisp/nxhtml/zip/nxhtml-2.08-100425.zip"
+ :build ("unzip nxhtml-2.08-100425.zip")
+ :load "nxhtml/autostart.el")
+ ))
+
+(setq my-el-get-packages
+ '(el-get
+; nxhtml
+ apel flim semi wanderlust
+ smarttabs
+ ))
+
+;; Now load all of that ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+;; ELPA
+(package-initialize)
+;; el-get
+(when (require 'el-get nil t) (el-get 'sync my-el-get-packages))
+;; custom
+(load custom-file 'noerror)
+
+;; General settings ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+;(load "mdmua")
+(load "emacsutils")
+
+(tool-bar-mode -1)
+(ido-mode t)
+(show-paren-mode 1)
+(setq org-hide-leading-stars t)
+(setq org-log-done 'time)
+;(xclip-mode 1)
+
+(load "whitespace")
+(setq whitespace-style '(
+ tab-mark
+ space-mark
+ newline-mark
+ empty
+))
+
+
+;; These are my preferred settings; we let dtrt-indent detect when we play with other's files
+(setq-default tab-width 8)
+(setq-default c-basic-offset 8)
+(setq-default indent-tabs-mode t)
+
+
+(setq
+ backup-by-copying t ;; don't clobber symlinks
+ backup-directory-alist '(("." . "~/.emacs.d/saves")) ;; don't litter my fs tree
+ delete-old-versions t
+ kept-new-versions 6
+ kept-old-versions 2
+ version-control t ;; use versioned backups
+)
+
+(setq column-number-mode t
+ inhibit-startup-screen t
+ line-number-mode t
+ server-use-tcp t
+ server-mode t
+ show-paren-mode t)
+
+(setq browse-url-generic-program (executable-find "v-www-browser")
+ browse-url-browser-function 'browse-url-generic)
+
+
+(defun toggle-fullscreen (&optional f)
+ (interactive)
+ (let ((current-value (frame-parameter nil 'fullscreen)))
+ (set-frame-parameter nil 'fullscreen
+ (if (equal 'fullboth current-value)
+ (if (boundp 'old-fullscreen) old-fullscreen nil)
+ (progn (setq old-fullscreen current-value)
+ 'fullboth)))))
+
+;; Custom keybindings ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+(global-set-key [f11] 'toggle-fullscreen)
+(global-set-key "\C-cw" 'global-whitespace-mode)
+
+;; mode-hooks ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+(add-hook 'text-mode-hook 'turn-on-auto-fill)
+
+; for term-mode
+;; (add-hook 'after-make-frame-functions
+;; (lambda (frame)
+;; (set-variable 'term-default-fg-color
+;; (face-foreground 'default))
+;; (set-variable 'term-default-bg-color
+;; (face-background 'default)))
+;; t)
+
+(add-hook 'lisp-mode-hook
+ '(lambda ()
+ (set (make-local-variable 'indent-tabs-mode) nil)
+ ))
+
+(add-hook 'emacs-lisp-mode-hook
+ '(lambda ()
+ (set (make-local-variable 'indent-tabs-mode) nil)
+ ))
+
+(add-hook 'coffee-mode-hook
+ '(lambda ()
+ (set (make-local-variable 'tab-width) 2)
+ ))
+
+(add-hook 'term-mode-hook
+ '(lambda ()
+ (setq term-prompt-regexp "^[^#$%>\n]*[#$%>] *")
+ (make-local-variable 'mouse-yank-at-point)
+ ;(make-local-variable 'transient-mark-mode)
+ (setq mouse-yank-at-point t)
+ ;(setq transient-mark-mode nil)
+ (auto-fill-mode -1)
+ (setq tab-width 8 )
+ (setq autopair-dont-activate t) ;; Don't let autopair break ansi-term
+ ))
+
+(add-hook 'ruby-mode-hook
+ '(lambda ()
+ (set (make-local-variable 'indent-tabs-mode) t)
+ (set (make-local-variable 'ruby-indent-level) 4)
+ (set (make-local-variable 'tab-width) 4)
+ ))
+
+(add-hook 'coffee-mode-hook
+ '(lambda ()
+ (set (make-local-variable 'indent-tabs-mode) nil)
+ ))
+
+(add-to-list 'auto-mode-alist '("PKGBUILD" . sh-mode))
+
+;(require 'flymake)
+;(add-hook 'php-mode-hook (lambda() (flymake-mode 1)))
+;(define-key php-mode-map '[M-S-up] 'flymake-goto-prev-error)
+;(define-key php-mode-map '[M-S-down] 'flymake-goto-next-error)
+
+;(setq tramp-debug-buffer t)
+;(setq tramp-verbose 10)