Skip to content

Instantly share code, notes, and snippets.

@boykov
Created February 12, 2014 05:31
Show Gist options
  • Save boykov/8950497 to your computer and use it in GitHub Desktop.
Save boykov/8950497 to your computer and use it in GitHub Desktop.
;;; eab-kbd.el ---
;; Copyright (C) 2010, 2011, 2012, 2013 Evgeny Boykov
;;
;; Author: artscan@list.ru
;; Keywords:
;; Requirements:
;; Status: not intended to be distributed yet
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; _ __
;; | |/ /___ _ _ _ __ ___ __ _ _ __ ___
;; | ' // _ \ | | | '_ ` _ \ / _` | '_ \/ __|
;; | . \ __/ |_| | | | | | | (_| | |_) \__ \
;; |_|\_\___|\__, |_| |_| |_|\__,_| .__/|___/
;; |___/ |_|
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Keymaps
(defvar eab/compile-map (make-sparse-keymap)
"Compile keymap.")
(define-key eab/compile-map (kbd "a") 'eab/compile-anything)
(define-key eab/compile-map (kbd "d") 'compile)
(define-key eab/compile-map (kbd "s") 'smart-compile)
(define-key eab/compile-map (kbd "c") (ilam (eab/compile "make clear")))
(define-key eab/compile-map (kbd "t") (ilam (eab/compile "make test")))
(define-key eab/compile-map (kbd "2") (ilam (eab/compile "make test2")))
(defvar eab/one-key-map (make-sparse-keymap)
"One-key keymap.")
(define-key eab/one-key-map (kbd "b") 'maplev-cmaple-send-buffer)
(define-key eab/one-key-map (kbd "t") 'eab/switch-eepitch-target)
(define-key eab/one-key-map (kbd "a") (ilam (eepitch-ansi-term "1")))
(define-key eab/one-key-map (kbd "1") (ilam (eepitch-ansi-term "1")))
(define-key eab/one-key-map (kbd "2") (ilam (eepitch-ansi-term "2")))
(define-key eab/one-key-map (kbd "3") (ilam (eepitch-ansi-term "3")))
(define-key eab/one-key-map (kbd "4") (ilam (eepitch-ansi-term "4")))
(define-key eab/one-key-map (kbd "5") (ilam (eepitch-ansi-term "5")))
(define-key eab/one-key-map (kbd "6") (ilam (eepitch-ansi-term "6")))
(define-key eab/one-key-map (kbd "7") (ilam (eepitch-ansi-term "7")))
(define-key eab/one-key-map (kbd "8") (ilam (eepitch-ansi-term "8")))
(define-key eab/one-key-map (kbd "9") (ilam (eepitch-ansi-term "9")))
(define-key eab/one-key-map (kbd "c") 'eab/switch-compile)
(define-key eab/one-key-map (kbd "x") 'nil)
(define-key eab/one-key-map (kbd "h") 'eab/switch-help)
(define-key eab/one-key-map (kbd "z") 'undo-tree-visualize)
(define-key eab/one-key-map (kbd "s") 'eab/switch-async)
(define-key eab/one-key-map (kbd "p") 'eepitch-python)
(define-key eab/one-key-map (kbd "P") 'eepitch-php)
(define-key eab/one-key-map (kbd "i") 'eepitch-ipython)
(define-key eab/one-key-map (kbd "m") 'eab/switch-message)
(define-key eab/one-key-map (kbd "k") (ilam (eepitch-kill)))
(define-key eab/one-key-map (kbd "M") 'eepitch-maxima)
(define-key eab/one-key-map (kbd "@") 'eepitch-maple)
(define-key eab/one-key-map (kbd "f") 'eepitch-shell-cluster)
(define-key eab/one-key-map (kbd "o") 'top)
(define-key eab/one-key-map (kbd "-") 'eepitch-sage-python)
(define-key eab/one-key-map (kbd "g") 'eab/switch-grep)
(define-key eab/one-key-map (kbd "l") 'anything-locate)
(define-key eab/one-key-map (kbd "e") 'expectations-execute)
(global-set-key (kbd "C-.") eab/one-key-map)
(global-unset-key-leave-hint "C-.")
(global-set-key (kbd "C-e") eab/one-key-map)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defvar eab/dired-map (make-sparse-keymap)
"keymap for fast dired")
(define-key eab/dired-map (kbd "d") 'ido-dired)
(define-key eab/dired-map (kbd "o") (ilam (dired "~/pub/org")))
(define-key eab/dired-map (kbd "h") (ilam (dired "~/desktop")))
(define-key eab/dired-map (kbd "p") (ilam (dired "~/downloads")))
(define-key eab/dired-map (kbd "t") (ilam (dired "~/tmp")))
(global-set-key (kbd "C-x d") eab/dired-map)
(global-set-key (kbd "C-x r b")
(lambda ()
(interactive)
(bookmark-jump
(ido-completing-read "Jump to bookmark: " (bookmark-all-names)))))
(defvar eab/temacs-map (make-sparse-keymap)
"Keymap for console temacs.")
(define-key eab/temacs-map (kbd "e") 'expectations-execute)
(define-key eab/temacs-map (kbd "b") 'nil)
(define-key eab/temacs-map (kbd "r") 'region-bindings-mode)
(define-key eab/temacs-map (kbd "k") 'org-metadown)
(define-key eab/temacs-map (kbd "i") 'org-metaup)
(define-key eab/temacs-map (kbd "p") 'org-priority-up)
(define-key eab/temacs-map (kbd "j") 'org-metaleft)
(define-key eab/temacs-map (kbd "l") 'org-metaright)
(define-key eab/temacs-map (kbd "w") 'whitespace-mode)
(define-key eab/temacs-map (kbd "W") 'subword-mode)
(define-key eab/temacs-map (kbd "M-k") 'org-shiftdown)
(define-key eab/temacs-map (kbd "M-i") 'org-shiftup)
(define-key eab/temacs-map (kbd "M-j") 'org-shiftleft)
(define-key eab/temacs-map (kbd "M-l") 'org-shiftright)
(define-key eab/temacs-map (kbd "M-c") 'org-copy-special)
(define-key eab/temacs-map (kbd "M-x") 'org-cut-special)
(define-key eab/temacs-map (kbd "M-v") 'org-paste-special)
(define-key eab/temacs-map (kbd "K") 'org-shiftmetadown) ;; temacs
(define-key eab/temacs-map (kbd "I") 'org-shiftmetaup)
(define-key eab/temacs-map (kbd "J") 'org-shiftmetaleft)
(define-key eab/temacs-map (kbd "L") 'org-shiftmetaright)
(define-key eab/temacs-map (kbd "RET") 'org-meta-return)
(define-key eab/temacs-map (kbd "C-l") 'recenter-top-bottom)
(define-key eab/temacs-map (kbd "C-<return>") 'org-insert-heading-respect-content)
(define-key eab/temacs-map (kbd "C-j") 'org-insert-heading-respect-content)
(define-key eab/temacs-map (kbd "C-M-j") 'org-insert-heading-respect-content)
(define-key eab/temacs-map (kbd "'") 'org-edit-special) ;; temacs
(define-key eab/temacs-map (kbd "q") 'open-last-closed)
(define-key eab/temacs-map (kbd "o") 'org-open-at-point)
(define-key eab/temacs-map (kbd "a") 'append-to-buffer)
(define-key eab/temacs-map (kbd "h") 'eab/hron-todo)
(define-key eab/temacs-map (kbd "H") 'org-clock-in)
(define-key eab/temacs-map (kbd "C-h") 'org-clock-out)
(define-key eab/temacs-map (kbd "M-h") 'eab/send-csum-all-remote)
(define-key eab/temacs-map (kbd "M-d") (ilam (eab/sh-over-bash "~/git/auto/test-dotemacs.sh" "" 't)))
(define-key eab/temacs-map (kbd "C-h") 'nil)
(define-key eab/temacs-map (kbd "C-s") 'nil)
(define-key eab/temacs-map (kbd "c") 'org-store-link)
(define-key eab/temacs-map (kbd "b") 'bookmark-set)
(define-key eab/temacs-map (kbd "v") 'eab/org-insert-link-fast)
(define-key eab/temacs-map (kbd "z") 'org-archive-set-tag)
(define-key eab/temacs-map (kbd "f") 'eab/see-file)
(define-key eab/temacs-map (kbd "m") 'kmacro-keymap)
(define-key eab/temacs-map (kbd "nn") 'star-to-space2)
(define-key eab/temacs-map (kbd ",") 'kmacro-end-or-call-macro-repeat) ;; temacs
(define-key eab/temacs-map (kbd "M-a") 'eval-expression) ;; temacs
(define-key eab/temacs-map (kbd "y") 'yas-minor-mode)
(define-key eab/temacs-map (kbd "P") 'smartparens-global-mode)
(define-key eab/temacs-map (kbd "u") 'rename-uniquely)
(define-key eab/temacs-map (kbd "s") 'eab/sudo-save-toggle)
(define-key eab/temacs-map (kbd "S") 'toggle-truncate-lines) ;; temacs
(define-key eab/temacs-map (kbd "Y") 'auto-complete-mode) ;; temacs
(define-key eab/temacs-map (kbd ";") 'isearch-moccur)
(define-key eab/temacs-map (kbd "d") 'toggle-debug-on-error)
(define-key eab/temacs-map (kbd "D") 'toggle-window-dedicated)
(define-key eab/temacs-map (kbd "O") 'esc-toggle-window-selectability)
(define-key eab/temacs-map (kbd "M-f") 'ispell-change-dictionary)
(define-key eab/temacs-map (kbd "F") 'flyspell-mode)
(define-key eab/temacs-map (kbd "g") 'anything-google-suggest)
(define-key eab/temacs-map (kbd ".") eab/one-key-map) ;; temacs.
(define-key eab/temacs-map (kbd "x") 'kmacro-keymap)
(define-key eab/temacs-map (kbd "/") 'toggle-letter-case)
(define-key eab/temacs-map (kbd "SPC") 'eab/gr-tag-default-directory)
(global-set-key (kbd "C-y") 'helm-complex-command-history)
(global-set-key (kbd "C-y") eab/temacs-map)
(global-unset-key-leave-hint "C-y")
(global-set-key (kbd "C-l") eab/temacs-map)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; TODO таки приходим постепенно к модальным режимам, как в vim
;; альтернативой может служить специальный minor-mode, в котором
;; нужная функциональность, например навигация org-mode работает
;; вместо обычной на j i k l, а обычная навигация M-i, M-k... временно
;; доступна через более сложные сочетания. Еще вариант - аналогично
;; region-bindings-mode, когда включается minor-mode, в котором
;; сочетания имеют другое значение. Можно использовать прямые хоткеи
;; и, например, J I K L для org-shift.. За основу можно взять
;; https://github.com/edwtjo/evil-org-mode/blob/master/evil-org.el
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defvar eab/wg-map (make-sparse-keymap)
"Keymap for workgroups operations.")
;; (define-key eab/wg-map (kbd "b") (ilam (switch-to-buffer "&bitlbee")))
(define-key eab/wg-map (kbd "g") (ilam (wg-switch-to-workgroup (wg-get-workgroup 'name ":gsie:"))))
(define-key eab/wg-map (kbd "b") (ilam (wg-switch-to-workgroup (wg-get-workgroup 'name ":bie:"))))
(define-key eab/wg-map (kbd "j") (ilam (wg-switch-to-workgroup (wg-get-workgroup 'name ":jac:"))))
(define-key eab/wg-map (kbd "t") (ilam (wg-switch-to-workgroup (wg-get-workgroup 'name ":testbed:"))))
(define-key eab/wg-map (kbd "m") (ilam (wg-switch-to-workgroup (wg-get-workgroup 'name ":dbsym:"))))
(define-key eab/wg-map (kbd "d") (ilam (wg-switch-to-workgroup (wg-get-workgroup 'name ":dot:"))))
(define-key eab/wg-map (kbd "l") (ilam (wg-switch-to-workgroup (wg-get-workgroup 'name ":lat:"))))
(define-key eab/wg-map (kbd "a") (ilam (wg-switch-to-workgroup (wg-get-workgroup 'name ":ag:"))))
(define-key eab/wg-map (kbd "4") (ilam (wg-switch-to-workgroup (wg-get-workgroup 'name ":aaaa:"))))
(define-key eab/wg-map (kbd "5") (ilam (wg-switch-to-index-5)))
(define-key eab/wg-map (kbd "6") (ilam (wg-switch-to-index-6)))
(define-key eab/wg-map (kbd "7") (ilam (wg-switch-to-index-7)))
(define-key eab/wg-map (kbd "w") 'twit)
(define-key eab/wg-map (kbd "p") 'eab/switch-langt)
(define-key eab/wg-map (kbd "e") nil) ;; (ilam (eab/twit-search "emacs")))
(define-key eab/wg-map (kbd "[") (ilam (eab/twit-search "хазин")))
(define-key eab/wg-map (kbd "]") (ilam (eab/twit-search "фурсов")))
(define-key eab/wg-map (kbd "s") 'wg-switch-to-workgroup)
;; (define-key eab/wg-map (kbd "s") 'bmkp-cycle) ;; TODO [#A] сделать обертку, выбирающую navlist в соответствии с группой
;; (define-key eab/wg-map (kbd "t") (ilam (bmkp-choose-navlist-of-type "any")))
;; TODO по имени буфера: нарушение SPOT!
(define-key eab/wg-map (kbd "h") (ilam (switch-to-buffer "*Org Agenda(H:+TODO=\"TODO\"-ARCHIVE-noagenda|+CLOCK>=\"<-1y>\"-ARCHIVE-noagenda)*")))
(define-key eab/wg-map (kbd "W") (ilam (switch-to-buffer "*Org Agenda(W:w1c+TODO=\"TODO\"-ARCHIVE|+CLOCK>=\"<-1y>\"+CLOCKSUM>2+w1c-ARCHIVE-noagenda)*")))
(define-key eab/wg-map (kbd "C-s") (ilam (switch-to-buffer "*Sauron*")))
(define-key eab/wg-map (kbd "x") 'wg-kill-ring-save-working-config)
(define-key eab/wg-map (kbd "v") 'wg-yank-config)
(define-key eab/wg-map (kbd "r") 'wg-revert-workgroup)
(define-key eab/wg-map (kbd "u") 'wg-update-workgroup)
(define-key eab/wg-map (kbd "z") 'winner-undo)
(define-key eab/wg-map (kbd "C-z") 'winner-undo)
(define-key eab/wg-map (kbd "Z") 'winner-redo)
(define-key eab/wg-map (kbd "n") 'wg-create-workgroup)
(define-key eab/wg-map (kbd "c") 'wg-clone-workgroup)
(define-key eab/wg-map (kbd "SPC") 'eab/wg-revert-and-update)
(global-set-key (kbd "C-a") eab/wg-map)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; ____ _ _ _
;; / ___| | ___ | |__ __ _| |
;; | | _| |/ _ \| '_ \ / _` | |
;; | |_| | | (_) | |_) | (_| | |
;; \____|_|\___/|_.__/ \__,_|_|
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Global
(global-set-key (kbd "<f12>") 'make-list-paths)
(global-set-key (kbd "<f5>") 'twit)
(global-set-key (kbd "<f6>") 'eab/rev-buf)
(global-set-key (kbd "<f7>") (ilam (switch-to-buffer "&bitlbee")))
(global-set-key (kbd "<f8>") 'eepitch-this-line)
(global-set-key (kbd "<kp-insert>") 'sauron-pop-to-buffer)
(global-set-key (kbd "<kp-enter>") 'winner-undo)
(global-set-key (kbd "<kp-add>") (ilam (gnus-group-read-group t t "nnimap+Dovecot:inbox")))
(global-set-key (kbd "<kp-begin>") 'twit)
(global-set-key (kbd "<kp-delete>") (ilam (kill-buffer-and-window)))
(global-set-key (kbd "<kp-home>") (ilam (switch-to-buffer "&bitlbee")))
;; TODO по имени буфера: нарушение SPOT!
(global-set-key (kbd "<kp-end>") (ilam (switch-to-buffer "*Org Agenda(H:+TODO=\"TODO\"-ARCHIVE-noagenda|+CLOCK>=\"<-1y>\"-ARCHIVE-noagenda)*")))
(global-set-key (kbd "<M-kp-equal>") (ilam (shell-command "suspend_until.sh 4:00 &")))
(global-set-key (kbd "<print>") 'make-list-paths)
(global-set-key (kbd "C-i") 'indent-for-tab-command) ;; for TAB
(global-set-key (kbd "C-m") 'newline) ;; for RET
(global-unset-key-leave-hint "C-d")
(global-set-key (kbd "C-,") 'eab/eepitch-this-line)
(global-unset-key-leave-hint "C-,")
(global-set-key (kbd "C-r") 'eab/eepitch-this-line)
(global-set-key (kbd "C-/") 'toggle-letter-case)
(global-unset-key-leave-hint "C-/")
(global-set-key (kbd "C-:") 'isearch-moccur) ;; temacs
(global-unset-key-leave-hint "C-:")
(global-set-key (kbd "C-@") 'set-mark-command)
(global-set-key (kbd "M-DEL") 'eab/completion-at-point)
(global-set-key (kbd "C-j") 'eab/completion-at-point)
(global-set-key (kbd "C-M-:") 'isearch-backward-regexp)
(global-unset-key-leave-hint "C-M-:")
(global-set-key (kbd "C-M-;") 'isearch-forward-regexp)
(global-unset-key-leave-hint "C-M-;")
(global-set-key (kbd "C-M-g") 'eab/insert-greek) ;; temacs
(global-set-key (kbd "C-S-a") 'eval-expression) ;; temacs
(global-set-key (kbd "C-S-b") 'select-frame-by-name)
(global-set-key (kbd "C-S-s") 'write-file) ;; temacs
(global-set-key (kbd "C-SPC") 'set-mark-command)
(global-set-key (kbd "C-b") 'eab/cxb)
(global-set-key (kbd "C-c a") 'org-agenda)
(global-set-key (kbd "C-c c") 'eab/add-eab-abbrev)
(global-set-key (kbd "C-c i") 'yas-expand)
(global-set-key (kbd "C-c C-M-p") 'org-open-at-point-global)
(global-set-key (kbd "C-c C-l") 'org-insert-link)
(global-set-key (kbd "C-c M-f") 'find-file-at-point)
(global-set-key (kbd "C-c M-p") 'w3m-browse-url)
(global-set-key (kbd "C-c d") 'eab/tracker-search)
(global-set-key (kbd "C-c g") 'eab/gnugol-search)
(global-set-key (kbd "C-c h") (ilam (let ((org-agenda-buffer-name "*Kairos*")) (org-agenda))))
(global-set-key (kbd "C-c l") 'org-store-link)
(global-set-key (kbd "C-c o") 'other-window)
(global-set-key (kbd "C-c r") 'org-capture)
(global-set-key (kbd "C-c s") 'eab/org-agenda-search)
(global-set-key (kbd "C-c t") 'dictionary-search)
(global-set-key (kbd "C-c T") 'eab/google-translate)
(global-set-key (kbd "C-c u") 'eab/unbound-var)
(global-set-key (kbd "C-c U") 'eab/unbound-fun)
(global-set-key (kbd "C-c v") 'eab/twit-visit)
(global-set-key (kbd "C-c w") 'eab/twit-search)
(global-set-key (kbd "C-c e") 'eab/edit-list-at-point)
(global-set-key (kbd "C-f") 'magit-status)
(global-set-key (kbd "C-h C-c") 'describe-command)
(global-set-key (kbd "C-h c") 'describe-key-briefly)
(global-set-key (kbd "C-h C-f") 'eab/find-function-at-point)
(global-set-key (kbd "C-h C-k") 'eab/describe-key-find)
(global-set-key (kbd "C-h C-v") 'eab/find-variable-at-point)
(global-set-key (kbd "C-k") 'toggle-input-method)
(global-set-key (kbd "s-k") (ilam (if (equal current-input-method "TeX") (set-input-method "russian-computer") (set-input-method "TeX")))) ;; temacs
(global-set-key (kbd "C-n") 'new-empty-buffer)
(global-set-key (kbd "C-o") 'find-file)
(global-set-key (kbd "C-p") 'er/expand-region)
(global-set-key (kbd "C-s") (ilam (save-some-buffers 't)))
(global-set-key (kbd "C-s-i") 'imenu) ;; temacs
(global-set-key (kbd "C-s-j") 'eab/insert-greek) ;; temacs
(global-set-key (kbd "C-s-k") (lambda (ch) (interactive "c") (insert ch)))
(global-set-key (kbd "C-s-l") 'anything-locate)
(global-unset-key-leave-hint "C-s-l")
(global-set-key (kbd "C-v") 'vc-diff)
(global-set-key (kbd "C-w") 'compact-uncompact-block)
(global-set-key (kbd "C-x C-M-p") 'org-open-at-point-global)
(global-set-key (kbd "C-x C-d") 'dired-jump)
(global-set-key (kbd "C-x C-e") 'eval-defun)
(global-set-key (kbd "C-x C-g") (ilam (execute-kbd-macro [?\C-u ?\C-x ?g])))
(global-set-key (kbd "C-x C-k C-s") 'pm-save)
(global-set-key (kbd "C-x C-k d") 'pm-define)
(global-set-key (kbd "C-x C-k e") 'pm-switch-buf)
(global-set-key (kbd "C-x C-k k") 'kill-region)
(global-set-key (kbd "C-x G") 'moccur-grep)
(global-set-key (kbd "C-x M-f") 'find-file-at-point)
(global-set-key (kbd "C-x M-p") 'w3m-browse-url)
(global-set-key (kbd "C-x a a") 'anything)
(global-set-key (kbd "C-x b") 'eab/cxb)
(global-set-key (kbd "C-x c") 'customize-variable)
(global-set-key (kbd "C-x e") 'eval-last-sexp)
(global-set-key (kbd "C-x g") 'eab/grep)
(global-set-key (kbd "C-x j") 'comment-region)
(global-set-key (kbd "C-x o") 'other-window)
(global-set-key (kbd "C-x t") 'dictionary-search)
(global-set-key (kbd "C-x T") 'eab/google-translate)
(global-set-key (kbd "C-x w") 'w3m-search)
(global-set-key (kbd "C-z") 'repeat)
(global-set-key (kbd "M-!") 'delete-window)
(global-set-key (kbd "M-%") 'query-replace-regexp)
(global-set-key (kbd "M-&") 'count-matches)
(global-set-key (kbd "M-'") 'comment-dwim)
(global-set-key (kbd "M-*") 'select-text-in-quote)
(global-set-key (kbd "M-<") 'kmacro-start-macro)
(global-set-key (kbd "M-,") 'kmacro-end-or-call-macro)
(global-set-key (kbd "M-.") 'eab/etags-find-or-pop) ;; вместе с тэгами используются eab/find-function-at-point или jedi
(global-set-key (kbd "M-/") 'dabbrev-expand)
(global-set-key (kbd "M-?") 'anything-dabbrev-expand)
(global-set-key (kbd "M-1") 'delete-other-windows)
(global-set-key (kbd "M-2") 'split-window-vertically)
(global-set-key (kbd "M-5") 'query-replace)
(global-set-key (kbd "M-8") 'extend-selection)
(global-set-key (kbd "M-:") 'isearch-backward)
(global-set-key (kbd "M-;") 'isearch-forward)
(global-set-key (kbd "M-@") 'split-window-horizontally)
(global-set-key (kbd "M-A") 'eab/call-shell-command)
(global-set-key (kbd "M-B") 'backward-kill-sexp)
(global-set-key (kbd "M-C") 'copy-all)
(global-set-key (kbd "M-C-b") 'eab/mcb)
(global-set-key (kbd "M-G") 'kill-line-backward)
(global-set-key (kbd "M-H") 'move-end-of-line)
(global-set-key (kbd "M-I") 'scroll-down)
(global-set-key (kbd "M-J") 'beginning-of-buffer)
(global-set-key (kbd "M-K") 'scroll-up)
(global-set-key (kbd "M-L") 'end-of-buffer)
(global-set-key (kbd "M-M") 'end-of-defun)
(global-set-key (kbd "M-N") 'beginning-of-defun)
(global-set-key (kbd "M-O") 'forward-paragraph)
(global-set-key (kbd "M-Q") 'close-current-buffer)
(global-set-key (kbd "M-S") 'move-cursor-previous-pane)
(global-set-key (kbd "C-S-SPC") 'mark-defun)
(global-set-key (kbd "M-S-SPC") 'mark-paragraph)
(global-unset-key-leave-hint "M-S-SPC")
(global-set-key (kbd "M-SPC") 'set-mark-command)
(global-unset-key-leave-hint "M-T")
(global-set-key (kbd "M-U") 'backward-paragraph)
(global-set-key (kbd "M-V") 'helm-show-kill-ring)
(global-set-key (kbd "M-X") 'delete-region)
(global-set-key (kbd "M-Z") 'undo-tree-redo)
(global-set-key (kbd "M-`") 'switch-to-next-frame)
(global-set-key (kbd "M-a") 'eab/smex-limited-commands)
(global-set-key (kbd "M-b") 'kill-sexp)
(global-set-key (kbd "M-c") 'kill-ring-save)
(global-set-key (kbd "M-d") 'ace-jump-mode)
(global-set-key (kbd "M-e") 'backward-kill-word)
(global-set-key (kbd "M-f") 'delete-char)
(global-set-key (kbd "M-F") 'delete-backward-char)
(global-set-key (kbd "M-g") 'kill-line)
(global-set-key (kbd "M-h") 'move-beginning-of-line)
(global-set-key (kbd "M-i") 'previous-line)
(global-set-key (kbd "M-j") 'backward-char)
(global-set-key (kbd "C-M-j") 'delete-backward-char)
(global-set-key (kbd "M-k") 'next-line)
(global-set-key (kbd "M-l") 'forward-char)
(global-set-key (kbd "C-t") 'sp-transpose-sexp)
(global-set-key (kbd "M-m") 'sp-forward-sexp)
(global-set-key (kbd "M-n") 'sp-backward-sexp)
(global-set-key (kbd "M-o") 'forward-word)
(global-set-key (kbd "M-p") 'move-end-of-line)
(global-set-key (kbd "M-q") (ilam (kill-buffer-and-window)))
(global-set-key (kbd "M-r") 'kill-word)
(global-set-key (kbd "M-s") 'move-cursor-next-pane)
(global-set-key (kbd "M-u") 'backward-word)
(global-set-key (kbd "M-v") 'yank)
(global-set-key (kbd "M-w") 'shrink-whitespaces)
(global-set-key (kbd "M-x") 'kill-region)
(global-set-key (kbd "M-z") 'undo-tree-undo)
(global-set-key (kbd "M-~") 'switch-to-previous-frame)
(global-set-key (kbd "s-,") 'kmacro-end-or-call-macro-repeat)
(global-unset-key-leave-hint "s-,")
(global-set-key (kbd "s-.") (ilam (org-todo 3)))
(global-set-key (kbd "s-Y") 'auto-complete-mode)
(global-set-key (kbd "s-a") 'append-to-buffer)
(global-set-key (kbd "s-c") 'org-store-link)
(global-set-key (kbd "s-d") (ilam (anything 'anything-c-source-ls-download)))
(global-set-key (kbd "s-e") 'expectations-execute)
(global-set-key (kbd "s-f") 'eab/see-file)
(global-set-key (kbd "s-g") 'anything-google-suggest)
(global-set-key (kbd "s-h") 'eab/hron-todo)
(global-set-key (kbd "s-H") 'org-clock-in)
(global-set-key (kbd "C-s-h") 'org-clock-out)
(global-set-key (kbd "s-m") 'kmacro-keymap)
(global-set-key (kbd "s-o") 'org-open-at-point)
(global-set-key (kbd "s-v") 'eab/org-insert-link-fast)
(global-set-key (kbd "s-y") 'yas-minor-mode)
(global-set-key (kbd "s-z") 'org-archive-set-tag)
(global-set-key (kbd "s-/") 'ac-start) ;; temacs
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; _ _ _ _ _
;; | |__ _ _(_) | |_ (_)_ __
;; | '_ \| | | | | | __|____| | '_ \
;; | |_) | |_| | | | ||_____| | | | |
;; |_.__/ \__,_|_|_|\__| |_|_| |_|
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; built-in
(define-key isearch-mode-map (kbd "M-p") 'nil)
(define-key isearch-mode-map (kbd "M-n") 'nil)
(define-key isearch-mode-map (kbd "M-y") 'nil)
(define-key isearch-mode-map (kbd "M-c") 'nil)
(define-key isearch-mode-map (kbd "M-s") 'nil)
(define-key isearch-mode-map (kbd "C-y") 'nil)
(define-key isearch-mode-map (kbd "C-l") 'nil)
(define-key isearch-mode-map (kbd "M-r") 'isearch-edit-string)
(define-key isearch-mode-map (kbd "C-e") 'isearch-edit-string)
(define-key isearch-mode-map (kbd "M-;") 'isearch-repeat-forward)
(define-key isearch-mode-map (kbd "M-:") 'isearch-repeat-backward)
(define-key isearch-mode-map (kbd "M-v") 'isearch-yank-kill)
(define-key isearch-mode-map (kbd "M-k") 'isearch-ring-advance)
(define-key isearch-mode-map (kbd "M-i") 'isearch-ring-retreat)
(define-key isearch-mode-map (kbd "C-k") 'isearch-toggle-input-method)
(define-key isearch-mode-map (kbd "M-5") 'isearch-query-replace)
(define-key isearch-mode-map (kbd "M-d") 'eab/isearch-ace-jump)
(define-key minibuffer-local-completion-map (kbd "C-r") 'nil)
(define-key minibuffer-local-completion-map (kbd "M-n") 'nil)
(define-key minibuffer-local-completion-map (kbd "M-p") 'nil)
(define-key minibuffer-local-completion-map (kbd "M-v") 'nil)
(define-key minibuffer-local-completion-map (kbd "M-s") 'nil)
(define-key minibuffer-local-map (kbd "C-d") 'eab/ace-ibuffer)
(define-key minibuffer-local-map (kbd "C-|") 'eab/minibuffer-see-file) ;; temacs
(define-key minibuffer-local-map (kbd "s-SPC") 'eab/ido-see-file) ;; temacs
(define-key minibuffer-local-map (kbd "C-q") 'quoted-insert)
(define-key minibuffer-local-map (kbd "M-;") 'isearch-backward)
(define-key minibuffer-local-map (kbd "M-:") 'anything-minibuffer-history)
(define-key minibuffer-local-map (kbd "M-k") 'next-history-element) ;; DONE not usable
;; TODO надо C-y, теперь уже C-l, везде сделать переменной
(define-key minibuffer-local-map (kbd "C-l M-i") 'previous-line)
(define-key minibuffer-local-map (kbd "C-l M-k") 'next-line)
(define-key minibuffer-local-map (kbd "M-i") 'previous-history-element)
(define-key minibuffer-local-map (kbd "M-E") (ilam (delete-minibuffer-contents)))
(define-key minibuffer-local-map (kbd "M-r") 'nil)
(define-key minibuffer-local-map (kbd "M-p") 'nil)
(define-key minibuffer-local-map (kbd "M-n") 'nil)
(define-key minibuffer-local-map (kbd "M-x") 'nil)
(define-key minibuffer-local-map (kbd "M-I") 'previous-matching-history-element)
(define-key minibuffer-local-map (kbd "M-K") 'next-matching-history-element)
(define-key minibuffer-local-map (kbd "M-a") 'eab/smex-extended)
(define-key minibuffer-local-map (kbd "C-w") 'eab/smex-repeat)
(define-key minibuffer-local-map (kbd "M-v") 'nil)
(define-key minibuffer-inactive-mode-map (kbd "o") 'eab/screen-off)
(define-key minibuffer-inactive-mode-map (kbd "e") 'eab/ido-emacs)
(define-key minibuffer-inactive-mode-map (kbd "s") 'eab/ido-wmctrl)
(define-key minibuffer-inactive-mode-map (kbd "q") 'suspend-frame)
(define-key minibuffer-inactive-mode-map (kbd "t") (ilam (eab/gnome-terminal) (suspend-frame)))
(define-key query-replace-map (kbd "C-e") 'edit)
(define-key query-replace-map (kbd "C-r") 'delete-and-edit)
(define-key kmacro-keymap "m" 'kmacro-start-macro)
(define-key kmacro-keymap "," 'kmacro-end-or-call-macro-repeat)
(define-key kmacro-keymap "i" 'kmacro-insert-counter)
(define-key kmacro-keymap "s" 'kmacro-set-counter)
(define-key kmacro-keymap "v" 'insert-kbd-macro)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; _ _ _ _
;; __ _ __| | __| | | |__ ___ ___ | | __
;; / _` |/ _` |/ _` |_____| '_ \ / _ \ / _ \| |/ /
;; | (_| | (_| | (_| |_____| | | | (_) | (_) | <
;; \__,_|\__,_|\__,_| |_| |_|\___/ \___/|_|\_\
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; add-hook
(eab/add-hook ediff-after-setup-control-frame-hook eab/ediff-hook
(define-key ediff-mode-map (kbd "d") 'nil))
(eab/add-hook markdown-mode-hook eab/markdown-hook
(define-key markdown-mode-map (kbd "C-M-b") 'nil)
(define-key markdown-mode-map (kbd "C-M-f") 'nil)
(define-key markdown-mode-map (kbd "M-n") 'nil)
(define-key markdown-mode-map (kbd "M-p") 'nil)
(define-key markdown-mode-map (kbd "<tab>") 'nil))
(eab/add-hook ibuffer-mode-hook eab/ibuffer-hook
(define-key ibuffer-mode-map (kbd "C-d") 'nil)
(define-key ibuffer-mode-map (kbd "C-k") 'nil)
(define-key ibuffer-mode-map (kbd "C-o") 'nil)
(define-key ibuffer-mode-map (kbd "C-y") 'nil)
(define-key ibuffer-mode-map (kbd "M-g") 'nil)
(define-key ibuffer-mode-map (kbd "M-j") 'nil)
(define-key ibuffer-mode-map (kbd "M-n") 'nil)
(define-key ibuffer-mode-map (kbd "M-o") 'nil)
(define-key ibuffer-mode-map (kbd "M-p") 'nil)
(define-key ibuffer-mode-map (kbd "M-s") 'nil))
(eab/add-hook magit-mode-hook eab/magit-hook
(define-key magit-log-mode-map (kbd "C-l M-n") 'log-edit-next-comment)
(define-key magit-log-mode-map (kbd "C-l M-p") 'log-edit-previous-comment)
(define-key magit-log-mode-map (kbd "M-n") 'nil)
(define-key magit-log-mode-map (kbd "M-p") 'nil)
(define-key magit-mode-map (kbd "W") (ilam (execute-kbd-macro (read-kbd-macro "l - a l l"))))
(define-key magit-mode-map (kbd "J") 'eab/magit-just-amend)
(define-key magit-mode-map (kbd "M-n") 'nil)
(define-key magit-mode-map (kbd "M-p") 'nil)
(define-key magit-mode-map (kbd "M-s") 'nil)
(define-key magit-mode-map (kbd "M-S") 'nil)
(define-key magit-mode-map (kbd "M-h") 'nil)
(define-key magit-mode-map (kbd "M-H") 'nil)
(define-key magit-mode-map (kbd "M-1") 'nil)
(define-key magit-mode-map (kbd "M-2") 'nil)
(define-key magit-mode-map (kbd "M-g") 'magit-remote-update)
(define-key magit-mode-map (kbd "C-d") 'magit-show-level-4)
(define-key magit-mode-map (kbd "C-D") 'magit-show-level-4-all)
(define-key magit-mode-map (kbd "C-f") 'magit-show-only-files)
(define-key magit-mode-map (kbd "C-F") 'magit-show-only-files-all)
(define-key magit-mode-map (kbd "s-1") 'magit-show-level-1-all) ;; temacs
(define-key magit-mode-map (kbd "s-2") 'magit-show-level-2-all) ;; temacs
(define-key magit-mode-map (kbd "<backtab>") 'magit-show-level-2-all)
(define-key magit-mode-map (kbd "RET") (ilam (magit-visit-item 't)))
(define-key magit-mode-map (kbd "s-3") 'magit-show-level-3-all) ;; temacs
(define-key magit-mode-map (kbd "s-4") 'magit-show-level-4-all)) ;; temacs
(eab/add-hook nroff-mode-hook eab/nroff-hook
(define-key nroff-mode-map (kbd "M-s") 'nil)
(define-key nroff-mode-map (kbd "M-n") 'nil)
(define-key nroff-mode-map (kbd "M-p") 'nil))
(eab/add-hook twittering-edit-mode-hook eab/twittering-edit-hook
(define-key twittering-edit-mode-map (kbd "C-l M-p") 'twittering-edit-previous-history)
(define-key twittering-edit-mode-map (kbd "C-l M-n") 'twittering-edit-next-history)
(define-key twittering-edit-mode-map (kbd "M-p") 'nil)
(define-key twittering-edit-mode-map (kbd "M-n") 'nil))
(eab/add-hook eshell-mode-hook eab/eshell-hook
(define-key eshell-mode-map (kbd "M-s") 'nil)
(define-key eshell-mode-map (kbd "M-s") 'nil))
(eab/add-hook shell-mode-hook eab/shell-hook
(define-key shell-mode-map (kbd "M-p") 'nil)
(define-key shell-mode-map (kbd "M-n") 'nil))
;; TODO это ведь то же самое, что просто вызов (eab/free-map git-commit-mode-map)
(eval `(eab/add-hook git-commit-mode-hook eab/git-commit-hook
,@(eab/define-key
'git-commit-mode-map
(eab/proc-keys 'eab/check-map '(git-commit-mode-map)))))
(eab/add-hook etags-select-mode-hook eab/etags-select-hook
)
(eab/add-hook erc-mode-hook eab/erc-hook
(define-key erc-mode-map (kbd "C-l M-n") 'erc-next-command)
(define-key erc-mode-map (kbd "C-l M-p") 'erc-previous-command)
(define-key erc-mode-map (kbd "C-a") 'nil)
(define-key erc-mode-map (kbd "M-n") 'nil)
(define-key erc-mode-map (kbd "M-p") 'nil))
;; (define-key popup-isearch-keymap (kbd "C-k") (ilam (insert "л")))
;;
(eab/add-hook auto-complete-mode-hook eab/ac-complete-mode-hook
(define-key ac-completing-map "\C-s" 'ac-isearch)
(define-key ac-complete-mode-map (kbd "M-c") 'ac-expand-common)
(define-key ac-complete-mode-map (kbd "M-k") 'ac-next)
(define-key ac-complete-mode-map (kbd "M-i") 'ac-previous)
(define-key ac-complete-mode-map (kbd "M-:") 'ac-complete-with-anything))
(eab/add-hook bookmark-bmenu-mode-hook eab/bookmark-bmenu-mode-hook
(define-key bookmark-bmenu-mode-map (kbd "M-s") 'nil)
(define-key bookmark-bmenu-mode-map (kbd "M-l") 'nil)
(define-key bookmark-bmenu-mode-map (kbd "M-m") 'nil)
(define-key bookmark-bmenu-mode-map (kbd "M-a") 'nil)
(define-key bookmark-bmenu-mode-map (kbd "M-d") 'nil)
(define-key bookmark-bmenu-mode-map (kbd "M-u") 'nil)
(define-key bookmark-bmenu-mode-map (kbd "M-I") 'nil)
(define-key bookmark-bmenu-mode-map (kbd "C-d") 'nil)
(define-key bookmark-bmenu-mode-map (kbd "C-o") 'nil)
(define-key bookmark-bmenu-mode-map (kbd "M-~") 'nil)
(define-key bookmark-bmenu-mode-map (kbd "M-a") 'nil)
(define-key bookmark-bmenu-mode-map (kbd "M-c") 'nil)
(define-key bookmark-bmenu-mode-map (kbd "M-L") 'nil)
(define-key bookmark-bmenu-mode-map (kbd "M-m") 'nil)
(define-key bookmark-bmenu-mode-map (kbd "M-o") 'nil)
(define-key bookmark-bmenu-mode-map (kbd "M-q") 'nil)
(define-key bookmark-bmenu-mode-map (kbd "M-r") 'nil)
(define-key bookmark-bmenu-mode-map (kbd "M-t") 'nil)
(define-key bookmark-bmenu-mode-map (kbd "SPC") 'bmkp-describe-bookmark)
(define-key bookmark-bmenu-mode-map (kbd "M-X") 'nil))
(eab/add-hook moccur-mode eab/moccur-hook
(define-key moccur-mode-map (kbd "M-n") 'nil)
(define-key moccur-mode-map (kbd "M-p") 'nil)
(define-key moccur-mode-map (kbd "M-m") 'nil)
(define-key moccur-mode-map (kbd "M-d") 'nil))
(eab/add-hook org-mode-hook eab/org-hook
(define-key org-mode-map (kbd "C-d") eab/compile-map)
(key-chord-define org-mode-map "jj" 'org-edit-src-code)
(define-key org-mode-map (kbd "s-'") 'org-edit-src-code) ;; temacs
(define-key org-mode-map (kbd "s-k") 'org-metadown)
(define-key org-mode-map (kbd "s-i") 'org-metaup)
(define-key org-mode-map (kbd "s-p") 'org-priority-up)
(define-key org-mode-map (kbd "s-j") 'org-metaleft)
(define-key org-mode-map (kbd "s-l") 'org-metaright)
(define-key org-mode-map (kbd "s-K") 'org-shiftmetadown)
(define-key org-mode-map (kbd "s-I") 'org-shiftmetaup)
(define-key org-mode-map (kbd "s-J") 'org-shiftmetaleft)
(define-key org-mode-map (kbd "s-L") 'org-shiftmetaright)
(define-key org-mode-map (kbd "s-<return>") 'org-insert-heading)
(define-key org-mode-map (kbd "s-S-<return>") 'org-insert-todo-heading)
(define-key org-mode-map (kbd "M-s-k") 'org-shiftdown)
(define-key org-mode-map (kbd "M-s-i") 'org-shiftup)
(define-key org-mode-map (kbd "M-s-j") 'org-shiftleft)
(define-key org-mode-map (kbd "M-s-l") 'org-shiftright) ;; temacs
(define-key org-mode-map (kbd "C-y") 'nil)
(define-key org-mode-map (kbd "C-e") 'nil)
(define-key org-mode-map (kbd "<f6>") 'eab/rev-buf)
(define-key org-mode-map (kbd "C-,") 'nil) ;; temacs
(define-key org-mode-map (kbd "C-SPC") 'nil)
(define-key org-mode-map (kbd "M-a") 'nil)
(define-key org-mode-map (kbd "M-e") 'nil)
(define-key org-mode-map (kbd "C-a") 'nil)
(define-key org-mode-map (kbd "C-k") 'nil)
(define-key org-mode-map (kbd "M-h") 'org-beginning-of-line)
(define-key org-mode-map (kbd "M-p") 'org-end-of-line)
(define-key org-mode-map (kbd "M-g") 'org-kill-line)
(define-key org-mode-map (kbd "M-v") 'org-yank)
(define-key org-mode-map (kbd "M-N") 'org-backward-sentence)
(define-key org-mode-map (kbd "M-M") 'org-forward-sentence)
(define-key org-mode-map (kbd "C-M-u") 'outline-previous-visible-heading)
(define-key org-mode-map (kbd "C-M-o") 'outline-next-visible-heading)
(define-key org-mode-map (kbd "s-u") 'org-preview-latex-fragment) ;; temacs
(define-key org-mode-map (kbd "C-c C-x M-c") 'org-copy-special)
(define-key org-mode-map (kbd "C-c C-x M-x") 'org-cut-special)
(define-key org-mode-map (kbd "C-c C-x M-v") 'org-paste-special)
(define-key org-mode-map (kbd "s-x M-c") 'org-copy-special) ;; temacs
(define-key org-mode-map (kbd "s-x M-x") 'org-cut-special) ;; temacs
(define-key org-mode-map (kbd "s-x M-v") 'org-paste-special) ;; temacs
(key-chord-define org-src-mode-map "jj" 'org-edit-src-exit)
(define-key org-src-mode-map (kbd "s-'") 'org-edit-src-exit) ;; temacs
(define-key org-src-mode-map (kbd "C-l '") 'org-edit-src-exit)
(define-key org-agenda-mode-map (kbd "s-.") (ilam (org-agenda-todo 3))) ;; temacs
(define-key org-agenda-mode-map (kbd "M-j") 'nil)
(define-key org-agenda-mode-map (kbd "M-l") 'nil)
(define-key org-agenda-mode-map (kbd "C-p") 'nil)
(define-key org-agenda-mode-map (kbd "C-n") 'nil)
(define-key org-agenda-mode-map (kbd "C-k") 'nil)
(define-key org-agenda-mode-map (kbd "M-g") 'org-agenda-kill)
(define-key org-agenda-mode-map (kbd "M-k") 'org-agenda-next-line)
(define-key org-agenda-mode-map (kbd "M-i") 'org-agenda-previous-line))
(eab/add-hook comint-mode-hook eab/coming-hook
(define-key comint-mode-map (kbd "M-p") 'comint-previous-matching-input-from-input)
(define-key comint-mode-map (kbd "M-n") 'comint-next-matching-input-from-input)
(define-key comint-mode-map (kbd "C-M-n") 'comint-next-input)
(define-key comint-mode-map (kbd "C-M-p") 'comint-previous-input))
(eab/add-hook diff-mode-hook eab/diff-hook
(define-key diff-mode-map (kbd "M-SPC") 'nil)
(define-key diff-mode-map (kbd "M-1") 'nil)
(define-key diff-mode-map (kbd "M-2") 'nil)
(define-key diff-mode-map (kbd "M-5") 'nil)
(define-key diff-mode-map (kbd "M-k") 'nil)
(define-key diff-mode-map (kbd "M-<") 'nil)
(define-key diff-mode-map (kbd "M->") 'nil)
(define-key diff-mode-map (kbd "M-K") 'nil)
(define-key diff-mode-map (kbd "M-h") 'nil)
(define-key diff-mode-map (kbd "M-n") 'nil)
(define-key diff-mode-map (kbd "M-N") 'nil)
(define-key diff-mode-map (kbd "M-o") 'nil)
(define-key diff-mode-map (kbd "M-p") 'nil))
(eab/add-hook fortran-mode-hook eab/fortran-hook
(define-key fortran-mode-map (kbd "C-d") eab/compile-map))
(eab/add-hook f90-mode-hook eab/f90-hook
(define-key f90-mode-map (kbd "C-j") 'nil)
(define-key f90-mode-map (kbd "C-d") eab/compile-map))
(eab/add-hook twittering-mode-hook eab/twittering-hook
(define-key twittering-mode-map (kbd "M-v") 'nil)
(define-key twittering-mode-map (kbd "C-v") 'nil)
(define-key twittering-mode-map (kbd "@") 'eab/twit-filter)
(define-key twittering-mode-map (kbd "f") 'twittering-follow)
(define-key twittering-mode-map (kbd "r") 'twittering-retweet)
(define-key twittering-mode-map (kbd "R") 'twittering-toggle-or-retrieve-replied-statuses)
(define-key twittering-mode-map (kbd "F") 'twittering-favorite)
(define-key twittering-mode-map (kbd "s-f") 'twittering-friends-timeline) ;; temacs
(define-key twittering-mode-map (kbd "s-r") 'twittering-replies-timeline)
(define-key twittering-mode-map (kbd "s-u") 'twittering-user-timeline)
(define-key twittering-mode-map (kbd "s-d") 'twittering-direct-messages-timeline)
(define-key twittering-mode-map (kbd "s-s") 'twittering-update-status-interactive)
(define-key twittering-mode-map (kbd "s-e") 'twittering-erase-old-statuses)
(define-key twittering-mode-map (kbd "s-m") 'twittering-retweet)
(define-key twittering-mode-map (kbd "s-t") 'twittering-set-current-hashtag)
(define-key twittering-mode-map (kbd "C-m") 'twittering-enter)
(define-key twittering-mode-map (kbd "s-l") 'twittering-update-lambda)) ;; temacs
(eab/add-hook slime-repl-mode-hook eab/slime-repl-hook
(define-key slime-repl-mode-map (kbd "M-n") 'nil)
(define-key slime-repl-mode-map (kbd "M-p") 'nil)
(define-key slime-repl-mode-map (kbd "M-r") 'nil)
(define-key slime-repl-mode-map (kbd "M-s") 'nil)
(define-key slime-repl-mode-map (kbd "C-a") 'nil)
(define-key slime-repl-mode-map (kbd "C-A") 'nil)
(define-key slime-repl-mode-map (kbd "C-l M-p") 'slime-repl-previous-input)
(define-key slime-repl-mode-map (kbd "C-l M-n") 'slime-repl-next-input))
(eab/add-hook maxima-mode-hook eab/maxima-hook
(define-key maxima-mode-map (kbd "C-M-a") 'nil)
(define-key maxima-mode-map (kbd "C-M-b") 'nil)
(define-key maxima-mode-map (kbd "C-M-e") 'nil)
(define-key maxima-mode-map (kbd "C-M-f") 'nil)
(define-key maxima-mode-map (kbd "M-;") 'nil)
(define-key maxima-mode-map (kbd "C-d") eab/compile-map)
(define-key maxima-mode-map (kbd "M-h") 'nil))
(eab/add-hook slime-mode-hook eab/slime-hook
(define-key slime-mode-map (kbd "M-p") 'nil)
(define-key slime-mode-map (kbd "M-n") 'nil))
(eab/add-hook message-mode-hook eab/message-hook
(define-key message-mode-map (kbd "M-;") 'nil)
(define-key message-mode-map (kbd "M-n") 'nil))
(eab/add-hook makefile-gmake-mode-hook eab/makefile-gmake-mode
(define-key makefile-gmake-mode-map (kbd "\C-d") eab/compile-map)
(define-key makefile-gmake-mode-map (kbd "M-n") 'nil)
(define-key makefile-gmake-mode-map (kbd "M-p") 'nil))
(eab/add-hook nxml-mode-hook eab/nxml-mode
(define-key nxml-mode-map (kbd "M-h") 'nil))
(eab/add-hook term-mode-hook eab/term-hook
(define-key term-mode-map (kbd "M-q") 'nil)
(define-key term-mode-map (kbd "M-s") 'nil)
(define-key term-mode-map (kbd "M-n") 'nil)
(define-key term-mode-map (kbd "M-p") 'nil)
(define-key term-mode-map (kbd "<tab>") 'eab/wrap-tab)
(define-key term-mode-map (kbd "C-p") 'term-previous-input)
(define-key term-mode-map (kbd "C-n") 'term-next-input)
(key-chord-define term-mode-map "jj" 'term-char-mode)
(key-chord-define term-raw-map "jj" 'term-line-mode)
(define-key term-raw-map (kbd "M-a") 'nil)
(define-key term-raw-map (kbd "M-A") 'nil)
(define-key term-raw-map (kbd "M-q") 'nil)
(define-key term-raw-map (kbd "M-Q") 'nil)
(define-key term-raw-map (kbd "M-v") 'nil)
(define-key term-raw-map (kbd "M-g") 'nil)
(define-key term-raw-map (kbd "M-V") 'nil)
(define-key term-raw-map (kbd "M-z") 'nil)
(define-key term-raw-map (kbd "M-s") 'nil)
(define-key term-raw-map (kbd "C-b") 'nil)
(define-key term-raw-map (kbd "C-o") 'nil)
(define-key term-raw-map (kbd "C-h") 'nil)
(define-key term-raw-map (kbd "C-c s") 'nil)
(define-key term-raw-map (kbd "M-1") 'nil)
(define-key term-raw-map (kbd "M-k") 'term-send-up)
(define-key term-raw-map (kbd "M-i") 'term-send-down)
(define-key term-raw-map (kbd "C-p") 'term-send-up)
(define-key term-raw-map (kbd "C-n") 'term-send-down))
(eab/add-hook comint-mode-hook eab/comint-hook
(define-key comint-mode-map (kbd "M-s") 'nil)
(define-key comint-mode-map (kbd "M-p") 'nil)
(define-key comint-mode-map (kbd "M-n") 'nil)
(define-key comint-mode-map (kbd "M-r") 'nil)
(define-key comint-mode-map (kbd "C-p") 'comint-previous-input)
(define-key comint-mode-map (kbd "C-n") 'comint-next-input))
(eab/add-hook compilation-mode-hook eab/compilation-hook
(define-key compilation-mode-map (kbd "\C-d") eab/compile-map)
(define-key compilation-mode-map (kbd "M-k") 'nil)
(define-key compilation-mode-map (kbd "M-p") 'nil)
(define-key compilation-mode-map (kbd "M-i") 'nil)
(define-key compilation-mode-map (kbd "M-n") 'nil))
(eab/add-hook grep-mode-hook eab/grep-hook
(define-key grep-mode-map (kbd "B") 'eab/switch-grep-prev)
(define-key grep-mode-map (kbd "F") 'eab/switch-grep-next)
(define-key grep-mode-map (kbd "M-p") 'nil)
(define-key grep-mode-map (kbd "M-n") 'nil)
(define-key grep-mode-map (kbd "C-w") 'wgrep-change-to-wgrep-mode))
(eab/add-hook gnus-started-hook eab/gnus-article-hook
(define-key gnus-article-mode-map (kbd "M-g") 'nil)
(define-key gnus-article-mode-map (kbd "M-u") 'nil)
(define-key gnus-article-mode-map (kbd "M-*") 'nil)
(define-key gnus-article-mode-map (kbd "M-n") 'nil)
(define-key gnus-article-mode-map (kbd "C-c C-v") 'gnus-article-browse-html-article))
(eab/add-hook gnus-started-hook eab/gnus-summary-hook
(define-key gnus-summary-mode-map (kbd "g") 'eab/gnus-inbox)
(define-key gnus-summary-mode-map (kbd "RET") 'gnus-summary-show-article)
(define-key gnus-summary-mode-map (kbd "A o") 'gnus-summary-insert-old-articles)
(define-key gnus-summary-mode-map (kbd "M-I") 'nil)
(define-key gnus-summary-mode-map (kbd "M-i") 'nil)
(define-key gnus-summary-mode-map (kbd "M-k") 'nil)
(define-key gnus-summary-mode-map (kbd "M-K") 'nil)
(define-key gnus-summary-mode-map (kbd "M-s") 'nil)
(define-key gnus-summary-mode-map (kbd "M-p") 'nil)
(define-key gnus-summary-mode-map (kbd "M-n") 'nil)
(define-key gnus-summary-mode-map (kbd "\C-c\C-w") 'gnus-summary-move-article)
(define-key gnus-summary-mode-map (kbd "m") 'gnus-summary-mark-as-processable)
(define-key gnus-summary-mode-map (kbd "u") 'gnus-summary-unmark-as-processable))
(eab/add-hook gnus-started-hook eab/gnus-group-hook
(define-key gnus-group-mode-map (kbd "RET") 'eab/gnus-group-select)
(define-key gnus-group-mode-map (kbd "M-d") 'nil)
(define-key gnus-group-mode-map (kbd "M-k") 'nil)
(define-key gnus-group-mode-map (kbd "M-n") 'nil))
(eab/add-hook dired-mode-hook eab/dired-hook
(define-key dired-mode-map (kbd "C-M-b") 'nil)
(define-key dired-mode-map (kbd "M-i") 'nil)
(define-key dired-mode-map (kbd "M-j") 'nil)
(define-key dired-mode-map (kbd "C-n") 'nil)
(define-key dired-mode-map (kbd "M-c") 'nil)
(define-key dired-mode-map (kbd "M-g") 'nil)
(define-key dired-mode-map (kbd "M-G") 'nil)
(define-key dired-mode-map (kbd "M-v") 'nil)
(define-key dired-mode-map (kbd "M-!") 'nil)
(define-key dired-mode-map (kbd "M-l") 'nil)
(define-key dired-mode-map (kbd "M-p") 'nil)
(define-key dired-mode-map (kbd "M-o") 'nil)
(define-key dired-mode-map (kbd "M-s") 'nil)
(define-key dired-mode-map (kbd "M-u") 'nil)
(define-key dired-mode-map (kbd "M-m") 'nil)
(define-key dired-mode-map (kbd "C-o") 'nil)
(define-key dired-mode-map (kbd "C-p") 'nil)
(define-key dired-mode-map (kbd "C-k") 'nil)
(define-key dired-mode-map (kbd "C-S-a") 'nil)
(define-key dired-mode-map (kbd "C-c C-w") 'dired-do-rename)
(define-key dired-mode-map (kbd "C-w") 'wdired-change-to-wdired-mode)
(define-key dired-mode-map (kbd "b") 'browse-url-of-dired-file)
(define-key dired-mode-map (kbd "o") 'eab/dired-find-file-other-window)
(define-key dired-mode-map (kbd "C-|") 'eab/dired-see-file) ;; temacs
(define-key dired-mode-map (kbd "s-SPC") 'eab/dired-see-file) ;; temacs
(define-key dired-mode-map (kbd "SPC") 'open-in-external-app))
(eab/add-hook wdired-mode-hook eab/wdired-hook
(define-key wdired-mode-map (kbd "s-w") 'wdired-finish-edit)) ;; temacs
(eab/add-hook java-mode-hook eab/java-hook
(define-key java-mode-map (kbd "M-M") 'c-end-of-defun)
(define-key java-mode-map (kbd "M-N") 'c-beginning-of-defun)
(define-key java-mode-map (kbd "M-j") 'nil)
(define-key java-mode-map (kbd "M-e") 'nil))
(eab/add-hook c-mode-hook eab/c-hook
(define-key c-mode-map (kbd "C-d") eab/compile-map)
(define-key c-mode-map (kbd "C-M-a") 'nil)
(define-key c-mode-map (kbd "C-M-e") 'nil)
(define-key c-mode-map (kbd "M-a") 'nil)
(define-key c-mode-map (kbd "M-M") 'nil)
(define-key c-mode-map (kbd "M-N") 'nil)
(define-key c-mode-map (kbd "M-j") 'nil)
(define-key c-mode-map (kbd "M-q") 'nil)
(define-key c-mode-map (kbd "M-M") 'c-end-of-defun)
(define-key c-mode-map (kbd "M-N") 'c-beginning-of-defun)
(define-key c-mode-map (kbd "M-e") 'nil))
(eab/add-hook c++-mode-hook eab/c++-hook
(define-key c++-mode-map (kbd "C-d") eab/compile-map)
(define-key c++-mode-map (kbd "C-M-a") 'nil)
(define-key c++-mode-map (kbd "C-M-e") 'nil)
(define-key c++-mode-map (kbd "M-a") 'nil)
(define-key c++-mode-map (kbd "M-M") 'nil)
(define-key c++-mode-map (kbd "M-N") 'nil)
(define-key c++-mode-map (kbd "M-j") 'nil)
(define-key c++-mode-map (kbd "M-q") 'nil)
(define-key c++-mode-map (kbd "M-M") 'c-end-of-defun)
(define-key c++-mode-map (kbd "M-N") 'c-beginning-of-defun)
(define-key c++-mode-map (kbd "M-e") 'nil))
(eab/add-hook w3m-mode-hook eab/w3m-hook
(define-key w3m-mode-map (kbd "M-d") 'nil)
(define-key w3m-mode-map (kbd "M-k") 'nil)
(define-key w3m-mode-map (kbd "M-l") 'nil)
(define-key w3m-mode-map (kbd "M-i") 'nil)
(define-key w3m-mode-map (kbd "M-a") 'nil)
(define-key w3m-mode-map (kbd "M-s") 'nil)
(define-key w3m-mode-map (kbd "M-g") 'nil))
(eab/add-hook anything-before-initialize-hook eab/anything-hook
(define-key anything-dabbrev-map "\M-/" 'anything-dabbrev-find-all-buffers)
(define-key anything-dabbrev-map (kbd "M-d") 'anything-select-with-prefix-shortcut)
(define-key anything-map (kbd "C-k") 'toggle-input-method)
(define-key anything-map (kbd "M-H") 'anything-select-2nd-action-or-end-of-line)
(define-key anything-map (kbd "M-g") 'anything-delete-minibuffer-content)
(define-key anything-map (kbd "@") 'anything-select-with-prefix-shortcut)
(define-key anything-map (kbd "s-SPC") 'eab/anything-select-action)
(define-key anything-map (kbd "C-|") 'eab/anything-select-action)
(define-key anything-map (kbd "M-d") 'anything-select-with-prefix-shortcut)
(define-key anything-map (kbd "M-j") 'nil)
(define-key anything-map (kbd "M-v") 'nil)
(define-key anything-map (kbd "M-l") 'nil)
(define-key anything-map (kbd "M-k") 'anything-next-line)
(define-key anything-map (kbd "M-i") 'anything-previous-line)
(define-key anything-map (kbd "C-p") 'anything-previous-history-element)
(define-key anything-map (kbd "C-n") 'anything-next-history-element)
(define-key anything-map (kbd "M-;") 'anything-isearch)
(define-key anything-map (kbd "C-SPC") 'anything-toggle-visible-mark)
(define-key anything-map (kbd "M-K") 'anything-next-page)
(define-key anything-map (kbd "M-J") 'anything-beginning-of-buffer)
(define-key anything-map (kbd "M-L") 'anything-end-of-buffer)
(define-key anything-map (kbd "M-I") 'anything-previous-page))
(eab/add-hook helm-before-initialize-hook eab/helm-hook
(define-key helm-map (kbd "C-k") 'toggle-input-method)
(define-key helm-map (kbd "M-H") 'helm-select-2nd-action-or-end-of-line)
(define-key helm-map (kbd "M-g") 'helm-delete-minibuffer-contents)
;; (define-key helm-map (kbd "@") 'helm-select-with-prefix-shortcut)
(define-key helm-map (kbd "M-d") 'helm-select-with-prefix-shortcut)
(define-key helm-map (kbd "M-j") 'nil)
(define-key helm-map (kbd "M-v") 'nil)
(define-key helm-map (kbd "M-l") 'nil)
(define-key helm-map (kbd "M-k") 'helm-next-line)
(define-key helm-map (kbd "M-i") 'helm-previous-line)
(define-key helm-map (kbd "C-n") 'next-history-element)
(define-key helm-map (kbd "C-p") 'previous-history-element)
;; (define-key helm-map (kbd "M-;") 'helm-isearch)
(define-key helm-map (kbd "C-SPC") 'helm-toggle-visible-mark)
(define-key helm-map (kbd "M-K") 'helm-next-page)
(define-key helm-map (kbd "M-J") 'helm-beginning-of-buffer)
(define-key helm-map (kbd "M-L") 'helm-end-of-buffer)
(define-key helm-map (kbd "M-I") 'helm-previous-page))
(eab/add-hook ido-minibuffer-setup-hook eab/ido-minibuffer-hook
(define-key ido-file-dir-completion-map (kbd "M-v") 'yank)
(define-key ido-file-completion-map (kbd "C-d") 'eab/ace-ibuffer)
(define-key ido-file-completion-map (kbd "C-|") 'eab/ido-see-file) ;; temacs
(define-key ido-file-completion-map (kbd "s-SPC") 'eab/ido-see-file) ;; temacs
(define-key ido-buffer-completion-map (kbd "C-k") 'nil)
(define-key ido-common-completion-map (kbd "C-v") 'eab/toggle-cxb-ido-item)
(define-key ido-buffer-completion-map (kbd "C-d") 'eab/ace-ibuffer)
(define-key ido-common-completion-map (kbd "C-d") 'eab/ace-ibuffer)
(define-key ido-buffer-completion-map (kbd "C-d") 'ido-buffer-helm)
(define-key ido-buffer-completion-map (kbd "M-RET") 'eab/ido-main)
;; DONE слетают хоткеи. М. б. где-то в другом месте переделывается map?
(define-key ido-buffer-completion-map (kbd "C-M-j") 'eab/ido-main)
(define-key ido-buffer-completion-map (kbd "C-b") 'eab/ido-wmctrl)
(define-key ido-common-completion-map (kbd "C-b") 'eab/ido-wmctrl))
(eab/add-hook emacs-lisp-mode-hook eab/emacs-lisp-hook
(define-key emacs-lisp-mode-map (kbd "s-r") 'paredit-raise-sexp)
(define-key emacs-lisp-mode-map (kbd "s-L") 'paredit-forward-barf-sexp)
(define-key emacs-lisp-mode-map (kbd "s-J") 'paredit-backward-barf-sexp)
(define-key emacs-lisp-mode-map (kbd "s-l") 'paredit-forward-slurp-sexp)
(define-key emacs-lisp-mode-map (kbd "s-j") 'paredit-backward-slurp-sexp)
(define-key emacs-lisp-mode-map (kbd "s-I") 'paredit-splice-sexp)
(define-key emacs-lisp-mode-map (kbd "s-K") 'paredit-splice-sexp)
(define-key emacs-lisp-mode-map (kbd "s-i") 'paredit-splice-sexp-killing-backward)
(define-key emacs-lisp-mode-map (kbd "s-k") 'paredit-splice-sexp-killing-forward)
(define-key emacs-lisp-mode-map (kbd "M-(") 'paredit-wrap-round)
(define-key emacs-lisp-mode-map (kbd "M-r") 'paredit-forward-kill-word)
(define-key emacs-lisp-mode-map (kbd "M-e") 'paredit-backward-kill-word)
(define-key emacs-lisp-mode-map (kbd "M-g") 'paredit-kill)
(define-key emacs-lisp-mode-map (kbd "M-'") 'paredit-comment-dwim)
(define-key emacs-lisp-mode-map (kbd "RET") 'paredit-newline))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(add-hook 'flyspell-mode-hook
(lambda () (define-key flyspell-mode-map (kbd "C-k") 'toggle-input-method)))
(add-hook 'LaTeX-mode-hook
(lambda () (define-key LaTeX-mode-map (kbd "C-d") 'TeX-command-master)))
(add-hook 'graphviz-dot-mode-hook
(lambda () (define-key graphviz-dot-mode-map (kbd "C-d") eab/compile-map)
(set (make-local-variable 'compile-command) nil)))
(add-hook 'text-mode-hook
(lambda () (define-key text-mode-map (kbd "C-c C-c") 'server-edit)))
(add-hook 'python-mode-hook
(lambda () (progn
(define-key python-mode-map (kbd "C-d") eab/compile-map)
(define-key python-mode-map (kbd "C-j") 'nil)
(define-key python-mode-map (kbd "M-RET") 'newline)
(define-key python-mode-map (kbd "RET") 'newline)
(define-key python-mode-map (kbd "C-h C-f") 'jedi:goto-definition)
)))
(add-hook 'py-shell-hook
(lambda () (progn
(define-key py-shell-map (kbd "<tab>") 'anything-ipython-complete)
(define-key py-shell-map (kbd "TAB") 'anything-ipython-complete)
)) 't) ;; to the end!!
(add-hook 'maplev-mode-hook
(lambda ()
(define-key smart-operator-mode-map ":" 'self-insert-command)
(define-key smart-operator-mode-map "." 'self-insert-command)
(define-key smart-operator-mode-map "," 'self-insert-command)
(define-key maplev-mode-map (kbd "C-c d") 'maplev-help-at-point)
(define-key maplev-mode-map (kbd "C-k") 'toggle-input-method)))
(add-hook 'help-mode-hook
(lambda ()
(define-key help-mode-map "B" 'eab/help-mode-back)
(define-key help-mode-map "F" 'eab/help-mode-forward)
(define-key view-mode-map "F" 'nil)))
(add-hook 'dictionary-mode-hook
(lambda ()
(define-key dictionary-mode-map "B" 'eab/help-mode-back)
(define-key dictionary-mode-map "F" 'eab/help-mode-forward)))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; _ _
;; _ __ ___ | |__ ___ ___ | | __
;; | '_ \ / _ \ | '_ \ / _ \ / _ \| |/ /
;; | | | | (_) | | | | | (_) | (_) | <
;; |_| |_|\___/ |_| |_|\___/ \___/|_|\_\
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; no hook
(if (boundp 'mc/keymap)
(progn
;; DONE mc/cycle-*
(define-key mc/keymap (kbd "M-K") 'mc/cycle-forward)
(define-key mc/keymap (kbd "M-I") 'mc/cycle-backward)
(define-key mc/keymap (kbd "M-v") 'nil)
(define-key mc/keymap (kbd "C-v") 'nil)))
(if (boundp 'sp-keymap)
(progn
(define-key sp-keymap (kbd "/") 'nil)
(define-key sp-keymap (kbd "b") 'sp--self-insert-command) ;; for latex sp-local-tag
(define-key sp-keymap (kbd "B") 'nil)
(define-key sp-keymap (kbd "f") 'nil)
(define-key sp-keymap (kbd "g") 'nil)
(define-key sp-keymap (kbd "h") 'nil)
(define-key sp-keymap (kbd "l") 'nil)
(define-key sp-keymap (kbd "t") 'nil)
(define-key sp-keymap (kbd "i") 'nil)
(define-key sp-keymap (kbd "e") 'nil)
(define-key sp-keymap (kbd "r") 'nil)
(define-key sp-keymap (kbd "к") 'nil)))
(if (boundp 'region-bindings-mode-map)
(progn
(setq region-bindings-mode-disabled-modes '(magit-status-mode magit-diff-mode))
(define-key region-bindings-mode-map "0" (ilam (if (use-region-p) (er/expand-region 0) (call-interactively 'self-insert-command))))
(define-key region-bindings-mode-map "p" (ilam (if (use-region-p) (er/expand-region 1) (call-interactively 'self-insert-command))))
(define-key region-bindings-mode-map "-" (ilam (if (use-region-p) (er/expand-region -1) (call-interactively 'self-insert-command))))
(define-key region-bindings-mode-map "P" (ilam (if (use-region-p) (progn (er/expand-region 0) (mark-paragraph)) (call-interactively 'self-insert-command))))
(define-key region-bindings-mode-map "I" (ilam (eab/or-self-insert 'indent-region)))
(define-key region-bindings-mode-map "Ш" (ilam (eab/or-self-insert 'indent-region)))
(define-key region-bindings-mode-map "З" (ilam (if (use-region-p) (progn (er/expand-region 0) (mark-paragraph)) (call-interactively 'self-insert-command))))
(define-key region-bindings-mode-map "d" (ilam (if (use-region-p) (progn (er/expand-region 0) (mark-defun)) (call-interactively 'self-insert-command))))
(define-key region-bindings-mode-map "/" (ilam (let ((this-command 'toggle-letter-case)) (eab/or-self-insert 'toggle-letter-case))))
(define-key region-bindings-mode-map "r" (ilam (eab/or-self-insert 'string-rectangle)))
(define-key region-bindings-mode-map "к" (ilam (eab/or-self-insert 'string-rectangle)))
(define-key region-bindings-mode-map "t" (ilam (eab/or-self-insert 'anchored-transpose)))
;; TODO C-g не правильно работает с region-bindings-mode
(define-key region-bindings-mode-map "g" (ilam (eab/or-self-insert 'mc/keyboard-quit)))
;; (define-key region-bindings-mode-map (kbd "C-g") (ilam (eab/or-self-insert 'mc/keyboard-quit)))
(define-key region-bindings-mode-map "G" (ilam (eab/or-self-insert 'google)))
(define-key region-bindings-mode-map "e" 'mc/edit-lines) ;; (lambda () (interactive) (eab/or-self-insert 'mc/edit-lines)))
(define-key region-bindings-mode-map "x" (ilam (eab/or-self-insert 'kill-rectangle)))
(define-key region-bindings-mode-map "ч" (ilam (eab/or-self-insert 'kill-rectangle))) ;; TODO возможные проблемы с раскладками
(define-key region-bindings-mode-map "A" (ilam
(if (use-region-p)
(save-restriction
(narrow-to-region (window-start) (window-end))
(ignore-errors (mc/mark-all-like-this)))
(call-interactively 'self-insert-command))))
(define-key region-bindings-mode-map "a" 'mc/mark-all-like-this)
(define-key region-bindings-mode-map "i" 'mc/mark-previous-like-this)
(define-key region-bindings-mode-map "k" 'mc/mark-next-like-this)
(define-key region-bindings-mode-map "m" 'mc/mark-more-like-this-extended)))
(if (boundp 'artist-mode-map)
(define-key artist-mode-map (kbd "C-b") 'nil))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment