;-*- coding: utf-8 -*- ; emacs keyboarding shortcuts ; this shortcut is for Dvorak keyboard users ; Xah Lee ; 2007-06 ; ∑ http://xahlee.org/ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (load-file "/Users/xah/web/emacs/ergonomic_keybinding_unbind.el") (global-unset-key (kbd "C-")) ; scroll-right (global-unset-key (kbd "C-")) ; scroll-left (load-file "/Users/xah/web/emacs/ergonomic_keybinding_dvorak.el") ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;; CURSOR MOVEMENT (global-set-key (kbd "M-H") 'goto-point-min) (global-set-key (kbd "M-N") 'goto-point-max) ;;;; BASIC TEXT CHANGING (global-set-key (kbd "M->") 'copy-all) (global-set-key (kbd "M-<") 'cut-all) (global-set-key (kbd "M-U") 'kill-line-backward) (global-set-key (kbd "M-q") 'shrink-whitespaces) ;;;; TEXT TRANSFORMATION (global-set-key (kbd "M-S-SPC") 'mark-paragraph) ; Hard-wrap/un-hard-wrap paragraph (global-set-key (kbd "M-'") 'fill-paragraph) ; was abbrev-prefix-mark (global-set-key (kbd "M-\"") 'remove-hard-wrap-paragraph) ; was nil ;;;; ; SPECIAL KEYS ; delete previous/next word (global-set-key (kbd "") 'goto-point-min) ; OS X convention (global-set-key (kbd "") 'goto-point-max) ; OS X convention (global-set-key (kbd "") 'delete-char) ; if not evaluated, then Del key wont work. (global-set-key (kbd "") 'delete-char) ; on NeXT/OpenStep Emacs.app, the Del key (under Ins key) is in emacs as “”, but on Carbon Emacs and Aquaemacs, it shows up as “”. (global-set-key (kbd "C-") 'my-erase-buffer) (global-set-key (kbd "C-") 'my-erase-buffer) ;;;; PERSONAL ; other ; change C-x prefix to C-t, so this frequently used prefix is easier to type (keyboard-translate ?\C-t ?\C-x) (global-set-key (kbd "M-m") 'save-buffer) ; Save (global-set-key (kbd "M-f") 'find-file) ; Open (global-set-key (kbd "M-F") 'my-find-file-at-point) (global-set-key (kbd "M-b") 'close-current-buffer) ; Close (global-set-key (kbd "M-B") 'ibuffer) ; was nil ; fix isearch (global-set-key (kbd "M-s") 'isearch-forward) (global-set-key (kbd "M-S") 'isearch-backward) ;;;; TEMP SHORTCUTS (global-set-key (kbd "M-3") 'insert-xahurl) ;---------- ; NUMBERIC KEYPAD (global-set-key (kbd "") 'down-case) (global-set-key (kbd "") 'up-case) (global-set-key (kbd "") 'title-case) (global-set-key (kbd "") 'dictionary-lookup-definition) (global-set-key (kbd "") 'lookup-word-definition) (global-set-key (kbd "") 'lookup-wikipedia) (global-set-key (kbd "") 'my-browse-url-at-point) (global-set-key (kbd "") 'lookup-lsl-ref) (global-set-key (kbd "") 'wikipedia-linkify) (require 'redo "redo.elc" t) ; not in aquaemacs (global-set-key (kbd "M-E") 'redo) ;---- ; kbd shortcuts for particular modes (add-hook 'html-mode-hook (lambda () (define-key html-mode-map (kbd "") 'sgml-skip-tag-backward) (define-key html-mode-map (kbd "") 'sgml-skip-tag-forward) (define-key html-mode-map (kbd "") 'html-previous-content) (define-key html-mode-map (kbd "") 'html-next-content) (define-key html-mode-map (kbd "C-c w") 'wrap-span-x-w) (define-key html-mode-map (kbd "C-c r") 'wrap-span-x-r) (define-key html-mode-map (kbd "C-c b") 'wrap-span-x-b) (define-key html-mode-map (kbd "C-c t") 'wrap-span-xnt) (define-key html-mode-map (kbd "C-c d") 'wrap-span-code) (define-key html-mode-map (kbd "C-c n") 'insert-div-x-note) (define-key html-mode-map (kbd "") 'insert-tag) (define-key html-mode-map (kbd "M-4") 'wrap-url) (define-key html-mode-map (kbd "M-5") 'image-linkify) (define-key html-mode-map (kbd "M-s") 'isearch-forward) (define-key html-mode-map (kbd "M-S") 'isearch-backward) (define-key html-mode-map (kbd "") 'browse-url-of-buffer) (define-key html-mode-map (kbd "«") (lambda () (interactive) (insert "«»") (backward-char 1))) ) ) (add-hook 'nxml-mode-hook (lambda () (define-key nxml-mode-map (kbd "M-h") 'backward-char) (define-key nxml-mode-map (kbd "C-M-SPC") 'nxml-mark-paragraph) (define-key nxml-mode-map (kbd "") 'browse-url-of-buffer) (define-key nxml-mode-map (kbd "") 'html-next-content) (define-key nxml-mode-map (kbd "S-") 'html-previous-content) ) ) ;; (eval-after-load "shell" ;; '(define-key shell-mode-map "\M-r" 'forward-word) ;; '(define-key shell-mode-map "\M-s" 'isearch-forward) ;; ) ;; fix binding for shell and shell-command ;; for comint-previous-input, use Ctrl+↑. Similar for next. (add-hook 'comint-mode-hook (lambda () (define-key comint-mode-map (kbd "M-p") 'yank) ; was comint-previous-input (define-key comint-mode-map (kbd "M-n") 'forward-char) ; was comint-next-input (define-key comint-mode-map (kbd "M-r") 'forward-word) ; was comint-previous-matching-input. (define-key comint-mode-map (kbd "M-s") 'isearch-forward) ; was comint-next-matching-input. )) (add-hook 'isearch-mode-hook (lambda () (define-key isearch-mode-map (kbd "M-s") 'isearch-repeat-forward) (define-key isearch-mode-map (kbd "M-S") 'isearch-repeat-backward) ) ) (add-hook 'Info-mode-hook (lambda () (define-key Info-mode-map (kbd "M-n") 'forward-char) ; was clone-buffer ) ) ;;-------------- ; misc (global-set-key (kbd "M-6") 'run-current-file) (global-set-key (kbd "M-^") 'run-current-java-file) (global-set-key (kbd "M-") 'backward-up-list) (global-set-key (kbd "M-") 'down-list) (global-set-key (kbd "M-") 'backward-sexp) (global-set-key (kbd "M-") 'forward-sexp) (global-set-key (kbd "M-S-") 'backward-list) (global-set-key (kbd "M-S-") 'forward-list) (global-set-key (kbd "M-j") 'mark-word) (global-set-key (kbd "M-8") 'extend-selection) (global-set-key (kbd "M-A") 'shell-command) (global-set-key (kbd "M-w") 'previous-user-buffer) (global-set-key (kbd "M-v") 'next-user-buffer) (global-set-key (kbd "H-M-") 'tabbar-backward) (global-set-key (kbd "H-M-") 'tabbar-forward) (global-set-key (kbd "M-W") 'previous-emacs-buffer) (global-set-key (kbd "M-V") 'next-emacs-buffer) (global-set-key (kbd "C-") 'previous-user-buffer) (global-set-key (kbd "C-") 'next-user-buffer)