annotate .emacs @ 54:7755c3adb60d

Fix completion stuff so that _hg will work as it should.
author Augie Fackler <durin42@gmail.com>
date Fri, 20 Feb 2009 11:16:51 -0600
parents d6ea7c108453
children 5c25d3dc29ab
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
1 ;; Augie Fackler's .emacs file
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
2 ; Places I've stolen from:
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
3 ; Karl Fogel: http://svn.red-bean.com/repos/kfogel/trunk
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
4 ; Dave Anderson:
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
5
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
6 (setq load-path (cons (expand-file-name "~/.elisp") load-path))
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
7 ; Better buffer switching and file loading (load first in case we need the
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
8 ; * Messages * buffer)
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
9 (require 'ido)
8
6b651c7265f2 Flex matching for ido-mode.
Augie Fackler <durin42@gmail.com>
parents: 7
diff changeset
10 (setq ido-enable-flex-matching t)
0
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
11 (ido-mode t)
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
12
19
b5d75594b356 Add support for the ipython-mode stuff and remove vestigial pymacs code.
Augie Fackler <durin42@gmail.com>
parents: 14
diff changeset
13 (require 'python-mode)
b5d75594b356 Add support for the ipython-mode stuff and remove vestigial pymacs code.
Augie Fackler <durin42@gmail.com>
parents: 14
diff changeset
14 (require 'ipython)
b5d75594b356 Add support for the ipython-mode stuff and remove vestigial pymacs code.
Augie Fackler <durin42@gmail.com>
parents: 14
diff changeset
15
0
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
16 (require 'show-wspace)
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
17
12
d4d720c4c416 Add mercurial support to emacs. Improve setting of PYTHONPATH in there.
Augie Fackler <durin42@gmail.com>
parents: 8
diff changeset
18 (require 'mercurial)
d4d720c4c416 Add mercurial support to emacs. Improve setting of PYTHONPATH in there.
Augie Fackler <durin42@gmail.com>
parents: 8
diff changeset
19
32
dc1c584707e6 Add some colorized diff stuff to emacs.
Augie Fackler <durin42@gmail.com>
parents: 28
diff changeset
20 ; improved diff mode
dc1c584707e6 Add some colorized diff stuff to emacs.
Augie Fackler <durin42@gmail.com>
parents: 28
diff changeset
21 (require 'diff-mode-)
dc1c584707e6 Add some colorized diff stuff to emacs.
Augie Fackler <durin42@gmail.com>
parents: 28
diff changeset
22
34
1c70c9393f45 Midnight mode.
Augie Fackler <durin42@gmail.com>
parents: 32
diff changeset
23 (require 'midnight)
1c70c9393f45 Midnight mode.
Augie Fackler <durin42@gmail.com>
parents: 32
diff changeset
24
7
9541f7e47514 Some edits to .emacs after my playing with Clojure, also added Clojure support files.
Augie Fackler <durin42@gmail.com>
parents: 0
diff changeset
25 ; Clojure
9541f7e47514 Some edits to .emacs after my playing with Clojure, also added Clojure support files.
Augie Fackler <durin42@gmail.com>
parents: 0
diff changeset
26 (require 'clojure-auto)
51
ac7a8f9a0924 Better way to handle auto-mode stuff for clojure.
Augie Fackler <durin42@gmail.com>
parents: 43
diff changeset
27 (add-to-list 'auto-mode-alist '("\\.clj$" . clojure-mode))
7
9541f7e47514 Some edits to .emacs after my playing with Clojure, also added Clojure support files.
Augie Fackler <durin42@gmail.com>
parents: 0
diff changeset
28
22
8715ccb6f61b Start using textmate.el.
Augie Fackler <durin42@gmail.com>
parents: 19
diff changeset
29 (require 'textmate)
8715ccb6f61b Start using textmate.el.
Augie Fackler <durin42@gmail.com>
parents: 19
diff changeset
30 (textmate-mode)
8715ccb6f61b Start using textmate.el.
Augie Fackler <durin42@gmail.com>
parents: 19
diff changeset
31 (textmate-also-ignore "eggs|cover|daisy|.*.pyc")
8715ccb6f61b Start using textmate.el.
Augie Fackler <durin42@gmail.com>
parents: 19
diff changeset
32
52
d6ea7c108453 Add yaml mode.
Augie Fackler <durin42@gmail.com>
parents: 51
diff changeset
33 ; yaml
d6ea7c108453 Add yaml mode.
Augie Fackler <durin42@gmail.com>
parents: 51
diff changeset
34 (require 'yaml-mode)
d6ea7c108453 Add yaml mode.
Augie Fackler <durin42@gmail.com>
parents: 51
diff changeset
35 (add-to-list 'auto-mode-alist '("\\.yml$" . yaml-mode))
d6ea7c108453 Add yaml mode.
Augie Fackler <durin42@gmail.com>
parents: 51
diff changeset
36
d6ea7c108453 Add yaml mode.
Augie Fackler <durin42@gmail.com>
parents: 51
diff changeset
37
0
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
38 ; Start the server so that emacsclient will work
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
39 ; TODO: is there a way to *not* start a server if one was already running?
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
40 (server-start)
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
41
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
42 ; All lines should end in a newline
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
43 (setq require-final-newline t)
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
44
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
45 ; disable tabs
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
46 (setq tab-width 4)
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
47 (setq-default indent-tabs-mode nil)
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
48
7
9541f7e47514 Some edits to .emacs after my playing with Clojure, also added Clojure support files.
Augie Fackler <durin42@gmail.com>
parents: 0
diff changeset
49 ; use tab for indent or complete
9541f7e47514 Some edits to .emacs after my playing with Clojure, also added Clojure support files.
Augie Fackler <durin42@gmail.com>
parents: 0
diff changeset
50 (defun indent-or-expand (arg)
9541f7e47514 Some edits to .emacs after my playing with Clojure, also added Clojure support files.
Augie Fackler <durin42@gmail.com>
parents: 0
diff changeset
51 "Either indent according to mode, or expand the word preceding
9541f7e47514 Some edits to .emacs after my playing with Clojure, also added Clojure support files.
Augie Fackler <durin42@gmail.com>
parents: 0
diff changeset
52 point."
9541f7e47514 Some edits to .emacs after my playing with Clojure, also added Clojure support files.
Augie Fackler <durin42@gmail.com>
parents: 0
diff changeset
53 (interactive "*P")
9541f7e47514 Some edits to .emacs after my playing with Clojure, also added Clojure support files.
Augie Fackler <durin42@gmail.com>
parents: 0
diff changeset
54 (if (and
9541f7e47514 Some edits to .emacs after my playing with Clojure, also added Clojure support files.
Augie Fackler <durin42@gmail.com>
parents: 0
diff changeset
55 (or (bobp) (= ?w (char-syntax (char-before))))
9541f7e47514 Some edits to .emacs after my playing with Clojure, also added Clojure support files.
Augie Fackler <durin42@gmail.com>
parents: 0
diff changeset
56 (or (eobp) (not (= ?w (char-syntax (char-after))))))
9541f7e47514 Some edits to .emacs after my playing with Clojure, also added Clojure support files.
Augie Fackler <durin42@gmail.com>
parents: 0
diff changeset
57 (dabbrev-expand arg)
9541f7e47514 Some edits to .emacs after my playing with Clojure, also added Clojure support files.
Augie Fackler <durin42@gmail.com>
parents: 0
diff changeset
58 (indent-according-to-mode)))
9541f7e47514 Some edits to .emacs after my playing with Clojure, also added Clojure support files.
Augie Fackler <durin42@gmail.com>
parents: 0
diff changeset
59
9541f7e47514 Some edits to .emacs after my playing with Clojure, also added Clojure support files.
Augie Fackler <durin42@gmail.com>
parents: 0
diff changeset
60 (defun af-tab-fix ()
9541f7e47514 Some edits to .emacs after my playing with Clojure, also added Clojure support files.
Augie Fackler <durin42@gmail.com>
parents: 0
diff changeset
61 (local-set-key [tab] 'indent-or-expand))
9541f7e47514 Some edits to .emacs after my playing with Clojure, also added Clojure support files.
Augie Fackler <durin42@gmail.com>
parents: 0
diff changeset
62
9541f7e47514 Some edits to .emacs after my playing with Clojure, also added Clojure support files.
Augie Fackler <durin42@gmail.com>
parents: 0
diff changeset
63 ;; add hooks for modes you want to use the tab completion for:
43
f34194cad324 Fix to not strip whitespace in rst, since that format is broken to depend on trailing whitespace in some cases.
Augie Fackler <durin42@gmail.com>
parents: 37
diff changeset
64 (set-variable 'af-cleanup-whitespace t)
7
9541f7e47514 Some edits to .emacs after my playing with Clojure, also added Clojure support files.
Augie Fackler <durin42@gmail.com>
parents: 0
diff changeset
65 (add-hook 'c-mode-hook 'af-tab-fix)
9541f7e47514 Some edits to .emacs after my playing with Clojure, also added Clojure support files.
Augie Fackler <durin42@gmail.com>
parents: 0
diff changeset
66 (add-hook 'sh-mode-hook 'af-tab-fix)
9541f7e47514 Some edits to .emacs after my playing with Clojure, also added Clojure support files.
Augie Fackler <durin42@gmail.com>
parents: 0
diff changeset
67 (add-hook 'emacs-lisp-mode-hook 'af-tab-fix)
9541f7e47514 Some edits to .emacs after my playing with Clojure, also added Clojure support files.
Augie Fackler <durin42@gmail.com>
parents: 0
diff changeset
68 (add-hook 'clojure-mode-hook 'af-tab-fix)
43
f34194cad324 Fix to not strip whitespace in rst, since that format is broken to depend on trailing whitespace in some cases.
Augie Fackler <durin42@gmail.com>
parents: 37
diff changeset
69 (add-hook 'rst-mode-hook '(lambda ()
f34194cad324 Fix to not strip whitespace in rst, since that format is broken to depend on trailing whitespace in some cases.
Augie Fackler <durin42@gmail.com>
parents: 37
diff changeset
70 (make-variable-buffer-local 'af-cleanup-whitespace)
f34194cad324 Fix to not strip whitespace in rst, since that format is broken to depend on trailing whitespace in some cases.
Augie Fackler <durin42@gmail.com>
parents: 37
diff changeset
71 (set-variable 'af-cleanup-whitespace nil)))
7
9541f7e47514 Some edits to .emacs after my playing with Clojure, also added Clojure support files.
Augie Fackler <durin42@gmail.com>
parents: 0
diff changeset
72
27
614a83a1c5dd Add js2-mode.
Augie Fackler <durin42@gmail.com>
parents: 22
diff changeset
73 (autoload 'js2-mode "js2" nil t)
614a83a1c5dd Add js2-mode.
Augie Fackler <durin42@gmail.com>
parents: 22
diff changeset
74 (add-to-list 'auto-mode-alist '("\\.js$" . js2-mode))
37
6e65d45edbbe Tab fix for js2-mode
Augie Fackler <durin42@gmail.com>
parents: 34
diff changeset
75 (add-hook 'js2-mode-hook 'af-tab-fix)
27
614a83a1c5dd Add js2-mode.
Augie Fackler <durin42@gmail.com>
parents: 22
diff changeset
76
0
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
77 (defun af-python-mode-hook ()
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
78 ; highlight tabs in Python
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
79 (make-variable-buffer-local 'font-lock-mode-hook)
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
80 (add-hook 'font-lock-mode-hook 'show-ws-highlight-tabs)
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
81 (make-variable-buffer-local 'python-indent)
19
b5d75594b356 Add support for the ipython-mode stuff and remove vestigial pymacs code.
Augie Fackler <durin42@gmail.com>
parents: 14
diff changeset
82 (if (and buffer-file-name (string-match "melange" buffer-file-name))
b5d75594b356 Add support for the ipython-mode stuff and remove vestigial pymacs code.
Augie Fackler <durin42@gmail.com>
parents: 14
diff changeset
83 (set-variable 'python-indent 2))
7
9541f7e47514 Some edits to .emacs after my playing with Clojure, also added Clojure support files.
Augie Fackler <durin42@gmail.com>
parents: 0
diff changeset
84 (af-tab-fix)
0
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
85 )
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
86 (add-hook 'python-mode-hook 'af-python-mode-hook)
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
87
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
88
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
89 ; text-mode tries to use M-s for something other than my save shortcut.
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
90 ; That's evil. Stop it from doing that.
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
91 (add-hook 'text-mode-hook '(lambda ()
43
f34194cad324 Fix to not strip whitespace in rst, since that format is broken to depend on trailing whitespace in some cases.
Augie Fackler <durin42@gmail.com>
parents: 37
diff changeset
92 (define-key text-mode-map "\M-s"
f34194cad324 Fix to not strip whitespace in rst, since that format is broken to depend on trailing whitespace in some cases.
Augie Fackler <durin42@gmail.com>
parents: 37
diff changeset
93 'save-buffer)))
0
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
94
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
95 ; Cleanup whitespace before saves.
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
96 (add-hook 'before-save-hook '(lambda ()
43
f34194cad324 Fix to not strip whitespace in rst, since that format is broken to depend on trailing whitespace in some cases.
Augie Fackler <durin42@gmail.com>
parents: 37
diff changeset
97 (if af-cleanup-whitespace (whitespace-cleanup))))
0
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
98
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
99 ; Disable that startup screen
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
100 (setq inhibit-startup-message t)
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
101
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
102 ; Basically everything I do is in version control, stop saving backup files
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
103 (setq make-backup-files nil)
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
104
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
105 ; Set some pretty colors that are gentler on my eyes
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
106 (setq default-frame-alist
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
107 '((width . 80)
43
f34194cad324 Fix to not strip whitespace in rst, since that format is broken to depend on trailing whitespace in some cases.
Augie Fackler <durin42@gmail.com>
parents: 37
diff changeset
108 (cursor-color . "white")
f34194cad324 Fix to not strip whitespace in rst, since that format is broken to depend on trailing whitespace in some cases.
Augie Fackler <durin42@gmail.com>
parents: 37
diff changeset
109 (cursor-type . box)
f34194cad324 Fix to not strip whitespace in rst, since that format is broken to depend on trailing whitespace in some cases.
Augie Fackler <durin42@gmail.com>
parents: 37
diff changeset
110 (foreground-color . "white")
f34194cad324 Fix to not strip whitespace in rst, since that format is broken to depend on trailing whitespace in some cases.
Augie Fackler <durin42@gmail.com>
parents: 37
diff changeset
111 (background-color . "black")
f34194cad324 Fix to not strip whitespace in rst, since that format is broken to depend on trailing whitespace in some cases.
Augie Fackler <durin42@gmail.com>
parents: 37
diff changeset
112 )
0
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
113 )
7
9541f7e47514 Some edits to .emacs after my playing with Clojure, also added Clojure support files.
Augie Fackler <durin42@gmail.com>
parents: 0
diff changeset
114 ; always highlight matching paren
9541f7e47514 Some edits to .emacs after my playing with Clojure, also added Clojure support files.
Augie Fackler <durin42@gmail.com>
parents: 0
diff changeset
115 (show-paren-mode 1)
0
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
116
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
117 ;; Automatically revert unedited files that change on the underlying
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
118 ;; system.
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
119 (global-auto-revert-mode)
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
120
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
121 ;; Key Bindings
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
122 ; M-backspace kills the current buffer
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
123 (global-set-key [(meta backspace)] 'kill-this-buffer)
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
124 ; Save early and often, with only one keystroke
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
125 (global-set-key [(meta s)] 'save-buffer)
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
126 ; Typing tab is for lesser editors, make hitting return do that
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
127 (global-set-key "\C-m" 'newline-and-indent)
22
8715ccb6f61b Start using textmate.el.
Augie Fackler <durin42@gmail.com>
parents: 19
diff changeset
128 ; M-l makes more sense to me for jumping to a line
8715ccb6f61b Start using textmate.el.
Augie Fackler <durin42@gmail.com>
parents: 19
diff changeset
129 (global-set-key "\M-l" 'goto-line)
14
34fd1e79495b Fix for backspace being broken in some terminal emulators.
Augie Fackler <durin42@gmail.com>
parents: 12
diff changeset
130 ; Sometimes C-h is what Backspace sends in a terminal, and I never use C-h
34fd1e79495b Fix for backspace being broken in some terminal emulators.
Augie Fackler <durin42@gmail.com>
parents: 12
diff changeset
131 (global-set-key "\C-h" 'backward-delete-char-untabify)
22
8715ccb6f61b Start using textmate.el.
Augie Fackler <durin42@gmail.com>
parents: 19
diff changeset
132 ; M-t is what I want for the textmate file finding
8715ccb6f61b Start using textmate.el.
Augie Fackler <durin42@gmail.com>
parents: 19
diff changeset
133 (global-set-key [(meta t)] 'textmate-goto-file)
32
dc1c584707e6 Add some colorized diff stuff to emacs.
Augie Fackler <durin42@gmail.com>
parents: 28
diff changeset
134 (global-set-key [(meta z)] 'textmate-find-in-project-type)