mirror of
https://github.com/jimeh/.emacs.d.git
synced 2026-02-19 13:46:41 +00:00
190 lines
6.6 KiB
EmacsLisp
190 lines
6.6 KiB
EmacsLisp
;;
|
|
;; 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)
|
|
|
|
;; Evaluate buffer
|
|
(global-set-key (kbd "C-c C-e") 'eval-buffer)
|
|
|
|
;; Goto line
|
|
(global-set-key (kbd "C-c C-l") 'goto-line)
|
|
|
|
;; Duplicate line (via helpers.el)
|
|
(global-set-key (kbd "C-x C-d") 'duplicate-current-line-or-region)
|
|
|
|
;; 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)
|
|
|
|
;; Kill-Ring related (via helpers.el).
|
|
(global-set-key (kbd "M-Y") 'yank-pop-forwards)
|
|
|
|
;; Align to equal signs (via helpers.el).
|
|
(global-set-key (kbd "C-x a =") 'align-region-to-equals)
|
|
(global-set-key (kbd "M-]") 'align-region-to-equals)
|
|
|
|
;; Toggle auto-fill-mode.
|
|
(global-set-key (kbd "C-c q") 'auto-fill-mode)
|
|
|
|
;; 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)
|
|
|
|
;; Undo/Redo
|
|
(when (require 'undo-tree nil 'noerror)
|
|
(global-set-key (kbd "M--") 'undo-tree-undo)
|
|
(global-set-key (kbd "M-_") 'undo-tree-redo))
|
|
|
|
;; Mac OS X specific keybindings
|
|
(when (eq system-type 'darwin)
|
|
|
|
;; Mac OS X Fullscreen (requires this patch: https://gist.github.com/1012927)
|
|
(global-set-key (kbd "s-<return>") 'ns-toggle-fullscreen)
|
|
|
|
;; Undo/Redo (via undo-tree)
|
|
(when (require 'undo-tree nil 'noerror)
|
|
(global-set-key (kbd "s-z") 'undo-tree-undo)
|
|
(global-set-key (kbd "s-Z") 'undo-tree-redo))
|
|
|
|
;; Flyspell correct previous word
|
|
(when (require 'flyspell nil 'noerror)
|
|
(global-set-key (kbd "s-.") 'flyspell-correct-word-before-point))
|
|
|
|
;; 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))
|
|
|
|
;; IBuffer
|
|
(when (require 'ibuffer nil 'noerror)
|
|
(global-set-key (kbd "C-x C-b") 'ibuffer))
|
|
|
|
;; Magit
|
|
(when (require 'magit nil 'noerror)
|
|
(global-set-key (kbd "C-x g") 'magit-status))
|
|
|
|
;; 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)
|
|
(global-set-key (kbd "C-c [") 'textmate-shift-left)
|
|
(global-set-key (kbd "C-c ]") 'textmate-shift-right))
|
|
|
|
;; 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 Resizing
|
|
(define-key global-map (kbd "C-{") 'shrink-window-horizontally)
|
|
(define-key global-map (kbd "C-}") 'enlarge-window-horizontally)
|
|
(define-key global-map (kbd "C-^") 'enlarge-window)
|
|
|
|
;; 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)
|
|
|
|
;; Allow hash to be entered on UK keyboards (via helpers.el)
|
|
(global-set-key (kbd "M-3") 'insert-hash)
|
|
|
|
;; tiling.el related bindings
|
|
(when (require 'tiling nil 'noerror)
|
|
(define-key global-map (kbd "C-\\") 'tiling-cycle))
|
|
|
|
;; 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))
|