emacs: change elscreen, add elscreen-default-directory, and test ok
[dotfiles.git] / emacs.d / init.el
1 (setq debug-on-error t)
2
3 (scroll-bar-mode -1)
4 (tool-bar-mode -1)
5 ;(menu-bar-mode -1)
6 (add-to-list 'default-frame-alist '(width  . 120))
7 (add-to-list 'default-frame-alist '(height . 40))
8 ;(add-to-list 'default-frame-alist '(font . "Source Code Pro for Powerline-12:weight:light" ))
9 (add-to-list 'default-frame-alist '(font . "Source Code Pro for Powerline-12" ))
10
11
12 (put 'set-goal-column 'disabled nil)
13 (setq vc-follow-symlinks t)
14 (setq visible-bell 1)
15 (setq ring-bell-function 'ignore)
16 (setq resize-mini-windows t)
17
18
19 (add-to-list 'auto-mode-alist '("emacs\\'" . emacs-lisp-mode))
20 (fringe-mode 0)
21
22
23
24 ;;; Set symbol for the border
25 (set-display-table-slot standard-display-table
26                         'vertical-border 
27                         (make-glyph-code ?┃))
28
29 (set-face-attribute 'vertical-border nil  :foreground "gray")
30
31
32 (add-to-list 'load-path "~/.emacs.d/config")
33 (require 'my-packages)
34
35 ;; elscreen should be placed begin of https://github.com/knu/elscreen/issues/6
36 (elscreen-start)
37 (require 'init-color-theme)
38 ;(require 'init-my-theme-2)
39
40 ;---------------------------------------------------------------------------------------
41 ;; Ido
42 ;;
43 (require 'ido-vertical-mode)
44 (ido-vertical-mode 1)
45 (require 'flx-ido)
46 (ido-mode 1)
47 (ido-everywhere 1)
48 (flx-ido-mode 1)
49 (setq ido-use-faces nil)
50
51 (setq org-completion-use-ido t)
52 (setq magit-completing-read-function 'magit-ido-completing-read)
53
54 (require 'ido-ubiquitous)
55 (ido-ubiquitous-mode 1)
56
57 ;; smex
58 (require 'smex) 
59 (global-set-key (kbd "M-x") 'smex)
60 (global-set-key (kbd "M-X") 'smex-major-mode-commands)
61
62 ;;---------------------------------------------------------------------------------------
63 ;; Magit
64 ;;
65 (require 'magit)
66 (setq magit-last-seen-setup-instructions "1.4.0")
67 ;(setq magit-auto-revert-mode nil)
68
69
70
71
72 ;;---------------------------------------------------------------------------------------
73 ;; evil
74 ;;
75 (global-evil-leader-mode)
76 (evil-leader/set-leader ";")
77 (evil-leader/set-key "e" 'find-file)
78 (evil-leader/set-key "b" 'switch-to-buffer)
79 (evil-leader/set-key "w" 'evil-write)
80 (require 'evil)
81 ;(setq key-chord-two-keys-delay 0.5)
82 (key-chord-define evil-insert-state-map "jj" 'evil-normal-state)
83 (key-chord-mode 1)
84
85 ;; cursor shape
86 (setq evil-emacs-state-cursor '("red" box))
87 (setq evil-normal-state-cursor '("green" box))
88 (setq evil-visual-state-cursor '("orange" box))
89 (setq evil-insert-state-cursor '("red" bar))
90 (setq evil-replace-state-cursor '("red" bar))
91 (setq evil-operator-state-cursor '("red" hollow))
92 ;;Enter an emacs mode in a given state http://wikemacs.org/wiki/Evil
93 (loop for (mode . state) in '(
94 ;                           (inferior-emacs-lisp-mode . emacs)
95 ;                           (wdired-mode . normal)
96                             (eshell-mode . emacs))
97     do (evil-set-initial-state mode state))
98
99
100 ;(global-evil-tabs-mode t)
101 ;(evil-mode 1)
102 ;;---------------------------------------------------------------------------------------
103 ;; Fiplr
104 ;;
105 (setq fiplr-root-markers '(".git" ".svn" "*.DS_Store"))
106 (setq fiplr-ignored-globs '((directories (".git" ".svn"))
107                             (files ("*.jpg" "*.png" "*.zip" "*~" "*.o" ".obj" "*.swp" "*.hg" ".pyc" ".*" ))))
108
109 (global-set-key (kbd "C-x f") 'fiplr-find-file)
110
111 ;;---------------------------------------------------------------------------------------
112 ;; Wind-move
113 ;;
114 (global-set-key (kbd "C-x C-l") 'windmove-right)
115 (global-set-key (kbd "C-x C-h") 'windmove-left)
116 (global-set-key (kbd "C-x C-k") 'windmove-up)
117 (global-set-key (kbd "C-x C-j") 'windmove-down)
118
119 ;;---------------------------------------------------------------------------------------
120 ;; sr-speedbar
121 ;;
122 ;(require 'sr-speedbar)
123 ;(setq speedbar-use-images nil)
124 ;(setq speedbar-show-unknown-files t)
125
126
127 (toggle-frame-fullscreen)
128
129
130 (require 'projectile)
131 (projectile-global-mode)
132 (setq projectile-enable-caching t)
133 (require 'projectile-speedbar)
134
135 (require 'cc-mode)
136 (require 'ecb)
137
138 (setq ecb-layout-name "leftright3")
139
140
141
142 ;;(add-hook 'find-file-hook
143 ;;          (lambda ()
144 ;;            (setq default-directory "~/CPVE/")))
145
146 ;;(add-hook 'buffer-list-update-hook
147 ;;          (lambda ()
148 ;;            (elscreen-cd-default-directory
149 ;;              (elscreen-get-default-directory (elscreen-get-current-screen)))))
150
151
152 ;;(add-hook 'buffer-list-update-hook
153 ;;          (lambda ()
154 ;;            (cd "~/English/")))
155
156 ;;(add-hook 'elscreen-create-hook
157 ;;          (lambda ()
158 ;;            (elscreen-set-default-directory  (elscreen-get-current-screen) "~/CPVE/")))
159 ;;;            (elscreen-cd-default-directory "~/"))
160 ;;
161
162 (add-hook 'elscreen-goto-hook
163           (lambda ()
164             (elscreen-cd-default-directory
165               (elscreen-get-default-directory (elscreen-get-current-screen)))))
166
167 (defun sd-cd-dd (dir)
168   "Set default directory screen."
169   (interactive "sSet dir:")
170 ;  (message dir)
171   (elscreen-set-default-directory (elscreen-get-current-screen) dir)
172   (cd dir)
173 )
174
175 (defun sd-show-dir ()
176   "show elscreen default directory."
177   (interactive)
178   (message
179   (elscreen-get-default-directory (elscreen-get-current-screen))))
180
181
182
183 (add-hook 'buffer-list-update-hook
184           (lambda ()
185             (let ((el-dir (elscreen-get-default-directory (elscreen-get-current-screen))))
186               (if (> (length el-dir) 0)
187                  (cd el-dir)))))
188               
189