emacs - add custom.el which store all config generated customize, do
[dotfiles.git] / emacs.d / init.el
1
2
3 ;; Added by Package.el.  This must come before configurations of
4 ;; installed packages.  Don't delete this line.  If you don't want it,
5 ;; just comment it out by adding a semicolon to the start of the line.
6 ;; You may delete these explanatory comments.
7 (package-initialize)
8
9 (setenv "PATH" (concat (getenv "PATH") ":/usr/local/bin"))
10 (setq exec-path (append exec-path '("/usr/local/bin")))
11
12 (setq debug-on-error t)
13
14
15 (add-to-list 'load-path "~/.emacs.d/config")
16
17 ;; remove custom setting out of init.el
18 ;; http://emacsblog.org/2008/12/06/quick-tip-detaching-the-custom-file/
19 (setq custom-file "~/.emacs.d/custom.el")
20 (load custom-file 'noerror)
21
22
23 (require 'my-packages)
24 (require 'init-base)
25 (require 'init-font)
26
27 ;(require 'init-color-theme)
28 (require 'init-color-theme-2)
29 ;(require 'init-ido)
30 (require 'init-magit)
31 ;(require 'init-evil)
32 (require 'init-project)
33 (require 'init-ggtags)
34
35
36 ;;;; conflict with C-c . in org-mode, disable it temporarily
37 ;;;;(require 'init-c-cpp)
38 ;(require 'init-key-binding)
39 (require 'init-winner)
40 (require 'init-minibuffer)
41 (require 'init-eshell)
42
43 ;; http://stackoverflow.com/questions/11484225/fix-an-auto-complete-mode-and-linum-mode-annoyance
44 ;;;(ac-linum-workaround)
45
46
47 ;(require 'init-mode-line)
48 ;(require 'init-workgroup2)
49 (require 'init-perl)
50
51 ;(add-to-list 'load-path "~/.emacs.d/Emacs-PDE-0.2.16/lisp/")
52 ;(load "pde-load")                       ;
53
54 ;(require 'init-linum)
55
56 (require 'auto-complete)
57 (require 'auto-complete-config)
58 (ac-config-default)
59
60
61 ;(require 'init-helm)
62
63 ;; page break configuration
64 ;(require 'pp-c-l)
65 ;(pretty-control-l-mode 1)
66
67 ;; persist command history of helm
68 ;(require 'session)
69 ;(add-hook 'after-init-hook 'session-initialize)
70
71
72 (require 'use-package)
73
74 ;; persist command history of helm
75 (use-package savehist
76   :init (savehist-mode)
77   :config
78   (setq history-length 1000
79         history-delete-duplicates t
80         savehist-additional-variables '(extended-command-history))) 
81
82 ;;(savehist-mode)
83 ;;  (setq history-length 1000
84 ;;        history-delete-duplicates t
85 ;;        savehist-additional-variables '(extended-command-history)) 
86
87 ;    (setq split-height-threshold 0)
88
89
90
91
92
93 ;;;(require 'helm-gtags)
94 ;;;;(require 'setup-helm-gtags)
95 ;;;;(helm-gtags-mode 1)
96 ;;;;;; Enable helm-gtags-mode
97 ;;;(add-hook 'c-mode-hook 'helm-gtags-mode)
98 ;;;(add-hook 'c++-mode-hook 'helm-gtags-mode)
99 ;;;(add-hook 'asm-mode-hook 'helm-gtags-mode)
100 ;;;
101 ;;;;; customize
102 ;;;(custom-set-variables
103 ;;; '(helm-gtags-path-style 'relative)
104 ;;; '(helm-gtags-ignore-case t)
105 ;;; '(helm-gtags-auto-update t))
106 ;;;
107 ;;;;; key bindings
108 ;;;(eval-after-load "helm-gtags"
109 ;;;  '(progn
110 ;;;     (define-key helm-gtags-mode-map (kbd "M-t") 'helm-gtags-find-tag)
111 ;;;     (define-key helm-gtags-mode-map (kbd "M-r") 'helm-gtags-find-rtag)
112 ;;;     (define-key helm-gtags-mode-map (kbd "M-s") 'helm-gtags-find-symbol)
113 ;;;     (define-key helm-gtags-mode-map (kbd "M-g M-p") 'helm-gtags-parse-file)
114 ;;;     (define-key helm-gtags-mode-map (kbd "C-c <") 'helm-gtags-previous-history)
115 ;;;     (define-key helm-gtags-mode-map (kbd "C-c >") 'helm-gtags-next-history)
116 ;;;     (define-key helm-gtags-mode-map (kbd "M-,") 'helm-gtags-pop-stack)))
117
118
119 ;(require 'icicles)
120 ;(icy-mode 1)
121
122
123 ;(require 'init-org)
124 (setq help-window-select t)
125
126
127 ;;  (add-to-list 'load-path "~/.emacs.d/site-lisp/eim")
128 ;;  (autoload 'eim-use-package "eim" "Another emacs input method")
129 ;;
130 ;;  (register-input-method
131 ;;   "eim-wb" "euc-cn" 'eim-use-package
132 ;;   "五笔" "汉字五笔输入法" "~/.emacs.d/site-lisp/eim/wb.txt")
133 ;;  (register-input-method
134 ;;   "eim-py" "euc-cn" 'eim-use-package
135 ;;   "拼音" "汉字拼音输入法" "~/.emacs.d/site-lisp/eim/py.txt")
136 ;;
137 ;(require 'init-keychord)
138
139 ;(setq hydra-examples-verbatim t)
140 (require 'init-hydra)
141
142
143 ;(require 'ace-window)
144 ;(global-set-key (kbd "M-p") 'ace-window)
145
146
147 (require 'init-multi-term)
148 ;(require 'init-projectile)
149
150 (require 'page-break-lines)
151 ;(turn-on-page-break-lines-mode)
152 (global-page-break-lines-mode 1)
153
154 ;(setq projectile-completion-system 'helm)
155 ;(helm-projectile-on)
156
157
158 ;; show projectile name in mode-line
159
160
161 (if (locate-library "ediff")
162     (progn
163       (autoload 'ediff-files "ediff")
164       (autoload 'ediff-buffers "ediff")
165
166        (eval-after-load "ediff" '(progn
167                           (message "doing ediff customisation")
168                           (setq diff-switches               "-u"
169                                 ediff-custom-diff-options   "-U3"
170                                 ediff-split-window-function 'split-window-horizontally
171                                 ediff-window-setup-function 'ediff-setup-windows-plain)
172
173                           (add-hook 'ediff-startup-hook 'ediff-toggle-wide-display)
174                           (add-hook 'ediff-cleanup-hook 'ediff-toggle-wide-display)
175                           (add-hook 'ediff-suspend-hook 'ediff-toggle-wide-display)))))
176
177
178
179 (defun update-diff-colors ()
180   "update the colors for diff faces"
181   (set-face-attribute 'diff-added nil
182                       :foreground "white" :background "blue")
183   (set-face-attribute 'diff-removed nil
184                       :foreground "white" :background "red3")
185   (set-face-attribute 'diff-changed nil
186                       :foreground "white" :background "purple"))
187 (eval-after-load "diff-mode"
188   '(update-diff-colors))
189
190
191
192 ;(require 'helm-ag)
193 ;(require 'flx)
194 ;(flx-ido-mode t)
195
196
197