├── config.org ├── defun.el ├── init.el ├── kbd.el ├── load.el ├── mode.el └── old-kbd.el /config.org: -------------------------------------------------------------------------------- 1 | * emacs 2 | ** \HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout\ 3 | *** scancode map 4 | 00 00 00 00 00 00 00 00 5 | 03 00 00 00 1D 00 3A 00 6 | 3A 00 1D 00 00 00 00 00 7 | * everything 8 | ** general 9 | *** results -> B110100111 10 | *** fonts and colors -> default 11 | *** keyboard 12 | copy name -> (+ "w") 13 | copy path -> (+ "d") 14 | delete -> (+ "k") 15 | exit -> (-) 16 | item down -> (+ "o") 17 | item up -> (+ "u") 18 | open path -> (+ "i") 19 | options -> ("win-.") 20 | rename -> (+ "r") 21 | toggle window -> (+ "win-,") 22 | ** indexes.exclude (B010) 23 | -------------------------------------------------------------------------------- /defun.el: -------------------------------------------------------------------------------- 1 | (defmacro m-cycle-values (var values) 2 | `(let ((i (cl-position ,var ,values))) 3 | (setq ,var (elt ,values (if (and i (< (1+ i) (length ,values))) (1+ i) 0))))) 4 | 5 | (defun c-beginning-of-line (arg) 6 | (interactive "^p") 7 | (if (or (bolp) (> (current-column) (f-beginning-of-line 1))) 8 | (f-beginning-of-line) 9 | (beginning-of-line))) 10 | (fset 'move-beginning-of-line 'c-beginning-of-line) 11 | 12 | (defun c-byte-compile () 13 | (interactive) 14 | (let ((file (buffer-name))) 15 | (and (eq major-mode 'emacs-lisp-mode) 16 | (file-exists-p file) 17 | (if (not (file-exists-p (concat file "c"))) 18 | (and (y-or-n-p "Byte compile this file?") (byte-compile-file file)) 19 | (and (y-or-n-p "Byte recompile all?") 20 | (byte-recompile-directory 21 | (concat default-directory "..//"))))))) 22 | 23 | (defun c-clear-or-revert-buffer () 24 | (interactive) 25 | (unless (minibufferp) 26 | (if (not (get-buffer-process (current-buffer))) 27 | (revert-buffer t t) 28 | (symbol-overlay-remove-all) 29 | (delete-region (point-min) (point-max)) 30 | (comint-send-input) 31 | (goto-char (point-min)) 32 | (kill-line)))) 33 | 34 | (defun c-copy-buffer () 35 | (interactive) 36 | (unless (minibufferp) 37 | (f-delete-trailing-whitespace) 38 | (kill-ring-save (point-min) (point-max)) 39 | (message "Current buffer saved"))) 40 | 41 | (defun c-cycle-paren-shape () 42 | (interactive) 43 | (let ((paren-shapes '((?\( ?\[ ?\]) 44 | (?\[ ?\( ?\)))) 45 | (pt (point))) 46 | (unless (eq ?\( (char-syntax (char-after))) 47 | (backward-up-list)) 48 | (pcase (assq (char-after) paren-shapes) 49 | (`(,_ ,open ,close) 50 | (save-excursion (forward-sexp) (delete-char -1) (insert close)) 51 | (delete-char 1) 52 | (insert open))) 53 | (goto-char pt))) 54 | 55 | (defun c-cycle-search-whitespace-regexp () 56 | (interactive) 57 | (unless (minibufferp) 58 | (m-cycle-values search-whitespace-regexp '("\\s-+" ".*?")) 59 | (message "search-whitespace-regexp: \"%s\"" search-whitespace-regexp))) 60 | 61 | (defun c-delete-pair () 62 | (interactive) 63 | (unless (eq ?\( (char-syntax (char-after))) 64 | (backward-up-list)) 65 | (save-excursion (forward-sexp) (delete-char -1)) 66 | (delete-char 1)) 67 | 68 | (defun c-dired () 69 | (interactive) 70 | (switch-to-buffer (dired-noselect default-directory)) 71 | (revert-buffer)) 72 | 73 | (defun c-duplicate (beg end regionp) 74 | (interactive 75 | (if (use-region-p) (list (region-beginning) (region-end) t) 76 | (list (line-beginning-position) (line-end-position) nil))) 77 | (unless regionp (end-of-line) (newline)) 78 | (insert (buffer-substring-no-properties beg end))) 79 | 80 | (defun c-each () 81 | (interactive) 82 | (when (minibufferp) 83 | (insert (if (eq last-command this-command) "[]" "\\,(f-each )")) 84 | (backward-char))) 85 | 86 | (defun c-git-client () 87 | (interactive) 88 | (shell-command (concat "smerge " 89 | (if buffer-file-name 90 | (file-name-directory buffer-file-name) 91 | (convert-standard-filename default-directory))))) 92 | 93 | (defun c-incf () 94 | (interactive) 95 | (when (minibufferp) 96 | (insert "\\,(f-incf)") 97 | (backward-char))) 98 | 99 | (defun c-indent-paragraph () 100 | (interactive) 101 | (unless (or (minibufferp) buffer-read-only) 102 | (save-excursion 103 | (mark-paragraph) 104 | (indent-region (region-beginning) (region-end))) 105 | (and (bolp) (f-skip-chars)))) 106 | 107 | (defun c-isearch () 108 | (interactive) 109 | (if (use-region-p) 110 | (let* ((beg (region-beginning)) 111 | (text (buffer-substring-no-properties beg (region-end)))) 112 | (setq mark-active nil) 113 | (goto-char beg) 114 | (isearch-forward nil t) 115 | (isearch-yank-string text)) 116 | (call-interactively 'isearch-forward))) 117 | 118 | (defun c-isearch-done () 119 | (interactive) 120 | (isearch-done)) 121 | 122 | (defun c-kill-buffer-other-window () 123 | (interactive) 124 | (other-window 1) 125 | (kill-this-buffer) 126 | (other-window -1)) 127 | 128 | (defun c-kill-region () 129 | (interactive) 130 | (if (use-region-p) 131 | (kill-region (region-beginning) (region-end)) 132 | (let ((co (current-column))) 133 | (kill-whole-line) 134 | (move-to-column co)))) 135 | 136 | (defun c-kill-ring-save (beg end regionp) 137 | (interactive 138 | (if (use-region-p) (list (region-beginning) (region-end) t) 139 | (list (f-beginning-of-line 0) (line-end-position) nil))) 140 | (kill-ring-save beg end) 141 | (unless (or (minibufferp) regionp) (message "Current line saved"))) 142 | 143 | (defun c-kill-sexp () 144 | (interactive) 145 | (let ((pt (point))) (C-M-f) (kill-region pt (point)))) 146 | 147 | (defun c-kmacro-apply-macro (arg) 148 | (interactive "P") 149 | (unless (minibufferp) 150 | (if (use-region-p) 151 | (apply-macro-to-region-lines (region-beginning) (region-end)) 152 | (kmacro-call-macro arg t)))) 153 | 154 | (defun c-kmacro-record-macro (arg) 155 | (interactive "P") 156 | (unless (minibufferp) 157 | (if defining-kbd-macro (kmacro-end-macro arg) (kmacro-start-macro arg)))) 158 | 159 | (defun c-matching-paren-jump (&optional arg) 160 | (interactive "^p") 161 | (cond ((looking-at "\\s(") (forward-list arg)) 162 | ((looking-back "\\s)" 1) (backward-list arg)) 163 | ((looking-at "\\s)") (forward-char) (backward-list arg)) 164 | ((looking-back "\\s(" 1) (backward-char) (forward-list arg)))) 165 | 166 | (defun c-navigate-backward () 167 | (interactive) 168 | (f-push-mark-maybe) 169 | (f-navigate-process)) 170 | 171 | (defun c-navigate-forward () 172 | (interactive) 173 | (f-push-mark-maybe) 174 | (setq global-mark-ring (nreverse global-mark-ring)) 175 | (f-navigate-process) 176 | (setq global-mark-ring (nreverse global-mark-ring))) 177 | 178 | (defun c-open-folder () 179 | (interactive) 180 | (w32-shell-execute 181 | "open" "explorer" 182 | (if buffer-file-name 183 | (concat "/e,/select," (convert-standard-filename buffer-file-name)) 184 | (convert-standard-filename default-directory)))) 185 | 186 | (defun c-open-line-above () 187 | (interactive) 188 | (beginning-of-line) 189 | (split-line)) 190 | 191 | (defun c-open-line-below (&optional arg interactive) 192 | (interactive "*P\np") 193 | (end-of-line) 194 | (newline arg interactive)) 195 | 196 | (defun c-phone-test () 197 | (interactive) 198 | (let* ((seq [1 3 5 6 7 8 11 13 16 17 18 21 23 24 25 29 30 31 32 33 35 37 38 39 40 41 45 47 48 52 55 57 58 61 63 65 67 68 73 81]) 199 | (s (thing-at-point 'symbol)) 200 | (mod (% (string-to-number s) 80)) 201 | (len (length s)) 202 | (i 0) 203 | (sum 0)) 204 | (while (< i len) 205 | (cl-incf sum (string-to-number (substring s i (cl-incf i))))) 206 | (message "%d (%s), %d (%s)" 207 | mod (if (cl-find mod seq) "y" "n") 208 | sum (if (cl-find sum seq) "y" "n")))) 209 | 210 | (defun c-query-replace () 211 | (interactive) 212 | (unless (minibufferp) 213 | (if (use-region-p) (f-query-replace-region (region-beginning) (region-end)) 214 | (setq mark-active nil) 215 | (call-interactively 'query-replace)))) 216 | 217 | (defun c-reload-current-mode () 218 | (interactive) 219 | (unless (minibufferp) 220 | (symbol-overlay-remove-all) 221 | (funcall major-mode))) 222 | 223 | (defun c-rename-file-and-buffer () 224 | (interactive) 225 | (let ((old buffer-file-name) new) 226 | (when (and old (not (buffer-modified-p))) 227 | (setq new (read-file-name "Rename: " old)) 228 | (and (file-exists-p new) (user-error "File already exists")) 229 | (rename-file old new) 230 | (set-visited-file-name new t t)))) 231 | 232 | (defun c-set-or-exchange-mark (arg) 233 | (interactive "P") 234 | (if (use-region-p) (exchange-point-and-mark) 235 | (set-mark-command arg))) 236 | 237 | (defun c-sort-text () 238 | (interactive) 239 | (unless (minibufferp) 240 | (let ((pt (point)) (skip-chars-regexp "\n")) 241 | (if (use-region-p) 242 | (save-restriction 243 | (let ((beg (region-beginning)) 244 | (end (region-end)) 245 | recfun) 246 | (goto-char beg) 247 | (setq recfun (if (bolp) (cons 'forward-line 'end-of-line) 248 | (f-skip-chars) 249 | (cons 'f-skip-chars 'forward-sexp))) 250 | (narrow-to-region beg end) 251 | (sort-subr nil (car recfun) (cdr recfun)))) 252 | (when (y-or-n-p "Sort all paragraphs?") 253 | (goto-char (point-min)) 254 | (sort-subr nil 'f-skip-chars 'forward-paragraph))) 255 | (goto-char pt)))) 256 | 257 | (defun c-switch-to-next-buffer () 258 | (interactive) 259 | (f-switch-to-buffer 1)) 260 | 261 | (defun c-switch-to-prev-buffer () 262 | (interactive) 263 | (f-switch-to-buffer 0)) 264 | 265 | (defun c-switch-to-scratch () 266 | (interactive) 267 | (switch-to-buffer "*scratch*")) 268 | 269 | (defun c-tab () 270 | (interactive) 271 | (if (or (minibufferp) 272 | buffer-read-only 273 | (region-active-p) 274 | (not (looking-at-p "\\_>"))) 275 | (call-interactively (key-binding (kbd "TAB"))) 276 | (call-interactively 'hippie-expand))) 277 | 278 | (defun c-toggle-comment (beg end) 279 | (interactive 280 | (if (use-region-p) (list (region-beginning) (region-end)) 281 | (list (line-beginning-position) (line-beginning-position 2)))) 282 | (or (minibufferp) (comment-or-uncomment-region beg end))) 283 | 284 | (defun c-toggle-frame () 285 | (interactive) 286 | (m-cycle-values frame-alpha '(100 70)) 287 | (set-frame-parameter (selected-frame) 'alpha frame-alpha)) 288 | (defvar frame-alpha 100) 289 | 290 | (defun c-transpose-lines-down () 291 | (interactive) 292 | (unless (minibufferp) 293 | (let ((pt (point)) (co (current-column))) 294 | (f-prepare-transpose) 295 | (end-of-line 2) 296 | (if (eobp) (goto-char pt) 297 | (transpose-lines 1) 298 | (forward-line -1) 299 | (move-to-column co))))) 300 | 301 | (defun c-transpose-lines-up () 302 | (interactive) 303 | (unless (minibufferp) 304 | (let ((co (current-column))) 305 | (f-prepare-transpose) 306 | (beginning-of-line) 307 | (unless (or (bobp) (eobp)) 308 | (forward-line) 309 | (transpose-lines -1) 310 | (beginning-of-line 0)) 311 | (move-to-column co)))) 312 | 313 | (defun c-transpose-paragraphs-down () 314 | (interactive) 315 | (unless (minibufferp) 316 | (let (p) 317 | (f-prepare-transpose) 318 | (backward-paragraph) 319 | (and (bobp) (setq p t) (newline)) 320 | (forward-paragraph) 321 | (or (eobp) (transpose-paragraphs 1)) 322 | (and p (save-excursion (goto-char (point-min)) (kill-line)))))) 323 | 324 | (defun c-transpose-paragraphs-up () 325 | (interactive) 326 | (unless (or (minibufferp) (save-excursion (backward-paragraph) (bobp))) 327 | (let (p) 328 | (f-prepare-transpose) 329 | (backward-paragraph 2) 330 | (and (bobp) (setq p t) (newline)) 331 | (forward-paragraph 2) 332 | (transpose-paragraphs -1) 333 | (and p (save-excursion (goto-char (point-min)) (kill-line)))))) 334 | 335 | (defun c-update-indent-offset-double () 336 | (interactive) 337 | (f-update-indent-offset '(lambda (co) (* co 2)))) 338 | 339 | (defun c-update-indent-offset-half () 340 | (interactive) 341 | (f-update-indent-offset '(lambda (co) (/ co 2)))) 342 | 343 | (defun c-window-next () 344 | (interactive) 345 | (other-window 1)) 346 | 347 | (defun c-window-prev () 348 | (interactive) 349 | (other-window -1)) 350 | 351 | (defun c-word-capitalize () 352 | (interactive) 353 | (if (use-region-p) (capitalize-region (region-beginning) (region-end)) 354 | (capitalize-word -1))) 355 | 356 | (defun c-word-downcase () 357 | (interactive) 358 | (if (use-region-p) (downcase-region (region-beginning) (region-end)) 359 | (downcase-word -1))) 360 | 361 | (defun c-word-upcase () 362 | (interactive) 363 | (if (use-region-p) (upcase-region (region-beginning) (region-end)) 364 | (upcase-word -1))) 365 | 366 | (defun f-beginning-of-line (&optional arg) 367 | (let (pt co) 368 | (save-excursion 369 | (f-skip-chars (line-beginning-position)) 370 | (setq pt (point) co (current-column))) 371 | (cond ((eq arg 0) pt) 372 | ((eq arg 1) co) 373 | (t (move-to-column co))))) 374 | 375 | (defun f-delete-trailing-whitespace () 376 | (save-excursion 377 | (goto-char (point-max)) 378 | (or buffer-read-only (bolp) (newline))) 379 | (delete-trailing-whitespace)) 380 | 381 | (defun f-each (ls &optional repeat) 382 | (let ((index (/ (cl-incf count 0) (or repeat 1)))) 383 | (if (< index (length ls)) (elt ls index) 384 | (C-g)))) 385 | 386 | (defun f-incf (&optional first incr repeat) 387 | (let ((index (/ (cl-incf count 0) (or repeat 1)))) 388 | (+ (or first 1) (* (or incr 1) index)))) 389 | 390 | (defun f-marker-is-point-p (marker) 391 | (and (eq (marker-buffer marker) (current-buffer)) 392 | (= (marker-position marker) (point)))) 393 | 394 | (defun f-navigate-process () 395 | (when (f-marker-is-point-p (car global-mark-ring)) 396 | (call-interactively 'pop-global-mark)) 397 | (call-interactively 'pop-global-mark)) 398 | 399 | (defun f-paragraph-set () 400 | (setq paragraph-start "\f\\|[ \t]*$" 401 | paragraph-separate "[ \t\f]*$")) 402 | 403 | (defun f-prepare-transpose () 404 | (setq this-command 'transpose) 405 | (or (eq last-command this-command) (f-delete-trailing-whitespace))) 406 | 407 | (defun f-push-mark-maybe () 408 | (if (not global-mark-ring) (error "global-mark-ring empty") 409 | (unless (or (f-marker-is-point-p (car global-mark-ring)) 410 | (f-marker-is-point-p (car (last global-mark-ring)))) 411 | (push-mark)))) 412 | 413 | (defun f-query-replace-region (beg end) 414 | (let* ((txt (buffer-substring-no-properties beg end)) 415 | (replacement (read-string "Replacement: " txt))) 416 | (goto-char beg) 417 | (setq mark-active nil) 418 | (query-replace txt replacement) 419 | (setq query-replace-defaults `(,(cons txt replacement))))) 420 | 421 | (defun f-skip-chars (&optional start) 422 | (and start (goto-char start)) 423 | (skip-chars-forward (concat " \t" skip-chars-regexp))) 424 | (defvar-local skip-chars-regexp nil) 425 | 426 | (defun f-switch-to-buffer (dir) 427 | (unless (minibufferp) 428 | (let ((bn (buffer-name)) 429 | (name (if (> dir 0) 'switch-to-next-buffer 'switch-to-prev-buffer)) 430 | (active-buffers (mapcar 'window-buffer (window-list))) 431 | buffer p) 432 | (funcall name) 433 | (while (not p) 434 | (setq buffer (current-buffer)) 435 | (if (or buffer-file-name 436 | (not buffer-read-only) 437 | (get-buffer-process buffer) 438 | (cl-position buffer active-buffers) 439 | (string= bn (buffer-name))) 440 | (setq p t) 441 | (kill-buffer) 442 | (funcall name)))))) 443 | 444 | (defun f-update-indent-offset (name) 445 | (let ((pair (assoc major-mode '((python-mode python-indent-offset)))) 446 | co offset) 447 | (unless pair (user-error "Major mode incorrect")) 448 | (save-excursion 449 | (goto-char (point-min)) 450 | (while (not (eobp)) 451 | (skip-chars-forward " \n") 452 | (setq co (current-column)) 453 | (and (> co 0) (or (not offset) (< co offset)) (setq offset co)) 454 | (delete-char (- co)) 455 | (insert (make-string (funcall name co) ? )) 456 | (forward-line))) 457 | (set (cadr pair) (funcall name offset)))) 458 | -------------------------------------------------------------------------------- /init.el: -------------------------------------------------------------------------------- 1 | (package-initialize) 2 | (setq default-directory "~/.emacs.d/") 3 | (add-to-list 'load-path (concat default-directory "config")) 4 | (add-to-list 'load-path (concat default-directory "symbol-overlay")) 5 | (load "load" nil t) 6 | -------------------------------------------------------------------------------- /kbd.el: -------------------------------------------------------------------------------- 1 | (define-key key-translation-map (kbd "") (kbd "C-g")) 2 | (define-key key-translation-map (kbd "C-&") (kbd "C-S-")) 3 | (define-key key-translation-map (kbd "C-(") (kbd "S-")) 4 | (define-key key-translation-map (kbd "C-)") (kbd "C-S-")) 5 | (define-key key-translation-map (kbd "C-*") (kbd "S-")) 6 | (define-key key-translation-map (kbd "C-/") (kbd "H-/")) 7 | (define-key key-translation-map (kbd "C-0") (kbd "C-")) 8 | (define-key key-translation-map (kbd "C-6") (kbd "C-h")) 9 | (define-key key-translation-map (kbd "C-7") (kbd "C-")) 10 | (define-key key-translation-map (kbd "C-8") (kbd "")) 11 | (define-key key-translation-map (kbd "C-9") (kbd "")) 12 | (define-key key-translation-map (kbd "C-S-h") (kbd "H-S-h")) 13 | (define-key key-translation-map (kbd "C-S-j") (kbd "S-")) 14 | (define-key key-translation-map (kbd "C-S-l") (kbd "S-")) 15 | (define-key key-translation-map (kbd "C-S-o") (kbd "C-S-")) 16 | (define-key key-translation-map (kbd "C-S-p") (kbd "C-S-e")) 17 | (define-key key-translation-map (kbd "C-S-u") (kbd "C-S-")) 18 | (define-key key-translation-map (kbd "C-S-y") (kbd "C-S-a")) 19 | (define-key key-translation-map (kbd "C-c") (kbd "C-w")) 20 | (define-key key-translation-map (kbd "C-h") (kbd "H-h")) 21 | (define-key key-translation-map (kbd "C-i") (kbd "H-i")) 22 | (define-key key-translation-map (kbd "C-j") (kbd "")) 23 | (define-key key-translation-map (kbd "C-k") (kbd "C-c")) 24 | (define-key key-translation-map (kbd "C-l") (kbd "")) 25 | (define-key key-translation-map (kbd "C-n") (kbd "C-/")) 26 | (define-key key-translation-map (kbd "C-o") (kbd "C-")) 27 | (define-key key-translation-map (kbd "C-p") (kbd "C-e")) 28 | (define-key key-translation-map (kbd "C-u") (kbd "C-")) 29 | (define-key key-translation-map (kbd "C-v") (kbd "C-y")) 30 | (define-key key-translation-map (kbd "C-y") (kbd "C-a")) 31 | (define-key key-translation-map (kbd "ESC") (kbd "C-g")) 32 | (global-set-key (kbd "") 'symbol-overlay-mode) 33 | (global-set-key (kbd "") 'symbol-overlay-remove-all) 34 | (global-set-key (kbd "") 'linum-mode) 35 | (global-set-key (kbd "C-,") 'c-navigate-backward) 36 | (global-set-key (kbd "C-.") 'c-navigate-forward) 37 | (global-set-key (kbd "C-<") 'c-window-prev) 38 | (global-set-key (kbd "C-") 'join-line) 39 | (global-set-key (kbd "C-") 'c-open-line-above) 40 | (global-set-key (kbd "C->") 'c-window-next) 41 | (global-set-key (kbd "C-M-0") 'mc/skip-to-next-like-this) 42 | (global-set-key (kbd "C-M-7") 'mc/skip-to-previous-like-this) 43 | (global-set-key (kbd "C-M-8") 'mc/mark-previous-like-this) 44 | (global-set-key (kbd "C-M-9") 'mc/mark-next-like-this) 45 | (global-set-key (kbd "C-M-\\") 'diff-hl-) 46 | (global-set-key (kbd "C-M-k") 'c-kill-buffer-other-window) 47 | (global-set-key (kbd "C-M-o") 'mc/skip-to-next-like-this) 48 | (global-set-key (kbd "C-M-p") 'mc/unmark-next-like-this) 49 | (global-set-key (kbd "C-M-u") 'mc/skip-to-previous-like-this) 50 | (global-set-key (kbd "C-M-y") 'mc/unmark-previous-like-this) 51 | (global-set-key (kbd "C-S-r") 'query-replace-regexp) 52 | (global-set-key (kbd "C-b") 'bs-show) 53 | (global-set-key (kbd "C-c 1") 'delete-other-windows) 54 | (global-set-key (kbd "C-c 2") 'split-window-below) 55 | (global-set-key (kbd "C-c 3") 'split-window-horizontally) 56 | (global-set-key (kbd "C-c 4") 'delete-window) 57 | (global-set-key (kbd "C-c 5") 'winner-undo) 58 | (global-set-key (kbd "C-c C-c") 'kill-whole-line) 59 | (global-set-key (kbd "C-c C-m") 'eval-last-sexp) 60 | (global-set-key (kbd "C-c C-s") 'c-sort-text) 61 | (global-set-key (kbd "C-c DEL") 'revert-buffer) 62 | (global-set-key (kbd "C-c H-i") 'c-indent-paragraph) 63 | (global-set-key (kbd "C-c SPC") 'c-open-folder) 64 | (global-set-key (kbd "C-c b") 'eval-buffer) 65 | (global-set-key (kbd "C-c e") 'eval-last-sexp) 66 | (global-set-key (kbd "C-c f") 'find-file) 67 | (global-set-key (kbd "C-c g") 'c-git-client) 68 | (global-set-key (kbd "C-c m") 'c-reload-current-mode) 69 | (global-set-key (kbd "C-c r") 'c-rename-file-and-buffer) 70 | (global-set-key (kbd "C-d") 'c-duplicate) 71 | (global-set-key (kbd "C-f") 'c-isearch) 72 | (global-set-key (kbd "C-r") 'c-query-replace) 73 | (global-set-key (kbd "C-s") 'save-buffer) 74 | (global-set-key (kbd "C-t") 'recenter-top-bottom) 75 | (global-set-key (kbd "C-w") 'c-kill-ring-save) 76 | (global-set-key (kbd "C-x") 'c-kill-region) 77 | (global-set-key (kbd "H-/") 'c-toggle-comment) 78 | (global-set-key (kbd "H-h") 'c-matching-paren-jump) 79 | (global-set-key (kbd "H-i") 'c-tab) 80 | (global-set-key (kbd "M-,") 'complete-symbol) 81 | (global-set-key (kbd "M--") 'git-gutter:previous-hunk) 82 | (global-set-key (kbd "M-.") 'hippie-expand) 83 | (global-set-key (kbd "M-0") 'c-transpose-paragraphs-down) 84 | (global-set-key (kbd "M-7") 'c-transpose-paragraphs-up) 85 | (global-set-key (kbd "M-8") 'c-transpose-lines-up) 86 | (global-set-key (kbd "M-9") 'c-transpose-lines-down) 87 | (global-set-key (kbd "M-=") 'git-gutter:next-hunk) 88 | (global-set-key (kbd "M-DEL") 'git-gutter:revert-hunk) 89 | (global-set-key (kbd "M-\\") 'git-gutter:popup-hunk) 90 | (global-set-key (kbd "M-h") 'mc/mark-all-dwim) 91 | (global-set-key (kbd "M-i") 'symbol-overlay-put) 92 | (global-set-key (kbd "M-j") 'c-switch-to-prev-buffer) 93 | (global-set-key (kbd "M-k") 'kill-this-buffer) 94 | (global-set-key (kbd "M-l") 'c-switch-to-next-buffer) 95 | (global-set-key (kbd "M-o") 'symbol-overlay-jump-next) 96 | (global-set-key (kbd "M-p") 'symbol-overlay-switch-forward) 97 | (global-set-key (kbd "M-u") 'symbol-overlay-jump-prev) 98 | (global-set-key (kbd "M-y") 'symbol-overlay-switch-backward) 99 | (global-set-key (kbd "S-") 'c-open-line-below) 100 | 101 | (defun ~ () (interactive) (message "~")) 102 | 103 | (let ((map isearch-mode-map)) 104 | (define-key map (kbd "C-S-r") 'isearch-query-replace-regexp) 105 | (define-key map (kbd "C-g") 'c-isearch-done) 106 | (define-key map (kbd "C-r") 'isearch-query-replace) 107 | (define-key map (kbd "M-o") 'isearch-repeat-forward) 108 | (define-key map (kbd "M-u") 'isearch-repeat-backward) 109 | ) 110 | 111 | (let ((map minibuffer-local-map)) 112 | (define-key map (kbd "M-i") 'c-incf) 113 | (define-key map (kbd "M-h") 'c-each) 114 | ) 115 | 116 | (let ((map query-replace-map)) 117 | (define-key map (kbd "t") 'recenter) 118 | (define-key map (kbd "h") 'automatic) 119 | (define-key map (kbd "r") 'backup) 120 | ) 121 | 122 | (with-eval-after-load 'bs 123 | (let ((map bs-mode-map)) 124 | (define-key map (kbd ",") 'bs-select-other-window) 125 | (define-key map (kbd "-") 'bs-set-current-buffer-to-show-never) 126 | (define-key map (kbd ".") 'bs-select-other-window) 127 | (define-key map (kbd "5") 'bs-toggle-readonly) 128 | (define-key map (kbd "=") 'bs-set-current-buffer-to-show-always) 129 | (define-key map (kbd "i") 'bs-select) 130 | (define-key map (kbd "o") 'bs-down) 131 | (define-key map (kbd "u") 'bs-up) 132 | )) 133 | 134 | (with-eval-after-load 'dired 135 | (let ((map dired-mode-map)) 136 | (define-key map (kbd "k") 'dired-unmark-backward) 137 | (define-key map (kbd "o") 'dired-next-line) 138 | (define-key map (kbd "r") 'dired-find-file-other-window) 139 | (define-key map (kbd "u") 'dired-previous-line) 140 | )) 141 | 142 | (with-eval-after-load 'org 143 | (let ((map org-mode-map)) 144 | (define-key map (kbd "C-c n") 'org-open-at-point) 145 | (define-key map (kbd "C-c d") 'org-toggle-link-display) 146 | (define-key map (kbd "C-c C-i") 'org-edit-special) 147 | (define-key map (kbd "C-c k") 'org-table-blank-field) 148 | (define-key map (kbd "C-c o") 'org-table-toggle-coordinate-overlays) 149 | (define-key map (kbd "C-c C-s") 'org-sort) 150 | (define-key map (kbd "C-c u") 'org-table-recalculate) 151 | )) 152 | 153 | (with-eval-after-load 'package 154 | (let ((map package-menu-mode-map)) 155 | (define-key map (kbd "-") 'package-autoremove) 156 | (define-key map (kbd "o") 'next-line) 157 | (define-key map (kbd "u") 'previous-line) 158 | )) 159 | 160 | (with-eval-after-load 'python-mode 161 | (let ((map python-mode-map)) 162 | (define-key map (kbd "C-c h") 'python-shell-send-region) 163 | (define-key map (kbd "C-c C-m") 'c-python-shell-send-line) 164 | (define-key map (kbd "C-c r") 'run-python) 165 | (define-key map (kbd "DEL") 'backward-delete-char-untabify) 166 | )) 167 | 168 | (with-eval-after-load 'symbol-overlay 169 | (let ((map symbol-overlay-map)) 170 | (define-key map (kbd "c") 'symbol-overlay-save-symbol) 171 | (define-key map (kbd "f") 'symbol-overlay-isearch-literally) 172 | (define-key map (kbd "o") 'symbol-overlay-jump-next) 173 | (define-key map (kbd "u") 'symbol-overlay-jump-prev) 174 | )) 175 | -------------------------------------------------------------------------------- /load.el: -------------------------------------------------------------------------------- 1 | ;; ! 2 | (menu-bar-mode 0) 3 | (scroll-bar-mode 0) 4 | (setq default-frame-alist '((height . 30))) 5 | (setq frame-title-format "") 6 | (setq inhibit-startup-message t) 7 | (tool-bar-mode 0) 8 | (load-theme 'deeper-blue t) 9 | 10 | ;; font 11 | ((lambda (en cn) 12 | (set-frame-font en) 13 | (set-fontset-font "fontset-default" 'gb18030 cn)) 14 | ;; "ubuntu mono-13" "微软雅黑-12" 15 | ;; "monaco-11" "楷体-13" 16 | "consolas-13" "微软雅黑-13.5" 17 | ) 18 | 19 | ;; language 20 | (set-buffer-file-coding-system 'utf-8) 21 | (set-keyboard-coding-system 'utf-8) 22 | (set-language-environment 'utf-8) 23 | 24 | ;; others 25 | (column-number-mode) 26 | (delete-selection-mode) 27 | (electric-pair-mode) 28 | (fset 'yes-or-no-p 'y-or-n-p) 29 | (global-eldoc-mode 0) 30 | (line-number-mode) 31 | (setq initial-scratch-message nil) 32 | (setq make-backup-files nil) 33 | (setq ring-bell-function 'ignore) 34 | (setq save-abbrevs nil) 35 | (setq select-enable-clipboard t) 36 | (setq-default cursor-type 'bar) 37 | (setq-default indent-tabs-mode nil) 38 | (show-paren-mode) 39 | (winner-mode) 40 | 41 | ;; ~ init 42 | (load "defun" nil t) 43 | (load "kbd" nil t) 44 | (load "mode" nil t) 45 | -------------------------------------------------------------------------------- /mode.el: -------------------------------------------------------------------------------- 1 | ;; !package 2 | (setq package-archives 3 | `(("gnu" . "http://mirrors.tuna.tsinghua.edu.cn/elpa/gnu/") 4 | ;; ("melpa" . "http://melpa.org/packages/") 5 | ("melpa" . "http://elpa.zilongshanren.com/melpa/") 6 | )) 7 | 8 | ;; clang 9 | (add-hook 'auto-mode-alist '("\\.cuh?\\'" . c-mode)) 10 | (add-hook 'c-mode-hook '(lambda () (setq tab-width 4))) 11 | 12 | ;; git-gutter 13 | (require 'git-gutter) 14 | (defun f-git-gutter-open (&rest r) 15 | (unless git-gutter-mode (git-gutter-mode 1))) 16 | (advice-add 'git-gutter:next-hunk :before 'f-git-gutter-open) 17 | (advice-add 'git-gutter:previous-hunk :before 'f-git-gutter-open) 18 | 19 | ;; haskell 20 | (defun c-haskell-load-module () 21 | (interactive) 22 | (let ((module (buffer-name))) 23 | (save-buffer) 24 | (switch-to-haskell) 25 | (goto-char (point-max)) 26 | (kill-region (line-beginning-position) (line-end-position)) 27 | (insert (concat ":load " module)) 28 | (comint-send-input))) 29 | (add-hook 'haskell-mode-hook 30 | '(lambda () 31 | (setq symbol-overlay-definition-function 32 | '(lambda (symbol) 33 | (concat "\\(\\(let\\|type\\) \\)?" 34 | symbol 35 | "[^\n]* =[^>]"))) 36 | )) 37 | 38 | ;; hippie-expand 39 | (setq hippie-expand-try-functions-list 40 | '(try-expand-dabbrev 41 | try-expand-dabbrev-all-buffers 42 | try-expand-dabbrev-from-kill 43 | try-complete-file-name-partially 44 | try-complete-file-name 45 | try-expand-all-abbrevs 46 | try-expand-list 47 | try-expand-line 48 | try-complete-lisp-symbol-partially 49 | try-complete-lisp-symbol)) 50 | 51 | ;; mc 52 | (require 'multiple-cursors) 53 | (add-hook 'multiple-cursors-mode-hook 54 | '(lambda (&rest r) 55 | (unless multiple-cursors-mode 56 | (setq-default cursor-type 'bar)))) 57 | (advice-add 'mc/create-fake-cursor-at-point :before 58 | '(lambda (&rest r) 59 | (unless (eq cursor-type 'box) 60 | (setq-default cursor-type 'box)))) 61 | 62 | ;; org 63 | (setq org-startup-indented t) 64 | (add-hook 'org-mode-hook 65 | '(lambda () 66 | (setq skip-chars-regexp "*" 67 | just-tab t) 68 | )) 69 | (add-hook 'org-after-todo-statistics-hook 70 | '(lambda () 71 | (let (org-log-done org-log-states) 72 | (org-todo (if (= n-not-done 0) "DONE" "TODO"))) 73 | )) 74 | 75 | ;; python 76 | (defun c-python-config-pandas () 77 | (interactive) 78 | (insert (substring " 79 | pd.options.display.expand_frame_repr=False 80 | pd.options.display.max_colwidth=20 81 | pd.options.display.max_rows=10 82 | pd.options.display.precision=4 83 | # pd.options.display.unicode.east_asian_width=True 84 | " 1))) 85 | (defun c-python-shell-send-line () 86 | (interactive) 87 | (python-shell-send-region (line-beginning-position) (line-end-position))) 88 | (add-hook 'python-mode-hook 89 | '(lambda () 90 | (setq python-shell-interpreter "ipython") 91 | (add-to-list 'python-shell-completion-native-disabled-interpreters "ipython") 92 | )) 93 | 94 | ;; racket 95 | (setq racket-racket-program "racket") 96 | (setq racket-raco-program "raco") 97 | (defun c-racket-send-buffer () 98 | (interactive) 99 | (unless (minibufferp) 100 | (racket-send-region 101 | (point-min) (point-max)))) 102 | 103 | ;; save 104 | (add-hook 'before-save-hook 'f-delete-trailing-whitespace) 105 | 106 | ;; sql 107 | (defun sql-replace () 108 | (interactive) 109 | (let ((keywords '("and" "as" "bigint" "by" "case" "count" "create" "distinct" "double" "drop" "else" "end" "end" "exists" "from" "if" "insert" "join" "left" "length" "lifecycle" "not" "not" "null" "on" "or" "outer" "overwrite" "partition" "partitioned" "right" "select" "string" "table" "when" "where"))) 110 | (dolist (word keywords) 111 | (save-excursion 112 | (goto-char (point-min)) 113 | (while (re-search-forward (concat "\\_<" (regexp-quote word) "\\_>") nil t) 114 | (replace-match (upcase word))))))) 115 | (add-hook 'sql-mode-hook '(lambda () (setq tab-width 4))) 116 | -------------------------------------------------------------------------------- /old-kbd.el: -------------------------------------------------------------------------------- 1 | (define-minor-mode hyper-mode 2 | nil nil nil 3 | (make-sparse-keymap) 4 | (setq cursor-type (if hyper-mode hyper-mode-cursor 'bar))) 5 | (defvar-local hyper-mode-cursor 'box) 6 | (let ((map hyper-mode-map)) 7 | (define-key map (kbd ",") 'C-M-b) 8 | (define-key map (kbd ".") 'C-M-f) 9 | (define-key map (kbd "0") 'C-) 10 | (define-key map (kbd "1") 'M-^) 11 | (define-key map (kbd "2") 'c-kmacro-start-macro) 12 | (define-key map (kbd "3") 'c-kmacro-end-or-call-macro) 13 | (define-key map (kbd "4") 'c-toggle-comment) 14 | (define-key map (kbd "5") 'recenter-top-bottom) 15 | (define-key map (kbd "6") 'save-buffer) 16 | (define-key map (kbd "7") 'C-) 17 | (define-key map (kbd "8") ') 18 | (define-key map (kbd "9") ') 19 | (define-key map (kbd "SPC 1") 'delete-other-windows) 20 | (define-key map (kbd "SPC 2") 'split-window-below) 21 | (define-key map (kbd "SPC 3") 'split-window-horizontally) 22 | (define-key map (kbd "SPC 4") 'delete-window) 23 | (define-key map (kbd "SPC 5") 'winner-undo) 24 | (define-key map (kbd "SPC SPC") 'c-open-folder) 25 | (define-key map (kbd "SPC `") 'c-insert-space) 26 | (define-key map (kbd "SPC a") 'delete-duplicate-lines) 27 | (define-key map (kbd "SPC b") 'c-byte-compile) 28 | (define-key map (kbd "SPC c") 'c-clear-or-revert-buffer) 29 | (define-key map (kbd "SPC d") 'c-dired) 30 | (define-key map (kbd "SPC e") 'c-copy-buffer) 31 | (define-key map (kbd "SPC f") 'find-file) 32 | (define-key map (kbd "SPC g") 'C-g) 33 | (define-key map (kbd "SPC q") 'c-switch-to-scratch) 34 | (define-key map (kbd "SPC r") 'c-rename-file-and-buffer) 35 | (define-key map (kbd "SPC s") 'c-cycle-search-whitespace-regexp) 36 | (define-key map (kbd "SPC t") 'symbol-overlay-remove-all) 37 | (define-key map (kbd "SPC v") 'magit-status) 38 | (define-key map (kbd "SPC w") 'write-file) 39 | (define-key map (kbd "SPC x") '~) 40 | (define-key map (kbd "SPC z") '~) 41 | (define-key map (kbd "\\") 'C-c+C-q) 42 | (define-key map (kbd "`") 'c-insert-space) 43 | (define-key map (kbd "a") 'C-k) 44 | (define-key map (kbd "b") 'bs-show) 45 | (define-key map (kbd "d") 'c-kill-region) 46 | (define-key map (kbd "e") 'C-y) 47 | (define-key map (kbd "f") 'C-@) 48 | (define-key map (kbd "g") 'C-g) 49 | (define-key map (kbd "i") 'hyper-mode-off) 50 | (define-key map (kbd "j") ') 51 | (define-key map (kbd "k") 'DEL) 52 | (define-key map (kbd "l") ') 53 | (define-key map (kbd "m") 'RET) 54 | (define-key map (kbd "n") 'C-/) 55 | (define-key map (kbd "o") 'C-) 56 | (define-key map (kbd "p") 'C-e) 57 | (define-key map (kbd "q") 'c-query-replace) 58 | (define-key map (kbd "r") 'other-window) 59 | (define-key map (kbd "s") 'c-isearch-forward) 60 | (define-key map (kbd "t") 'symbol-overlay-put) 61 | (define-key map (kbd "u") 'C-) 62 | (define-key map (kbd "v") 'split-line) 63 | (define-key map (kbd "w") 'c-kill-ring-save) 64 | (define-key map (kbd "x") 'exchange-point-and-mark) 65 | (define-key map (kbd "y") 'c-beginning-of-line) 66 | (define-key map (kbd "z") '~) 67 | ) 68 | 69 | (defmacro make-command (func &optional sexp@0 sexp@1) 70 | (let ((ks (subst-char-in-string ?+ ? (symbol-name func)))) 71 | `(defun ,func () 72 | (interactive) 73 | (let ((cmd (key-binding (kbd ,ks)))) 74 | ,sexp@0 75 | (when (commandp cmd) (call-interactively cmd)) 76 | ,sexp@1)))) 77 | (make-command (hyper-mode-on)) 78 | (make-command ) 79 | (make-command ) 80 | (make-command (hyper-mode-on)) 81 | (make-command C-/ (hyper-mode-on)) 82 | (make-command C- (or (use-region-p) (push-mark)) (hyper-mode-on)) 83 | (make-command C- (hyper-mode-on)) 84 | (make-command C- (hyper-mode-on)) 85 | (make-command C- (or (use-region-p) (push-mark)) (hyper-mode-on)) 86 | (make-command C-@ (hyper-mode-on)) 87 | (make-command C-M-%) 88 | (make-command C-M-b (hyper-mode-on)) 89 | (make-command C-M-f (hyper-mode-on)) 90 | (make-command C-M-i) 91 | (make-command C-M-s) 92 | (make-command C-c+C-c) 93 | (make-command C-c+C-h (C-c+C-h@0)) 94 | (make-command C-c+C-q nil (and (bolp) (f-skip-chars))) 95 | (make-command C-c+C-z) 96 | (make-command C-e (hyper-mode-on)) 97 | (make-command C-g (hyper-mode-on)) 98 | (make-command C-k) 99 | (make-command C-y) 100 | (make-command DEL (hyper-mode-on)) 101 | (make-command M-:) 102 | (make-command M-^ (hyper-mode-on)) 103 | (make-command RET) 104 | (make-command TAB) 105 | 106 | (defmacro map-key (key obj) 107 | `(let* ((ks (cadr ',key)) 108 | (pf (substring ks 0 1)) 109 | (mk (cond ((string= pf "C") 110 | (kbd (concat "H" (substring ks 1)))) 111 | ((string= pf "M") 112 | (kbd (concat "s" (substring ks 1)))) 113 | (t (kbd (concat "s-" ks)))))) 114 | (define-key key-translation-map ,key mk) 115 | (global-set-key mk ,obj))) 116 | (map-key (kbd "") 'toggle-truncate-lines) 117 | (map-key (kbd "") 'c-toggle-frame) 118 | (map-key (kbd "") 'code-style-remove-space) 119 | (map-key (kbd "") 'code-style-insert-space) 120 | (map-key (kbd "") 'read-only-mode) 121 | (map-key (kbd "") 'save-buffer) 122 | (map-key (kbd "") 'linum-mode) 123 | (map-key (kbd "") 'c-tab) 124 | (map-key (kbd "C--") 'c-insert-arrow-1) 125 | (map-key (kbd "C-0") 'C-) 126 | (map-key (kbd "C-7") 'C-) 127 | (map-key (kbd "C-8") ') 128 | (map-key (kbd "C-9") ') 129 | (map-key (kbd "C-") 'last-edit-position-echo) 130 | (map-key (kbd "C-") 'enlarge-window) 131 | (map-key (kbd "C-") 'shrink-window-horizontally) 132 | (map-key (kbd "C-") 'enlarge-window-horizontally) 133 | (map-key (kbd "C-") 'c-toggle-tab) 134 | (map-key (kbd "C-") 'shrink-window) 135 | (map-key (kbd "C-=") 'c-insert-arrow-2) 136 | (map-key (kbd "C-\\") 'M-^) 137 | (map-key (kbd "C-,") 'C-g) 138 | (map-key (kbd "C-.") 'c-cycle-paren-shape) 139 | (map-key (kbd "C-f") 'C-@) 140 | (map-key (kbd "C-h") 'hyper-mode-on) 141 | (map-key (kbd "C-j") ') 142 | (map-key (kbd "C-k") 'DEL) 143 | (map-key (kbd "C-l") ') 144 | (map-key (kbd "C-n") 'C-/) 145 | (map-key (kbd "C-o") 'C-) 146 | (map-key (kbd "C-p") 'C-e) 147 | (map-key (kbd "C-u") 'C-) 148 | (map-key (kbd "C-y") 'c-beginning-of-line) 149 | (map-key (kbd "M-'") 'comment-kill) 150 | (map-key (kbd "M-,") 'backward-up-list) 151 | (map-key (kbd "M-.") 'up-list) 152 | (map-key (kbd "M-0") 'c-transpose-paragraphs-down) 153 | (map-key (kbd "M-1") 'kmacro-delete-ring-head) 154 | (map-key (kbd "M-2") 'kmacro-cycle-ring-previous) 155 | (map-key (kbd "M-3") 'kmacro-cycle-ring-next) 156 | (map-key (kbd "M-4") 'kmacro-view-macro) 157 | (map-key (kbd "M-5") 'kmacro-edit-macro) 158 | (map-key (kbd "M-7") 'c-transpose-paragraphs-up) 159 | (map-key (kbd "M-8") 'c-transpose-lines-up) 160 | (map-key (kbd "M-9") 'c-transpose-lines-down) 161 | (map-key (kbd "M-DEL") 'c-kill-buffer-other-window) 162 | (map-key (kbd "M-e") 'M-:) 163 | (map-key (kbd "M-g") 'C-g) 164 | (map-key (kbd "M-i") 'C-M-i) 165 | (map-key (kbd "M-j") 'c-switch-to-prev-buffer) 166 | (map-key (kbd "M-k") 'kill-this-buffer) 167 | (map-key (kbd "M-l") 'c-switch-to-next-buffer) 168 | (map-key (kbd "M-m") 'c-delete-pair) 169 | (map-key (kbd "M-n") 'C-M-%) 170 | (map-key (kbd "M-o") 'symbol-overlay-jump-next) 171 | (map-key (kbd "M-p") 'symbol-overlay-switch-forward) 172 | (map-key (kbd "M-q") 'c-query-replace) 173 | (map-key (kbd "M-r") '~) 174 | (map-key (kbd "M-s") 'C-M-s) 175 | (map-key (kbd "M-t") 'symbol-overlay-mode) 176 | (map-key (kbd "M-u") 'symbol-overlay-jump-prev) 177 | (map-key (kbd "M-y") 'symbol-overlay-switch-backward) 178 | (map-key (kbd "TAB") 'c-tab) 179 | 180 | (defmacro simulate-ctrl (func) 181 | (let ((pfx (substring (symbol-name func) -1))) 182 | `(progn 183 | (define-key hyper-mode-map (kbd ,pfx) ',func) 184 | (defun ,func () 185 | (interactive) 186 | (let ((k (read-key-sequence nil)) ks cmd) 187 | (unless (stringp k) (C-g)) 188 | (setq ks (concat "C-" ,pfx " " k) 189 | cmd (key-binding (kbd ks))) 190 | (if (commandp cmd) (call-interactively cmd) 191 | (~))))))) 192 | (simulate-ctrl ctrl-c) 193 | (simulate-ctrl ctrl-h) 194 | 195 | (defun C-c+C-h@0 () 196 | (unless (region-active-p) 197 | (beginning-of-line) 198 | (push-mark (point-max) t))) 199 | 200 | (defun hyper-mode-off () 201 | (interactive) 202 | (hyper-mode 0)) 203 | 204 | (defun hyper-mode-on () 205 | (interactive) 206 | (hyper-mode 1)) 207 | (add-hook 'emacs-startup-hook 'hyper-mode-on) 208 | (add-hook 'find-file-hook 'hyper-mode-on) 209 | 210 | (defun ~ () (interactive) (message "~")) 211 | 212 | (global-set-key (kbd "C-c 0") 'end-of-buffer) 213 | (global-set-key (kbd "C-c 7") 'beginning-of-buffer) 214 | (global-set-key (kbd "C-c 8") 'yacua-delete) 215 | (global-set-key (kbd "C-c 9") 'yacua-insert) 216 | (global-set-key (kbd "C-c C-c") 'eval-buffer) 217 | (global-set-key (kbd "C-c C-q") 'c-indent-paragraph) 218 | (global-set-key (kbd "C-c c") 'C-c+C-c) 219 | (global-set-key (kbd "C-c g") 'C-g) 220 | (global-set-key (kbd "C-c h") 'eval-region) 221 | (global-set-key (kbd "C-c i") 'c-sort-text) 222 | (global-set-key (kbd "C-c m") 'eval-last-sexp) 223 | (global-set-key (kbd "C-c r") 'c-reload-current-mode) 224 | (global-set-key (kbd "C-c z") 'C-c+C-z) 225 | (global-set-key (kbd "C-h g") 'C-g) 226 | 227 | (let ((map isearch-mode-map)) 228 | (define-key map (kbd "H-h") 'c-isearch-done) 229 | (define-key map (kbd "s-i") 'c-isearch-yank) 230 | (define-key map (kbd "M-h") 'c-isearch-done) 231 | (define-key map (kbd "s-n") 'isearch-query-replace-regexp) 232 | (define-key map (kbd "s-o") 'isearch-repeat-forward) 233 | (define-key map (kbd "s-q") 'isearch-query-replace) 234 | (define-key map (kbd "s-u") 'isearch-repeat-backward) 235 | ) 236 | 237 | (let ((map minibuffer-local-map)) 238 | (define-key map (kbd "s-n") 'c-incf) 239 | (define-key map (kbd "s-q") 'c-each) 240 | ) 241 | 242 | (let ((map query-replace-map)) 243 | (define-key map (kbd "5") 'recenter) 244 | (define-key map (kbd "h") 'automatic) 245 | (define-key map (kbd "r") 'backup) 246 | ) 247 | 248 | ;;(require 'code-style) 249 | ;;(require 'yacua) 250 | 251 | (require 'symbol-overlay) 252 | (let ((map (make-sparse-keymap))) 253 | (define-key map (kbd "RET") 'symbol-overlay-jump-to-definition) 254 | (define-key map (kbd "e") 'symbol-overlay-rename) 255 | (define-key map (kbd "i") 'symbol-overlay-put) 256 | (define-key map (kbd "q") 'symbol-overlay-query-replace) 257 | (define-key map (kbd "t") 'symbol-overlay-count) 258 | (define-key map (kbd "w") 'symbol-overlay-save-symbol) 259 | (define-key map (kbd "x") 'symbol-overlay-echo-mark) 260 | (define-key map (kbd "U") 'symbol-overlay-jump-first) 261 | (define-key map (kbd "O") 'symbol-overlay-jump-last) 262 | (setq symbol-overlay-map map)) 263 | 264 | (with-eval-after-load 'bs 265 | (let ((map bs-mode-map)) 266 | (define-key map (kbd "-") 'bs-set-current-buffer-to-show-never) 267 | (define-key map (kbd "=") 'bs-set-current-buffer-to-show-always) 268 | (define-key map (kbd "[") 'bs-up) 269 | (define-key map (kbd "]") 'bs-down) 270 | (define-key map (kbd "b") '~) 271 | (define-key map (kbd "f") '~) 272 | (define-key map (kbd "i") 'bs-select) 273 | (define-key map (kbd "k") '~) 274 | (define-key map (kbd "n") '~) 275 | (define-key map (kbd "o") 'bs-down) 276 | (define-key map (kbd "p") '~) 277 | (define-key map (kbd "r") 'bs-select-other-window) 278 | (define-key map (kbd "t") '~) 279 | (define-key map (kbd "u") 'bs-up) 280 | )) 281 | 282 | (with-eval-after-load 'cc-mode 283 | (let ((map java-mode-map)) 284 | (define-key map (kbd ",") nil) 285 | (define-key map (kbd ";") nil) 286 | )) 287 | 288 | (with-eval-after-load 'dired 289 | (let ((map dired-mode-map)) 290 | (define-key map (kbd "SPC") 'dired-unmark) 291 | (define-key map (kbd "k") 'dired-unmark-backward) 292 | (define-key map (kbd "n") '~) 293 | (define-key map (kbd "o") 'dired-next-line) 294 | (define-key map (kbd "p") '~) 295 | (define-key map (kbd "r") 'dired-find-file-other-window) 296 | (define-key map (kbd "u") 'dired-previous-line) 297 | )) 298 | 299 | (with-eval-after-load 'haskell-mode 300 | (let ((map haskell-mode-map)) 301 | (define-key map (kbd "C-c C-c") 'c-haskell-load-module) 302 | (define-key map (kbd "C-c C-z") 'switch-to-haskell) 303 | ) 304 | (let ((map haskell-indentation-mode-map)) 305 | (define-key map (kbd ",") nil) 306 | (define-key map (kbd ";") nil) 307 | )) 308 | 309 | (with-eval-after-load 'magit-mode 310 | (let ((map magit-mode-map)) 311 | (define-key map (kbd "5") 'recenter-top-bottom) 312 | (define-key map (kbd "[") 'magit-section-backward) 313 | (define-key map (kbd "]") 'magit-section-forward) 314 | (define-key map (kbd "n") nil) 315 | (define-key map (kbd "p") nil) 316 | )) 317 | 318 | (with-eval-after-load 'org 319 | (let ((map org-mode-map)) 320 | (define-key map (kbd "C-c n") 'org-open-at-point) 321 | (define-key map (kbd "C-c d") 'org-toggle-link-display) 322 | (define-key map (kbd "C-c i") 'org-edit-special) 323 | (define-key map (kbd "C-c k") 'org-table-blank-field) 324 | (define-key map (kbd "C-c o") 'org-table-toggle-coordinate-overlays) 325 | (define-key map (kbd "C-c s") 'org-sort) 326 | (define-key map (kbd "C-c u") 'org-table-recalculate) 327 | )) 328 | 329 | (with-eval-after-load 'package 330 | (let ((map package-menu-mode-map)) 331 | (define-key map (kbd "[") 'previous-line) 332 | (define-key map (kbd "]") 'next-line) 333 | (define-key map (kbd "n") '~) 334 | (define-key map (kbd "p") '~) 335 | )) 336 | 337 | (with-eval-after-load 'python-mode 338 | (let ((map python-mode-map)) 339 | (define-key map (kbd "C-c h") 'python-shell-send-region) 340 | (define-key map (kbd "C-c m") 'c-python-shell-send-line) 341 | (define-key map (kbd "C-c r") 'run-python) 342 | (define-key map (kbd "DEL") 'backward-delete-char-untabify) 343 | )) 344 | 345 | (with-eval-after-load 'sql-mode 346 | (let ((map sql-mode-map)) 347 | (define-key map (kbd "C-c m") 'sql-r) 348 | )) 349 | 350 | (with-eval-after-load 'with-editor 351 | (let ((map with-editor-mode-map)) 352 | (define-key map (kbd "C-c k") 'with-editor-cancel) 353 | )) 354 | --------------------------------------------------------------------------------