update
[emacs-init.git] / setup / bindings.el
1 (global-set-key "\M-/" 'hippie-expand)
2 (global-set-key "\C-c'w" 'which-function-mode)
3 (global-set-key "\C-c'h" 'highlight-changes-mode)
4 (global-set-key "\C-c'f" 'auto-fill-mode)
5 (global-set-key "\C-c'v" 'visual-line-mode)
6 (global-set-key "\C-c't" 'toggle-truncate-lines)
7 (global-set-key "\C-c'd" 'toggle-debug-on-error)
8 (global-set-key "\C-c'g" 'toggle-debug-on-quit)
9 (global-set-key "\C-c'c" 'toggle-case-fold-search)
10 (global-set-key "\C-c's" 'flyspell-mode)
11 (global-set-key "\C-c'S" 'flyspell-prog-mode)
12 (global-set-key "\C-c'a" 'global-auto-revert-mode)
13 (global-set-key "\C-cF" 'ffap)
14
15 ;(require 'develock)
16 ;(require 'develock-py)
17
18 (defun toggle-whitespace-mode (&optional mode)
19   (interactive)
20   ;; toggle whitespace mode between:
21   ;; * everything as globaly configured
22   ;; * as above but disable lines-tail
23   ;; * nothing
24   ;; * as above but visualize tabs
25
26   ;; if mode is not set, detect current mode and set it to the next value in the list
27   (if (null mode)
28       (if (local-variable-p 'whitespace-style)
29           (if (null whitespace-style)
30               (setq mode 'tabs)
31             (if (memq 'tab-mark whitespace-style)
32                 (setq mode 'default)
33               (setq mode 'none)))
34         (setq mode 'longlines)))
35   (cond ((eq mode 'default)
36          (kill-local-variable 'whitespace-style))
37         ((eq mode 'longlines)
38          (setq-local whitespace-style (remove 'lines-tail (default-value 'whitespace-style))))
39         ((eq mode 'tabs)
40          (setq-local whitespace-style '(tab-mark)))
41         ((eq mode 'none)
42          (setq-local whitespace-style nil)))
43   (whitespace-mode -1)
44   (sit-for 0)
45   (whitespace-mode 1)
46   (message "whitespace: %s" mode))
47
48 (global-set-key "\C-c' " 'toggle-whitespace-mode)
49
50 (setq confirm-kill-emacs 'yes-or-no-p)
51
52 (defun kill-buffers-in-directory (directoryName &optional includeNonFiles)
53   (interactive (list
54                 (ido-read-directory-name
55                  (if current-prefix-arg "Kill buffers in directory:" "Kill files in directory: "))
56                 current-prefix-arg))
57   (setq directoryName (expand-file-name directoryName))
58   (if (not (string-suffix-p "/" directoryName))
59     (setq directoryName (concat directoryName "/")))
60   (loop for buffer in (buffer-list)
61         for bufferDirectory = (progn
62                                 (set-buffer buffer)
63                                 (if includeNonFiles default-directory
64                                     (and buffer-file-name (file-name-directory buffer-file-name))))
65         if (and bufferDirectory (string-prefix-p directoryName (expand-file-name bufferDirectory)))
66         do (kill-buffer buffer)))
67
68 (global-set-key "\C-xK" 'kill-buffers-in-directory)