4 ;;;; General ;;;; |
4 ;;;; General ;;;; |
5 (add-to-list 'load-path "~/.emacs.d/elisp") ; set default emacs load path |
5 (add-to-list 'load-path "~/.emacs.d/elisp") ; set default emacs load path |
6 |
6 |
7 (setq-default |
7 (setq-default |
8 gc-cons-threshold 20000000 ; gc every 20 MB allocated (form flx-ido docs) |
8 gc-cons-threshold 20000000 ; gc every 20 MB allocated (form flx-ido docs) |
9 ediff-split-window-function |
|
10 'split-window-horizontally ; diff horizontally |
|
11 inhibit-splash-screen t ; disable splash screen |
9 inhibit-splash-screen t ; disable splash screen |
12 truncate-lines t ; truncate, not wrap, lines |
10 truncate-lines t ; truncate, not wrap, lines |
13 indent-tabs-mode nil ; only uses spaces for indentation |
11 indent-tabs-mode nil ; only uses spaces for indentation |
14 split-width-threshold 181 ; min width to split window horizontially |
12 split-width-threshold 181 ; min width to split window horizontially |
15 split-height-threshold 120 ; min width to split window vertically |
13 split-height-threshold 120 ; min width to split window vertically |
35 (global-set-key (kbd "C-c r") 'recompile) ; recompile |
33 (global-set-key (kbd "C-c r") 'recompile) ; recompile |
36 (global-set-key (kbd "C-c a") 'align-regexp) ; align |
34 (global-set-key (kbd "C-c a") 'align-regexp) ; align |
37 (global-set-key (kbd "C-c g") 'rgrep) ; grep |
35 (global-set-key (kbd "C-c g") 'rgrep) ; grep |
38 |
36 |
39 |
37 |
|
38 ;;; ediff |
|
39 (setq-default |
|
40 ediff-split-window-function 'split-window-horizontally |
|
41 ediff-window-setup-function 'ediff-setup-windows-plain) |
|
42 |
|
43 |
40 ;;; Darwin |
44 ;;; Darwin |
41 (setq is-mac (equal system-type 'darwin)) |
45 (setq is-mac (equal system-type 'darwin)) |
42 (when is-mac |
46 (when is-mac |
43 (setq-default |
47 (setq-default |
44 ring-bell-function 'ignore |
48 ring-bell-function 'ignore |
97 (local-set-key (kbd "M-S-n") 'org-move-subtree-down))) |
101 (local-set-key (kbd "M-S-n") 'org-move-subtree-down))) |
98 |
102 |
99 |
103 |
100 ;;; ibuffer |
104 ;;; ibuffer |
101 (global-set-key (kbd "C-x C-b") 'ibuffer) ; better buffer browser |
105 (global-set-key (kbd "C-x C-b") 'ibuffer) ; better buffer browser |
102 (setq-default |
106 (require 'ibuffer) |
103 ibuffer-show-empty-filter-groups nil |
107 (require 'ibuf-ext) |
104 ibuffer-saved-filter-groups |
108 (defun ibuffer-generate-filter-groups-by-major-mode () |
105 '(("default" |
109 (flet |
106 ("Emacs Lisp" (mode . emacs-lisp-mode)) |
110 ((mode-group |
107 ("Haskell" (mode . haskell-mode)) |
111 (mode) |
108 ("Cabal" (mode . haskell-cabal-mode)) |
112 (let ((mode-title |
109 ("Python" (mode . python-mode)) |
113 (capitalize (car (split-string (symbol-name mode) "-" t))))) |
110 ("Jython" (mode . jython-mode)) |
114 (cons mode-title `((mode . ,mode))))) |
111 ("Clojure" (mode . clojure-mode)) |
115 (buffer-modes |
112 ("Markup" (mode . sgml-mode)) |
116 () |
113 ("HTML" (mode . html-mode)) |
117 (flet ((buffer-mode (buffer) (buffer-local-value 'major-mode buffer))) |
114 ("CSS" (mode . css-mode)) |
118 (ibuffer-remove-duplicates (remq nil (mapcar 'buffer-mode (buffer-list))))))) |
115 ("C++" (mode . c++-mode))))) |
119 (mapcar 'mode-group (buffer-modes)))) |
116 (add-hook |
120 |
117 'ibuffer-mode-hook |
121 (defun ibuffer-major-mode-group-hook () |
118 (lambda () (ibuffer-switch-to-saved-filter-groups "default"))) |
122 (interactive) |
|
123 (setq ibuffer-filter-groups (ibuffer-generate-filter-groups-by-major-mode)) |
|
124 (ibuffer-update nil t) |
|
125 (message "ibuffer-major-mode: groups set")) |
|
126 |
|
127 (setq-default ibuffer-show-empty-filter-groups nil) |
|
128 (add-hook 'ibuffer-hook (lambda () (ibuffer-major-mode-group-hook))) |
119 |
129 |
120 |
130 |
121 ;;; shell |
131 ;;; shell |
122 (global-set-key (kbd "C-c s") 'eshell) ; start shell |
132 (global-set-key (kbd "C-c s") 'eshell) ; start shell |
123 (exec-path-from-shell-copy-env "PYTHONPATH") |
133 (exec-path-from-shell-copy-env "PYTHONPATH") |
184 :foreground (face-foreground 'highlight)) |
194 :foreground (face-foreground 'highlight)) |
185 (show-paren-mode t) |
195 (show-paren-mode t) |
186 |
196 |
187 |
197 |
188 ;;; yasnippets |
198 ;;; yasnippets |
189 (with-eval-after-load 'yasnippet |
199 ;; (with-eval-after-load 'yasnippet |
190 (setq yas-snippet-dirs (remq 'yas-installed-snippets-dir yas-snippet-dirs))) |
200 ;; (setq yas-snippet-dirs (remq 'yas-installed-snippets-dir yas-snippet-dirs))) |
191 (setq-default yas-prompt-functions '(yas-ido-prompt yas-dropdown-prompt)) ; use ido for multiple snippets |
201 ;; (setq-default yas-prompt-functions '(yas-ido-prompt yas-dropdown-prompt)) ; use ido for multiple snippets |
192 (yas-global-mode t) |
202 ;; (yas-global-mode t) |
193 |
203 |
194 |
204 |
195 ;;; markdown-mode |
205 ;;; markdown-mode |
196 (add-hook 'markdown-mode-hook 'flyspell-mode) |
206 (add-hook 'markdown-mode-hook 'flyspell-mode) |
197 (setq-default markdown-command "pandoc -f markdown_github") |
207 (setq-default markdown-command "pandoc -f markdown_github") |