14ffd194b7e7877a5b42fcf2af99ce68f84b5b24
[dotfiles.git] / emacs.d / init.el
1 ;;;(if (eq system-type 'darwin)
2 ;;;  (setenv "PATH"
3 ;;;)   (concat (getenv "path") ":/usr/local/bin:~/bin/")
4 ;;;  )
5
6
7 (setenv "PATH" (concat (getenv "PATH") ":/usr/local/bin"))
8 (setq exec-path (append exec-path '("/usr/local/bin")))
9
10 (setq debug-on-error t)
11
12 (scroll-bar-mode -1)
13 (tool-bar-mode -1)
14 ;(menu-bar-mode -1)
15 (add-to-list 'default-frame-alist '(width  . 120))
16 (add-to-list 'default-frame-alist '(height . 40))
17 ;(add-to-list 'default-frame-alist '(font . "Source Code Pro for Powerline-12:weight:light" ))
18 (add-to-list 'default-frame-alist '(font . "Source Code Pro for Powerline-12" ))
19 (setq inhibit-startup-message t)
20
21 (put 'set-goal-column 'disabled nil)
22 (setq vc-follow-symlinks t)
23 (setq visible-bell 1)
24 (setq ring-bell-function 'ignore)
25 (setq resize-mini-windows t)
26 (blink-cursor-mode 0)
27
28
29 (add-to-list 'auto-mode-alist '("emacs\\'" . emacs-lisp-mode))
30
31
32
33 ;;; Set symbol for the border
34 (set-display-table-slot standard-display-table
35                         'vertical-border 
36                         (make-glyph-code ?┃))
37
38 (set-face-attribute 'vertical-border nil  :foreground "gray")
39
40
41 (add-to-list 'load-path "~/.emacs.d/config")
42 (require 'my-packages)
43
44 ;; elscreen should be placed begin of https://github.com/knu/elscreen/issues/6
45 ;(elscreen-start)
46 ;(require 'init-elscreen)
47 (require 'init-color-theme)
48
49
50 ;---------------------------------------------------------------------------------------
51 ;; Ido
52 ;;
53 (require 'ido-vertical-mode)
54 (ido-vertical-mode 1)
55 (require 'flx-ido)
56 (ido-mode 1)
57 (ido-everywhere 1)
58 (flx-ido-mode 1)
59 (setq ido-use-faces nil)
60
61 (setq org-completion-use-ido t)
62 (setq magit-completing-read-function 'magit-ido-completing-read)
63
64 (require 'ido-ubiquitous)
65 (ido-ubiquitous-mode 1)
66
67 ;; smex
68 (require 'smex) 
69 (global-set-key (kbd "M-x") 'smex)
70 (global-set-key (kbd "M-X") 'smex-major-mode-commands)
71
72 ;;---------------------------------------------------------------------------------------
73 ;; Magit
74 ;;
75 (require 'magit)
76 (setq magit-last-seen-setup-instructions "1.4.0")
77 (global-set-key (kbd "C-x g") 'magit-status)
78 ;(setq magit-auto-revert-mode nil)
79
80
81 (require 'init-evil)
82
83
84
85 ;;---------------------------------------------------------------------------------------
86 ;; Fiplr
87 ;;
88 (setq fiplr-root-markers '(".git" ".svn" "*.DS_Store"))
89 (setq fiplr-ignored-globs '((directories (".git" ".svn"))
90                             (files ("*.jpg" "*.png" "*.zip" "*~" "*.o" ".obj" "*.swp" "*.hg" ".pyc" ".*" ))))
91
92 (global-set-key (kbd "C-x f") 'fiplr-find-file)
93
94
95 ;;---------------------------------------------------------------------------------------
96 ;; sr-speedbar
97 ;;
98 ;(require 'sr-speedbar)
99 ;(setq speedbar-use-images nil)
100 ;(setq speedbar-show-unknown-files t)
101
102
103
104
105 (require 'projectile)
106 (projectile-global-mode)
107 (setq projectile-enable-caching t)
108 (require 'projectile-speedbar)
109
110 ;(require 'cc-mode)
111 ;(require 'ecb)
112
113 ;(setq ecb-layout-name "leftright3")
114
115 ;; gnu global support
116 ;(require 'semantic/db)
117 ;(global-semanticdb-minor-mode 1)
118
119 (require 'init-ggtags)
120
121
122 (setq scroll-margin 5)
123 (setq scroll-conservatively 10000)
124 (show-paren-mode t)
125
126
127 (require 'init-c-cpp)
128
129 (require 'recentf)
130 (recentf-mode 1)
131 (setq recentf-max-menu-items 100)
132
133
134 (require 'recentf-ext)
135
136 (require 'init-key-binding)
137
138 (winner-mode 1)
139
140 (global-set-key (kbd "C-c C-l") 'winner-redo)
141 (global-set-key (kbd "C-c C-h") 'winner-undo)
142
143
144
145 ;(require 'minibuffer-tray)
146 ;(require 'eyebrowse)
147 ;(eyebrowse-mode t)
148
149 (require 'workgroups2)
150 ;;;;(workgroups-mode 1)
151
152
153 ;;(require 'minibuffer-line)
154 ;(minibuffer-line-mode 1)
155
156
157 ;(add-to-list 'load-path "~/.emacs.d/vendor")
158 ;(require 'minibuffer-tray)
159 ;(minibuffer-tray-mode 1)
160 ;(require 'xwem-minibuffer)
161
162 ; (run-at-time
163 ;  nil 30
164 ;  (lambda ()
165 ;    (with-current-buffer " *Minibuf-0*"
166 ;      (erase-buffer)
167 ;      (dotimes (spaces (- (frame-width) 20))
168 ;        (insert " "))
169 ;      (insert (format-time-string "%m-%d  %I:%M %p %a ")))))
170
171
172
173
174 ;;; set font size of minibuffer
175 ;;;; http://stackoverflow.com/questions/7869429/altering-the-font-size-for-the-emacs-minibuffer-separately-from-default-emacs
176 (add-hook 'minibuffer-setup-hook 'my-minibuffer-setup)
177 (defun my-minibuffer-setup ()
178        (set (make-local-variable 'face-remapping-alist)
179           '((default :height 120))))
180
181
182
183 (add-hook 'minibuffer-setup-hook
184           (lambda ()
185             (make-local-variable 'face-remapping-alist)
186             (add-to-list 'face-remapping-alist '(default (:background "green")))))
187
188
189
190
191 (require 'evil-escape)
192 ;(setq-default evil-escape-delay 0.2)   
193 ;(setq evil-escape-excluded-major-modes '(dired-mode))
194 ;(setq-default evil-escape-key-sequence "jj")
195 ;(evil-escape-mode 1)
196
197
198 ;; ---------------
199 ;; recent file
200 (require 'recentf)
201 (recentf-mode)
202 ;(setq recentf-max-menu-items 100)
203
204 ;; http://www.emacswiki.org/emacs/RecentFiles
205 (defun recentf-ido-find-file ()
206   "Find a recent file using Ido."
207   (interactive)
208   (let ((file (ido-completing-read "Choose recent file: " recentf-list nil t)))
209     (when file
210       (find-file file))))
211
212
213
214 ;; http://stackoverflow.com/questions/11484225/fix-an-auto-complete-mode-and-linum-mode-annoyance
215 (ac-linum-workaround)
216
217
218 ;; ---------------------------------
219 ;; linum-relative
220
221
222 (require 'linum-relative)
223
224 (custom-set-variables
225  '(fringe-mode (quote (4 . 0)) nil (fringe)))
226
227 (custom-set-faces
228  '(highlight-current-line-face ((t (:background "gray22"))))
229  '(linum ((t (:background "#000000" :foreground "gray40" :height 0.8))))
230  '(linum-relative-current-face ((t (:inherit linum :foreground "Yellow" :weight light :height 0.8)))))
231
232
233 ;; enable linum-relative in programming mode
234 ;https://github.com/howardabrams/dot-files/blob/master/emacs.org
235 (add-hook 'prog-mode-hook 'linum-mode)
236
237
238
239
240 ;(require 'highli
241 (require 'highlight-current-line)
242 (highlight-current-line-on t)
243
244