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