forked from redguardtoo/emacs.d
/
init.el
211 lines (194 loc) · 7.62 KB
/
init.el
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
;; -*- coding: utf-8 -*-
(setq emacs-load-start-time (current-time))
(add-to-list 'load-path (expand-file-name "~/.emacs.d"))
;;----------------------------------------------------------------------------
;; Which functionality to enable (use t or nil for true and false)
;;----------------------------------------------------------------------------
(setq *spell-check-support-enabled* t)
(setq *macbook-pro-support-enabled* t)
(setq *is-a-mac* (eq system-type 'darwin))
(setq *is-carbon-emacs* (and *is-a-mac* (eq window-system 'mac)))
(setq *is-cocoa-emacs* (and *is-a-mac* (eq window-system 'ns)))
(setq *win32* (eq system-type 'windows-nt) )
(setq *cygwin* (eq system-type 'cygwin) )
(setq *linux* (or (eq system-type 'gnu/linux) (eq system-type 'linux)) )
(setq *unix* (or *linux* (eq system-type 'usg-unix-v) (eq system-type 'berkeley-unix)) )
(setq *linux-x* (and window-system *linux*) )
(setq *xemacs* (featurep 'xemacs) )
(setq *emacs23* (and (not *xemacs*) (or (>= emacs-major-version 23))) )
(setq *emacs24* (and (not *xemacs*) (or (>= emacs-major-version 24))) )
;----------------------------------------------------------------------------
; Functions (load all files in defuns-dir)
; Copied from https://github.com/magnars/.emacs.d/blob/master/init.el
;----------------------------------------------------------------------------
(setq defuns-dir (expand-file-name "~/.emacs.d/defuns"))
(dolist (file (directory-files defuns-dir t "\\w+"))
(when (file-regular-p file)
(load file)))
;----------------------------------------------------------------------------
; Load configs for specific features and modes
;----------------------------------------------------------------------------
(require 'init-modeline)
;;----------------------------------------------------------------------------
;; Load configs for specific features and modes
;;----------------------------------------------------------------------------
(require 'init-compat)
(require 'init-utils)
(require 'init-site-lisp) ;; Must come before elpa, as it may provide package.el
;; win32 auto configuration, assuming that cygwin is installed at "c:/cygwin"
(if *win32*
(progn
(setq cygwin-mount-cygwin-bin-directory "c:/cygwin/bin")
(require 'setup-cygwin)
;(setenv "HOME" "c:/cygwin/home/someuser") ;; better to set HOME env in GUI
))
(require 'init-elpa)
(require 'init-exec-path) ;; Set up $PATH
(require 'init-frame-hooks)
(require 'init-xterm)
(require 'init-osx-keys)
(require 'init-gui-frames)
(require 'init-maxframe)
(require 'init-proxies)
(require 'init-dired)
(require 'init-isearch)
(require 'init-uniquify)
(require 'init-ibuffer)
(require 'init-flymake)
(require 'init-artbollocks-mode)
(require 'init-recentf)
(require 'init-ido)
(if *emacs24* (require 'init-helm))
(require 'init-hippie-expand)
(require 'init-windows)
(require 'init-sessions)
(require 'init-fonts)
;(require 'init-growl)
(require 'init-editing-utils)
(require 'init-git)
(require 'init-crontab)
(require 'init-textile)
(require 'init-markdown)
(require 'init-csv)
(require 'init-erlang)
(require 'init-javascript)
(require 'init-sh)
(require 'init-php)
(require 'init-org)
(require 'init-org-mime)
(require 'init-css)
(require 'init-haml)
(require 'init-python-mode)
(require 'init-haskell)
(require 'init-ruby-mode)
;(require 'init-rcirc)
(require 'init-lisp)
(when *spell-check-support-enabled*
(require 'init-spelling))
(require 'init-marmalade)
;; Chinese inut method
(require 'init-org2blog)
;;(require 'init-fill-column-indicator) ;make auto-complete dropdown wierd
(if (not (boundp 'light-weight-emacs)) (require 'init-yasnippet))
;; Use bookmark instead
;; (require 'init-better-registers) ; C-x j - jump to register
(require 'init-zencoding-mode) ;behind init-better-register to override C-j
(require 'init-yari)
(require 'init-cc-mode)
(require 'init-semantic)
(require 'init-cmake-mode)
(require 'init-csharp-mode)
(require 'init-linum-mode)
;(require 'init-delicious) ;make startup slow, I don't use delicious in w3m
(require 'init-emacs-w3m)
(if (not (boundp 'light-weight-emacs)) (require 'init-eim))
(require 'init-thing-edit)
(require 'init-which-func)
(require 'init-keyfreq)
;; (require 'init-gist)
(require 'init-emacspeak)
(require 'init-pomodoro)
(require 'init-moz)
(require 'init-gtags)
;; use evil mode (vi key binding)
(if (not (boundp 'light-weight-emacs)) (require 'init-evil))
(require 'init-misc)
(require 'init-ctags)
(require 'init-ace-jump-mode)
(require 'init-multiple-cursors)
;; (require 'init-uml)
(require 'init-sunrise-commander)
(require 'init-bbdb)
(require 'init-gnus)
(require 'init-twittering-mode)
(require 'init-weibo)
;; itune cannot play flac, so I use mplayer+emms instead (updated, use mpd!)
(require 'init-emms)
(require 'init-lua-mode)
(require 'init-doxygen)
(require 'init-workgroups2)
(require 'init-move-window-buffer)
(require 'init-term-mode)
(require 'init-web-mode)
(require 'init-sr-speedbar)
(require 'init-smartparens)
(require 'init-slime)
(when *emacs24*
(require 'init-company)
;; Choose either auto-complete or company-mode by commenting one of below two lines!
;; (require 'init-auto-complete) ; after init-yasnippeta to override TAB
)
(require 'init-stripe-buffer)
(require 'init-popwin)
(require 'init-elnode)
;;----------------------------------------------------------------------------
;; Allow access from emacsclient
;;----------------------------------------------------------------------------
;; Don't use emacsclient, and this code make emacs start up slow
;;(defconst --batch-mode (member "--batch-mode" command-line-args)
;; "True when running in batch-mode (--batch-mode command-line switch set).")
;;
;;(unless --batch-mode
;; (require 'server)
;; (when (and (= emacs-major-version 23)
;; (= emacs-minor-version 1)
;; (equal window-system 'w32))
;; ;; Suppress error "directory ~/.emacs.d/server is unsafe" on Windows.
;; (defun server-ensure-safe-dir (dir) "Noop" t))
;; (condition-case nil
;; (unless (server-running-p) (server-start))
;; (remove-hook 'kill-buffer-query-functions 'server-kill-buffer-query-function)
;; (error
;; (let* ((server-dir (if server-use-tcp server-auth-dir server-socket-dir)))
;; (when (and server-use-tcp
;; (not (file-accessible-directory-p server-dir)))
;; (display-warning
;; 'server (format "Creating %S" server-dir) :warning)
;; (make-directory server-dir t)
;; (server-start))))))
;;----------------------------------------------------------------------------
;; Variables configured via the interactive 'customize' interface
;;----------------------------------------------------------------------------
(if (file-readable-p (expand-file-name "~/.emacs.d/custom.el"))
(load-file (expand-file-name "~/.emacs.d/custom.el"))
nil)
;; load email configuration explicitly
(if (file-readable-p (expand-file-name "~/.gnus.el"))
(load-file (expand-file-name "~/.gnus.el"))
nil)
;;----------------------------------------------------------------------------
;; Allow users to provide an optional "init-local" containing personal settings
;;----------------------------------------------------------------------------
(require 'init-local nil t)
;;----------------------------------------------------------------------------
;; Locales (setting them earlier in this file doesn't work in X)
;;----------------------------------------------------------------------------
;(require 'init-locales) ;does not work in cygwin
(when (require 'time-date nil t)
(message "Emacs startup time: %d seconds."
(time-to-seconds (time-since emacs-load-start-time)))
)
;;; Local Variables:
;;; no-byte-compile: t
;;; End:
(put 'erase-buffer 'disabled nil)