Files
.emacs.d/keybindings.el

161 lines
5.6 KiB
EmacsLisp
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

;;
;; Setup a few global keyboard shortcuts
;;
;; Alternative to M-x
(global-set-key (kbd "C-x C-m") 'execute-extended-command)
(global-set-key (kbd "C-c C-m") 'execute-extended-command)
;; Easier version of "C-x k" to kill buffer
(global-set-key (kbd "C-x C-k") 'kill-buffer)
;; Kill-Ring related.
(global-set-key (kbd "M-Y") 'yank-pop-forwards)
;; Move to beginning/end of buffer
(global-set-key (kbd "s-<up>") 'beginning-of-buffer)
(global-set-key (kbd "s-<down>") 'end-of-buffer)
;; Move to beginning/end of line
(global-set-key (kbd "s-<left>") 'beginning-of-line)
(global-set-key (kbd "s-<right>") 'end-of-line)
;; Window switching (via helpers.el).
(global-set-key (kbd "C-x i") 'other-window-reverse)
(global-set-key (kbd "C-x C-o") 'other-window)
(global-set-key (kbd "C-x C-i") 'other-window-reverse)
;; IBuffer
(when (require 'ibuffer nil 'noerror)
(global-set-key (kbd "C-x C-b") 'ibuffer))
;; Undo/Redo (via undo-tree)
(when (require 'undo-tree nil 'noerror)
;; Mac OS X GUI
(global-set-key (kbd "s-z") 'undo-tree-undo)
(global-set-key (kbd "s-Z") 'undo-tree-redo)
;; Console
(global-set-key (kbd "M--") 'undo-tree-undo)
(global-set-key (kbd "M-_") 'undo-tree-redo))
;; eproject related keybindings
(when (require 'eproject nil 'noerror)
(global-set-key (kbd "C-c C-b") 'eproject-ibuffer)
(global-set-key (kbd "C-x p b") 'eproject-ibuffer)
(global-set-key (kbd "C-x p t") 'eproject-todo)
(global-set-key (kbd "C-x p f") 'eproject-find-file)
(global-set-key (kbd "C-x p k") 'eproject-kill-project-buffers)
(global-set-key (kbd "C-x p o") 'eproject-open-all-project-files))
;; Textmate-mode related keybindings
(when (require 'textmate nil 'noerror)
(global-set-key (kbd "C-x C-t") 'textmate-goto-file)
(global-set-key (kbd "C-c C-t") 'textmate-goto-symbol)
(global-set-key (kbd "M-p") 'textmate-column-up)
(global-set-key (kbd "M-n") 'textmate-column-down))
;; Flyspell correct previous word
(when (require 'flyspell nil 'noerror)
(global-set-key (kbd "s-.") 'flyspell-correct-word-before-point))
;; Duplicate line (via helpers.el)
(global-set-key (kbd "C-x C-d") 'duplicate-line)
;; Goto line
(global-set-key (kbd "C-c C-l") 'goto-line)
;; Comment or uncomment line
(global-set-key (kbd "C-c /") 'comment-or-uncomment-region-or-line)
(global-set-key (kbd "C-c C-/") 'comment-or-uncomment-region-or-line)
;; Align Equal Signs (via helpers.el)
;; (global-set-key (kbd "M-s-") 'align-equal-signs)
;; Mac OS X Fullscreen (requires this patch: https://gist.github.com/1012927)
(global-set-key (kbd "s-<return>") 'ns-toggle-fullscreen)
;; Set/increase/decrease transparency (via helpers.el)
(global-set-key (kbd "C-|") 'transparency-set-value)
(global-set-key (kbd "C-<") 'transparency-increase)
(global-set-key (kbd "C->") 'transparency-decrease)
;; Window Tiling (via helpers.el)
(global-set-key (kbd "C-M-K") 'swap-with-down)
(global-set-key (kbd "C-M-I") 'swap-with-up)
(global-set-key (kbd "C-M-J") 'swap-with-left)
(global-set-key (kbd "C-M-L") 'swap-with-right)
(global-set-key (kbd "M-K") 'enlarge-window-down)
(global-set-key (kbd "M-I") 'enlarge-window-up)
(global-set-key (kbd "M-J") 'enlarge-window-left)
(global-set-key (kbd "M-L") 'enlarge-window-right)
(global-set-key (kbd "M-k") 'windmove-down)
(global-set-key (kbd "M-i") 'windmove-up)
(global-set-key (kbd "M-j") 'windmove-left)
(global-set-key (kbd "M-l") 'windmove-right)
;; Org-mode
(define-key global-map (kbd "C-c a") 'org-agenda)
(define-key global-map (kbd "C-c l") 'org-store-link)
;; Remember mode
(define-key global-map (kbd "C-c r") 'org-remember)
(define-key global-map (kbd "C-M-r") 'org-remember)
;; ElScreen related shortcuts
(when (require 'elscreen nil 'noerror)
;; Goto screens.
(global-set-key (kbd "s-}") 'elscreen-next)
(global-set-key (kbd "s-{") 'elscreen-previous)
;; Set screen nickname
(define-key elscreen-map (kbd ",") 'elscreen-screen-nickname)
(define-key elscreen-map (kbd "C-,") 'elscreen-screen-nickname)
;; Toggle screens.
(define-key elscreen-map (kbd "l") 'elscreen-toggle)
(define-key elscreen-map (kbd "C-l") 'elscreen-toggle)
;; Display list of screens.
(define-key elscreen-map (kbd ";") 'elscreen-display-screen-name-list)
(define-key elscreen-map (kbd "C-;") 'elscreen-display-screen-name-list))
;; Escreen customizations (via helpers.el).
(when (require 'escreen nil 'noerror)
;; Set prefix key to C-z.
(setq escreen-prefix-char (kbd "C-z"))
(global-set-key escreen-prefix-char 'escreen-prefix)
(define-key escreen-map escreen-prefix-char 'escreen-goto-last-screen)
;; Toggle screens.
(define-key escreen-map (kbd "l") 'escreen-goto-last-screen)
(define-key escreen-map (kbd "C-l") 'escreen-goto-last-screen)
;; List screens.
(define-key escreen-map (kbd "a")
'escreen-get-active-screen-numbers-with-emphasis)
(define-key escreen-map (kbd "C-a")
'escreen-get-active-screen-numbers-with-emphasis)
(define-key escreen-map (kbd ";")
'escreen-get-active-screen-numbers-with-emphasis)
(define-key escreen-map (kbd "C-;")
'escreen-get-active-screen-numbers-with-emphasis)
;; Goto screens.
(global-set-key (kbd "s-}") 'escreen-goto-next-screen)
(global-set-key (kbd "s-{") 'escreen-goto-prev-screen)
;; Ctrl versions of default commands.
(define-key escreen-map (kbd "C-c") 'escreen-create-screen)
(define-key escreen-map (kbd "C-g") 'escreen-goto-screen)
(define-key escreen-map (kbd "C-k") 'escreen-kill-screen)
(define-key escreen-map (kbd "C-n") 'escreen-goto-next-screen)
(define-key escreen-map (kbd "C-p") 'escreen-goto-prev-screen)
;; Show list of screens when you switch/create/kill.
(add-hook 'escreen-goto-screen-hook
'escreen-get-active-screen-numbers-with-emphasis))