(setq additional-paths '("/home/joe" "/home/joe/misc/lisp"))
(setq load-path (append additional-paths load-path))

;;;;;;;;;;;;;;;;;
;; APPEARANCE
;;;;;;;;;;;;;;;;;
(setq font-lock-maximum-decoration t)
(setq visible-bell t)
(setq require-final-newline t)
(setq resize-minibuffer-frame t)
(setq column-number-mode t)
(setq-default transient-mark-mode t)
(setq next-line-add-newlines nil)
(setq blink-matching-paren nil)
(global-font-lock-mode 1 t)
(blink-cursor-mode -1)
(tool-bar-mode -1)
(tooltip-mode -1)

;;Customized syntax highlighting colors
(set-default-font "-misc-fixed-medium-r-normal-*-*-200-*-*-c-*-koi8-r")
(set-foreground-color "#dbdbdb")
(set-background-color "#000000")
(set-cursor-color "#ff0000")
(custom-set-variables '(load-home-init-file t t))

(if (> (display-color-cells) 20)
    (custom-set-faces
     '(font-lock-builtin-face ((t (:foreground "deepskyblue"))))
     '(font-lock-comment-face ((t (:foreground "gray60"))))
     '(font-lock-doc-face ((t (:foreground "darkkhaki"))))
     '(font-lock-keyword-face ((t (:foreground "magenta"))))
     '(font-lock-function-name-face ((t (:foreground "green" :background "seagreen"))))
     '(font-lock-string-face ((t (:foreground "gold"))))
     '(font-lock-type-face ((t (:foreground "cyan" :background "slateblue"))))
     '(font-lock-variable-name-face ((t (:foreground "yellow"))))
   
     '(modeline ((t (:foreground "plum1" :background "navy"))))
     '(region ((t (:background "sienna"))))
     '(highlight ((t (:foreground "black" :background "darkseagreen2"))))
     
     '(diff-added-face ((t (:foreground "green"))))
     '(diff-changed-face ((t (:foreground "yellow"))))
     '(diff-header-face ((t (:foreground "cyan"))))
     '(diff-hunk-header-face ((t (:foreground "magenta"))))
     '(diff-removed-face ((t (:foreground "red")))))
)

;;;;;;;;;;;;;;;;;
;; KEYS
;;;;;;;;;;;;;;;;;

(setq suggest-key-bindings t)
(global-set-key [delete] 'delete-char)
(global-set-key [kp-delete] 'delete-char)
(global-set-key "\C-h" 'backward-delete-char)
(global-set-key "\C-x\ ?" 'help)
(global-set-key "\C-c\ l" 'goto-line)
(global-set-key "\C-x\ f" 'find-file-other-window)
(global-set-key "\C-x\ \C-r" 'recentf-open-files)
(global-set-key [home] 'beginning-of-buffer)
(global-set-key [end] 'end-of-buffer)
(global-set-key "\C-z" nil)

;;;;;;;;;;;;;;;;;
;; MISC
;;;;;;;;;;;;;;;;;

;; go right to an empty buffer
(setq inhibit-startup-message t)

;; translates ANSI colors into text-properties, for eshell
(autoload 'ansi-color-for-comint-mode-on "ansi-color" nil t)
(add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on)

;; cvs stuff
(setq vc-default-back-end 'CVS)
(autoload 'cvs-add "cvs-add" "CVS add" t)
(autoload 'cvs-commit "cvs-commit" "CVS commit" t)
(autoload 'cvs-diff "cvs-diff" "CVS diff" t)

;; recentf stuff
(require 'recentf)
(recentf-mode 1)
(setq recentf-max-menu-items 25)

;; mode stuff
(setq auto-mode-alist (cons '("\\.php$" . php-mode) auto-mode-alist))
(autoload 'ruby-mode "ruby-mode" nil t)
(setq auto-mode-alist (cons '("\\.rb$" . ruby-mode) auto-mode-alist))

;; autorevert stuff
(autoload 'auto-revert-mode "autorevert" nil t)
(autoload 'turn-on-auto-revert-mode "autorevert" nil nil)
(autoload 'global-auto-revert-mode "autorevert" nil t)
(global-auto-revert-mode 1)

(defalias 'yes-or-no-p 'y-or-n-p)
(setq auto-save-interval 50)
(setq list-matching-lines-default-context-lines 1) ;; for M-x occur

;; counting functions
(defalias 'lc 'count-lines-page)

(defun wc ()
  "Count the words in the current buffer, show the result in the minibuffer"
  (interactive)          ; *** This is the line that you need to add
  (save-excursion 
    (save-restriction
      (widen)
      (goto-char (point-min))
      (let ((count 0))
      (while (forward-word 1)
	(setq count(1+ count)))
      (message "There are %d words in the buffer" count)))))

;; normally disabled by default
(put 'downcase-region 'disabled nil)
(put 'upcase-region 'disabled nil)