emacs linum
[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 'elscreen)
48 ;(custom-set-faces
49 ; '(elscreen-tab-current-screen-face ((t (:background "Yellow" :foreground "black"))))
50 ; '(elscreen-tab-other-screen-face ((t (:background "gray22" :foreground "black")))))
51
52
53 (require 'init-color-theme)
54
55
56 ;---------------------------------------------------------------------------------------
57 ;; Ido
58 ;;
59 (require 'ido-vertical-mode)
60 (ido-vertical-mode 1)
61 (require 'flx-ido)
62 (ido-mode 1)
63 (ido-everywhere 1)
64 (flx-ido-mode 1)
65 (setq ido-use-faces nil)
66
67 (setq org-completion-use-ido t)
68 (setq magit-completing-read-function 'magit-ido-completing-read)
69
70 (require 'ido-ubiquitous)
71 (ido-ubiquitous-mode 1)
72
73 ;; smex
74 (require 'smex) 
75 (global-set-key (kbd "M-x") 'smex)
76 (global-set-key (kbd "M-X") 'smex-major-mode-commands)
77
78 ;;---------------------------------------------------------------------------------------
79 ;; Magit
80 ;;
81 (require 'magit)
82 (setq magit-last-seen-setup-instructions "1.4.0")
83 (global-set-key (kbd "C-x g") 'magit-status)
84 ;(setq magit-auto-revert-mode nil)
85
86
87 (require 'init-evil)
88
89
90
91 ;;---------------------------------------------------------------------------------------
92 ;; Fiplr
93 ;;
94 (setq fiplr-root-markers '(".git" ".svn" "*.DS_Store"))
95 (setq fiplr-ignored-globs '((directories (".git" ".svn"))
96                             (files ("*.jpg" "*.png" "*.zip" "*~" "*.o" ".obj" "*.swp" "*.hg" ".pyc" ".*" ))))
97
98 (global-set-key (kbd "C-x f") 'fiplr-find-file)
99
100
101 ;;---------------------------------------------------------------------------------------
102 ;; sr-speedbar
103 ;;
104 ;(require 'sr-speedbar)
105 ;(setq speedbar-use-images nil)
106 ;(setq speedbar-show-unknown-files t)
107
108
109
110
111 (require 'projectile)
112 (projectile-global-mode)
113 (setq projectile-enable-caching t)
114 (require 'projectile-speedbar)
115
116 ;(require 'cc-mode)
117 ;(require 'ecb)
118
119 ;(setq ecb-layout-name "leftright3")
120
121 ;; gnu global support
122 ;(require 'semantic/db)
123 ;(global-semanticdb-minor-mode 1)
124
125 (require 'init-ggtags)
126
127
128 (setq scroll-margin 5)
129 (setq scroll-conservatively 10000)
130 (show-paren-mode t)
131
132
133 (require 'init-c-cpp)
134
135 (require 'recentf)
136 (recentf-mode 1)
137 (setq recentf-max-menu-items 100)
138
139
140 (require 'recentf-ext)
141
142 (require 'init-key-binding)
143
144 (winner-mode 1)
145
146 (global-set-key (kbd "C-c C-l") 'winner-redo)
147 (global-set-key (kbd "C-c C-h") 'winner-undo)
148
149
150
151 ;(require 'minibuffer-tray)
152 ;(require 'eyebrowse)
153 ;(eyebrowse-mode t)
154
155
156
157 ;;(require 'minibuffer-line)
158 ;(minibuffer-line-mode 1)
159
160
161 ;(add-to-list 'load-path "~/.emacs.d/vendor")
162 ;(require 'minibuffer-tray)
163 ;(minibuffer-tray-mode 1)
164 ;(require 'xwem-minibuffer)
165
166 ; (run-at-time
167 ;  nil 30
168 ;  (lambda ()
169 ;    (with-current-buffer " *Minibuf-0*"
170 ;      (erase-buffer)
171 ;      (dotimes (spaces (- (frame-width) 20))
172 ;        (insert " "))
173 ;      (insert (format-time-string "%m-%d  %I:%M %p %a ")))))
174
175
176
177
178 ;;; set font size of minibuffer
179 ;;;; http://stackoverflow.com/questions/7869429/altering-the-font-size-for-the-emacs-minibuffer-separately-from-default-emacs
180 (add-hook 'minibuffer-setup-hook 'my-minibuffer-setup)
181 (defun my-minibuffer-setup ()
182        (set (make-local-variable 'face-remapping-alist)
183           '((default :height 120))))
184
185
186
187 (add-hook 'minibuffer-setup-hook
188           (lambda ()
189             (make-local-variable 'face-remapping-alist)
190             (add-to-list 'face-remapping-alist '(default (:background "green")))))
191
192
193
194
195 (require 'evil-escape)
196 ;(setq-default evil-escape-delay 0.2)   
197 ;(setq evil-escape-excluded-major-modes '(dired-mode))
198 ;(setq-default evil-escape-key-sequence "jj")
199 ;(evil-escape-mode 1)
200
201
202 ;; ---------------
203 ;; recent file
204 (require 'recentf)
205 (recentf-mode)
206 ;(setq recentf-max-menu-items 100)
207
208 ;; http://www.emacswiki.org/emacs/RecentFiles
209 (defun recentf-ido-find-file ()
210   "Find a recent file using Ido."
211   (interactive)
212   (let ((file (ido-completing-read "Choose recent file: " recentf-list nil t)))
213     (when file
214       (find-file file))))
215
216
217
218 ;; http://stackoverflow.com/questions/11484225/fix-an-auto-complete-mode-and-linum-mode-annoyance
219 (ac-linum-workaround)
220
221
222 ;; ---------------------------------
223 ;; linum-relative
224
225
226 (custom-set-variables
227  ;; custom-set-variables was added by Custom.
228  ;; If you edit it by hand, you could mess it up, so be careful.
229  ;; Your init file should contain only one such instance.
230  ;; If there is more than one, they won't work right.
231  '(fringe-mode (quote (4 . 0)) nil (fringe))
232  '(ggtags-split-window-function (quote split-window-vertically))
233  '(hes-mode-alist
234    (quote
235     ((c-mode . "\\(\\\\\\([0-7]\\{1,3\\}\\|x[[:xdigit:]]+\\|u[[:xdigit:]]\\{4\\}\\|U[[:xdigit:]]\\{8\\}\\|[\"'?\\abfnrtv]\\)\\)")
236      (cperl-mode . "\\(\\\\\\([0-7]\\{1,3\\}\\|x[[:xdigit:]]+\\|u[[:xdigit:]]\\{4\\}\\|U[[:xdigit:]]\\{8\\}\\|[\"'?\\abfnrtv]\\)\\)")
237      (c++-mode . "\\(\\\\\\([0-7]\\{1,3\\}\\|x[[:xdigit:]]+\\|u[[:xdigit:]]\\{4\\}\\|U[[:xdigit:]]\\{8\\}\\|[\"'?\\abfnrtv]\\)\\)")
238      (objc-mode . "\\(\\\\\\([0-7]\\{1,3\\}\\|x[[:xdigit:]]+\\|u[[:xdigit:]]\\{4\\}\\|U[[:xdigit:]]\\{8\\}\\|[\"'?\\abfnrtv]\\)\\)")
239      (java-mode . "\\(\\\\\\([0-7]\\{1,3\\}\\|u[[:xdigit:]]\\{4\\}\\|[\"'\\bfnrt]\\)\\)")
240      (js-mode . "\\(\\\\\\([0-7]\\{1,3\\}\\|x[[:xdigit:]]\\{2\\}\\|u[[:xdigit:]]\\{4\\}\\|.\\)\\)")
241      (js2-mode . "\\(\\\\\\([0-7]\\{1,3\\}\\|x[[:xdigit:]]\\{2\\}\\|u[[:xdigit:]]\\{4\\}\\|.\\)\\)")
242      (ruby-mode
243       ("\\(\\\\\\([0-7]\\{1,3\\}\\|x[[:xdigit:]]\\{1,2\\}\\|u\\(?:[[:xdigit:]]\\{4\\}\\|{[[:xdigit:]]\\{1,6\\}\\(?:[[:space:]]+[[:xdigit:]]\\{1,6\\}\\)*}\\)\\|.\\)\\)"
244        (0
245         (let*
246             ((state
247               (syntax-ppss))
248              (term
249               (nth 3 state)))
250           (when
251               (or
252                (and
253                 (eq term 39)
254                 (member
255                  (match-string 2)
256                  (quote
257                   ("\\" "'"))))
258                (if
259                    (fboundp
260                     (quote ruby-syntax-expansion-allowed-p))
261                    (ruby-syntax-expansion-allowed-p state)
262                  (memq term
263                        (quote
264                         (34 47 10 96 t)))))
265             (add-face-text-property
266              (match-beginning 1)
267              (match-end 1)
268              (quote hes-escape-backslash-face))
269             (add-face-text-property
270              (match-beginning 2)
271              (match-end 2)
272              (quote hes-escape-sequence-face))
273             nil))
274         prepend))))))
275  '(org-agenda-files (quote ("~/temp/org-note.org")))
276  '(powerline-text-scale-factor 0.85))
277
278 ;; maybe better to fix the size of line number rather scaled 0.8
279 ;; https://github.com/howardabrams/dot-files/blob/master/emacs.org
280 (custom-set-faces
281  ;; custom-set-faces was added by Custom.
282  ;; If you edit it by hand, you could mess it up, so be careful.
283  ;; Your init file should contain only one such instance.
284  ;; If there is more than one, they won't work right.
285  '(mode-line ((t (:foreground "#030303" :background "#bdbdbd" :box nil :family "Source Code Pro for Powerline" :height 100))))
286  '(mode-line-inactive ((t (:foreground "#f9f9f9" :background "#666666" :box nil :family "Source Code Pro for Powerline" :height 100)))))
287
288
289 ;; enable linum-relative in programming mode
290 ;https://github.com/howardabrams/dot-files/blob/master/emacs.org
291 (add-hook 'prog-mode-hook 'linum-mode)
292
293
294 ;; hight current line
295 (require 'highlight-current-line)
296 (highlight-current-line-on t)
297
298
299
300 ;(defun pl-fringe-mode ()
301 ;  "jfoewoif"
302 ;  (if linum-mode
303 ;      (fringe-mode '(4 . 0))
304 ;    (fringe-mode '(0 . 0))))
305
306
307 ;(add-hook 'eshell-mode-hook 'pl-fringe-mode)
308 ;(add-hook 'prog-mode-hook 'pl-fringe-mode)
309
310
311
312
313
314 (require 'workgroups2)
315
316
317 (setq wg-prefix-key (kbd "C-c z"))
318 (setq wg-session-file "~/.emacs.d/.emacs_workgroups")
319 (setq wg-mode-line-display-on t)          ; Default: (not (featurep 'powerline))
320 (setq wg-flag-modified t)                 ; Display modified flags as well
321 (setq wg-mode-line-decor-left-brace "["
322       wg-mode-line-decor-right-brace "]"  ; how to surround it
323       wg-mode-line-decor-divider ":")
324 ;(workgroups-mode 1)
325
326 (defalias 'perl-mode 'cperl-mode)
327 ;(setq cperl-invalid-face nil)
328  (setq cperl-invalid-face (quote off))
329 ;(add-hook 'prog-mode-hook '(lambda () 
330 ;        (highlight-regexp "%[[:alpha:]]\\|\\\\[[:alpha:]]")))
331
332 (require 'highlight-escape-sequences)
333 (hes-mode)
334 ;(setq cperl-font-lock t)
335 (put 'hes-escape-backslash-face 'face-alias 'font-lock-builtin-face)
336 (put 'hes-escape-sequence-face 'face-alias 'font-lock-builtin-face)
337
338
339 (add-to-list 'load-path "~/.emacs.d/Emacs-PDE-0.2.16/lisp/")
340 (load "pde-load")
341
342 (require 'init-linum)