;; -*- coding: utf-8 -*- ;; xah's emacs keybinding. ;; • http://xahlee.org/emacs/xah_emacs_keybinding.el ;; • http://xahlee.org/emacs/xah_emacs_unicode_input.el ;; • http://xahlee.org/emacs/xah_emacs_hyper_super_setup.el ;; • http://xahlee.org/emacs/xah_emacs_mouse_binding.el ;; • http://xahlee.org/emacs/xah_emacs_alias.el ;; • http://xahlee.org/emacs/xah_emacs_abbr.el ;; • 〈Dvorak Keyboard Layout〉 http://xahlee.org/comp/dvorak_keyboard_layout.html ;; • 〈ErgoEmacs Keybinding〉 http://xahlee.org/emacs/ergonomic_emacs_keybinding.html ;; • 〈xah_autohotkey.ahk〉 http://xahlee.org/mswin/xah_autohotkey.ahk ;; • 〈Emacs: How to define Hyper & Super Keys〉 http://xahlee.org/emacs/emacs_hyper_super_keys.html ;; • 〈Emacs: Remapping Keys Using key-translation-map〉 http://xahlee.org/emacs/emacs_key-translation-map.html ;; • 〈Emacs: Add Custom Keys to Enhance Productivity〉 http://xahlee.org/emacs/emacs_useful_user_keybinding.html ;; Xah Lee ;; created: 2007-06. ;; § ---------------------------------------- (load (fullpath-relative-to-current-file "xah_emacs_unset_keys")) ;; § ---------------------------------------- ;; generic ;; in linux, is super 「"s"」, while the menu key is 「」 ;(global-set-key (kbd "") 'set-mark-command) ;(global-set-key (kbd "") ctl-x-map) ;; (global-set-key (kbd "") mode-specific-map) ;; (global-set-key (kbd "") 'set-mark-command) ;; (global-set-key (kbd "M-SPC") 'set-mark-command) ;; (global-set-key (kbd "M-SPC") 'beep) ;; § ---------------------------------------- ;; c:/Users/h3/web/xahlee_org/emacs/gnu_emacs_keybinding_C-x.txt ;(global-set-key (kbd " 2") 'shrink-whitespaces) ;(global-set-key (kbd " c") 'compact-uncompact-block) ;; command that has immediate effect on text (global-set-key (kbd " 2") 'quoted-insert) (global-set-key (kbd " 4") 'delete-trailing-whitespace) (global-set-key (kbd " 5") 'query-replace) (global-set-key (kbd " 6") 'query-replace-regexp) (global-set-key (kbd " 7") 'xah-find-file-at-point) (global-set-key (kbd " 8") 'dired-jump) (global-set-key (kbd " ") 'delete-current-file) (global-set-key (kbd " f") 'copy-file-path) (global-set-key (kbd " s") 'ispell-word) (global-set-key (kbd " b") 'flyspell-buffer) (global-set-key (kbd " t") 'title-case-string-region-or-line) (global-set-key (kbd " \\") 'escape-quotes) (global-set-key (kbd " \"") 'replace-straight-quotes) (global-set-key (kbd " ~") 'make-backup) (global-set-key (kbd " [") 'remove-square-brackets) (global-set-key (kbd " &") 'replace-html-characters-to-unicode) (global-set-key (kbd " &") 'replace-html-characters) (global-set-key (kbd " ①") 'xah-fix-number-items-block) (global-set-key (kbd " 6") 'run-current-file) ; (global-set-key (kbd " 6") 'eval-buffer) (global-set-key (kbd " 7") 'eval-last-sexp) (global-set-key (kbd " 8") 'eval-region) (global-set-key (kbd " 4") 'eval-expression) (global-set-key (kbd " 3") 'eval-defun) ;; commands (global-set-key (kbd " 5") 'xah-find-text-regex) (global-set-key (kbd " 6") 'xah-find-text) (global-set-key (kbd " 7") 'shell-command) (global-set-key (kbd " 8") 'list-matching-lines) (global-set-key (kbd " 9") 'delete-matching-lines) (global-set-key (kbd " 0") 'delete-non-matching-lines) (global-set-key (kbd " 1") 'global-linum-mode) (global-set-key (kbd " 2") 'rainbow-mode) (global-set-key (kbd " 5") visual-line-mode) (global-set-key (kbd " 6") 'whitespace-mode) (global-set-key (kbd " 7") 'shell) (global-set-key (kbd " 8") 'calc) (global-set-key (kbd " 9") 'calendar) (global-set-key (kbd " h") 'xah-html-mode) (global-set-key (kbd " e") 'emacs-lisp-mode) (global-set-key (kbd " o") 'org-mode) (global-set-key (kbd " t") 'text-mode) (global-set-key (kbd " 1") 'insert-random-number) (global-set-key (kbd " 2") 'insert-random-string) (global-set-key (kbd " 3") 'insert-random-hex) (global-set-key (kbd " 4") 'insert-random-uuid) (global-set-key (kbd " 7") 'insert-date) (global-set-key (kbd " 8") 'insert-date-time) ;; § ---------------------------------------- ;; special keys (global-set-key (kbd "") 'switch-to-next-frame) ;; § ---------------------------------------- ;; NUMBERIC KEYPAD. nice number pad conveniences as extra function keys (global-set-key (kbd "") 'close-current-buffer) (global-set-key (kbd "") 'previous-user-buffer) (global-set-key (kbd "") 'next-user-buffer) (global-set-key (kbd "") 'other-window) (global-set-key (kbd "") 'delete-window) (global-set-key (kbd "") 'delete-other-windows) (global-set-key (kbd "") 'split-window-vertically) (global-set-key (kbd "") 'xah-find-file-at-point) (global-set-key (kbd "") 'cycle-font-2) (global-set-key (kbd "") 'save-buffer) (global-set-key (kbd "") 'repeat-complex-command) (global-set-key (kbd " ") (lambda () "" (interactive) (find-file "~/web/xahlee_org/emacs/blog.html"))) (global-set-key (kbd " ") (lambda () "" (interactive) (find-file "~/Dropbox/twitter tweets.txt"))) (global-set-key (kbd " ") (lambda () "" (interactive) (find-file "~/web/xahlee_org/emacs/xah_emacs_keybinding.el"))) (global-set-key (kbd " ") 'open-in-desktop) (global-set-key (kbd " ") 'ibuffer) (global-set-key (kbd " ") 'bookmark-bmenu-list) (global-set-key (kbd " ") 'recentf-open-files) (global-set-key (kbd "") 'browse-url-of-buffer) (global-set-key (kbd "") 'isearch-forward) (global-set-key (kbd "") 'isearch-backward) (defun xah-isearch-hook () "Hook for `isearch-mode-hook'" (define-key isearch-mode-map (kbd "") 'isearch-repeat-backward) (define-key isearch-mode-map (kbd "") 'isearch-repeat-forward) ) (add-hook 'isearch-mode-hook 'xah-isearch-hook) (global-set-key (kbd "") 'tags-loop-continue) ;; § ---------------------------------------- (global-set-key (kbd "") 'backward-page) ; gnu emacs C-x [ (global-set-key (kbd "") 'forward-page) ; gnu emacs C-x ] (global-set-key (kbd "M-\"") 'xah-compact-uncompact-block) (global-set-key (kbd "M-2") 'cycle-hyphen-underscore-space) (global-set-key (kbd "M-6") 'select-current-block) (global-set-key (kbd "M-7") 'select-text-in-quote) (global-set-key (kbd "M-8") 'extend-selection) (global-set-key (kbd "M-9") 'select-current-line) (global-set-key (kbd "C-.") 'backward-block) (global-set-key (kbd "C-p") 'forward-block) ;; § ---------------------------------------- ;; mode-specific (when (boundp 'ergoemacs-keymap) (define-key ergoemacs-keymap (kbd "M-m") 'hippie-expand) ;; (define-key ergoemacs-keymap (kbd "M-G") nil) ; was backward-paragraph ;; (define-key ergoemacs-keymap (kbd "M-R") nil) ; was forward-paragraph (define-key ergoemacs-keymap (kbd "M-;") nil) ; undo (define-key ergoemacs-keymap (kbd "M-:") nil) ; redo, undo-tree-redo (define-key ergoemacs-keymap (kbd "M-q") nil) ; cut (define-key ergoemacs-keymap (kbd "M-Q") nil) ; cut-all ;(define-key ergoemacs-keymap (kbd "M-j") nil) ; copy ;(define-key ergoemacs-keymap (kbd "M-k") nil) ; paste, yank (define-key ergoemacs-keymap (kbd "M-o") nil) ; move-cursor-next-pane ;(define-key ergoemacs-keymap (kbd "M-,") nil) ; shrink-whitespaces ;(define-key ergoemacs-keymap (kbd "M-'") nil) ; compact-uncompact-block ) (defun xah-html-mode-keys () "Modify keymaps used by `html-mode'." (local-set-key (kbd " p") 'add-paragraph-tag) (local-set-key (kbd " u") 'xah-all-linkify) (local-set-key (kbd " e") 'wrap-html-tag) (local-set-key (kbd " i") 'insert-tag) (local-set-key (kbd " a") 'xah-annotate) (local-set-key (kbd " d") 'insert-date-tag) (local-set-key (kbd "M-R") 'forward-block) (local-set-key (kbd "M-G") 'backward-block) (local-set-key (kbd "") 'backward-block) (local-set-key (kbd "") 'forward-block) (local-set-key (kbd " e") 'emacs-ref-linkify) (local-set-key (kbd " d") 'perldoc-ref-linkify) (local-set-key (kbd " p") 'php-ref-linkify) (local-set-key (kbd " t") 'word-etymology-linkify) (local-set-key (kbd " c") 'chinese-linkify) (local-set-key (kbd " w") 'wikipedia-linkify) (local-set-key (kbd " s") 'source-linkify) (local-set-key (kbd " z") 'amazon-linkify) (local-set-key (kbd " i") 'image-linkify) (local-set-key (kbd " f") 'full-size-img-linkify) (local-set-key (kbd " u") 'wrap-url) (local-set-key (kbd " ") 'browse-url-of-buffer) (local-set-key (kbd " ") 'xah-browse-url-of-buffer) (local-set-key (kbd " ") 'sgml-delete-tag) (local-set-key (kbd " ") 'sgml-skip-tag-backward) (local-set-key (kbd " ") 'sgml-skip-tag-forward) (local-set-key (kbd " l") 'listify-block) (local-set-key (kbd " k") 'htmlize-keyboard-shortcut-notation) (local-set-key (kbd " c") 'make-citation) (local-set-key (kbd " b") 'make-blogger-entry) (local-set-key (kbd " m") 'xah-make-atom-entry) (local-set-key (kbd " t") 'make-html-table) (local-set-key (kbd " f") 'xah-copy-url-current-file) (local-set-key (kbd " 1") 'curly-quotes-to-emacs-function-tag) (local-set-key (kbd " 2") 'title-bracket-to-html-tag) (local-set-key (kbd " 3") 'emacs-to-windows-kbd-notation) (local-set-key (kbd " 5") 'mark-unicode) (local-set-key (kbd " 7") 'htmlize-text) (local-set-key (kbd " 8") 'dehtmlize-pre-block) ) (add-hook 'html-mode-hook 'xah-html-mode-keys) (add-hook 'xah-html-mode-hook 'xah-html-mode-keys) ;; (unload-feature 'sgml-mode) ;; (remove-hook 'html-mode-hook 'xah-html-mode-keys) (defun xah-org-mode-keys () "my keybindings for org-mode. For `org-mode-hook'." (local-set-key (kbd "") 'org-metaup) (local-set-key (kbd "") 'org-metadown) (local-set-key (kbd "") 'org-metaleft) (local-set-key (kbd "") 'org-metaright) ) (add-hook 'org-mode-hook 'xah-org-mode-keys) (defun nxml-mode-keys () "my keybindings for nxml-mode. For `nxml-mode-hook'." (local-set-key (kbd "") 'nxml-backward-up-element) (local-set-key (kbd "") 'nxml-down-element) ) (add-hook 'nxml-mode-hook 'nxml-mode-keys) (defun xah-nxml-mode-keys () "Modify keymaps used by `nxml-mode'." ;; (local-set-key (kbd "") 'backward-html-end-tag) ;; (local-set-key (kbd "") 'forward-html-end-tag) ) (add-hook 'nxml-mode-hook 'xah-nxml-mode-keys) (defun xah-dired-mode-keys () "Modify keymaps used by `dired'." ;; (define-key dired-mode-map (kbd "") 'dired-find-alternate-file) ; was dired-advertised-find-file ;; (define-key dired-mode-map (kbd "^") (lambda () (interactive) (find-alternate-file ".."))) ; was dired-up-directory (define-key dired-mode-map (kbd "M-$") nil) ; was dired-up-directory (when (>= emacs-major-version 23) ; (define-key dired-mode-map (kbd "M-s") 'isearch-forward) ; (define-key dired-mode-map (kbd "M-S") 'isearch-backward) (define-key dired-mode-map (kbd " 8") 'wdired-change-to-wdired-mode) (define-key dired-mode-map (kbd " 6") '2png) (define-key dired-mode-map (kbd " 5") '2jpg) (define-key dired-mode-map (kbd " 4") 'scale-image) ) ) (add-hook 'dired-mode-hook 'xah-dired-mode-keys) ;; § ---------------------------------------- ;;;; misc ;; 2011-06-02 gnu emacs on mac fix. On GNU Emacs 23.1.1 compiled for Mac, the Del key in emacs is reported as , and is bound to delete-backward-char. Idiotic. (when (string-equal system-type "darwin") (global-set-key (kbd "") 'delete-char) ) ;; (defun open-in-external-app-some () ;; "for find-file-hook, open image files in external app. ;; Or PDF files, etc." ;; (interactive) ;; (let ( (fSuffix (file-name-extension (buffer-file-name))) ) ;; ;; fSuffix may be nil ;; (if fSuffix ;; (when (string-match "jpg\\|jpeg\\|png\\|gif\\|pdf" fSuffix) ;; (open-in-external-app) ) ;; nil ) ) ) ;; (add-hook 'find-file-hook 'open-in-external-app-some)